Our users can enter their location into a free-form text field, like "Austin TX", or even "The Motor City". How can I take this information and turn it into a canonical name? For example, "The Motor City" would be Detroit, MI. They might even enter a zipcode or an address.
I'm planning on storing the place name, or the lat/long, or the unique id code for their location in the database. Then I can determine proximity. Is there a geo lookup api I can use for this?