Reputation:
Does Google offer a RESTful API where I can pass it a city name (or zip) and it returns the longitude & latitude.
I know how to do this with using the Google Maps API, but I really don't want to have my users download the huge 200k Google Maps API solely so that I can geocode a location.
Does anyone know of a URL based (REST) city/zip to longitude & latitude API?
Since geocoding this information then kicks off multiple other processes, doing this first step is of critical importance to have it perform quickly b/c its a bottleneck right now using the Google Maps API b/c of the huge download and JavaScript loadup.
Upvotes: 22
Views: 44192
Reputation: 27533
$.get("http://ipinfo.io", function(response) {
console.log(response.city, response.country);
}, "jsonp");
Here's a more detailed JSFiddle example that also prints out the full response information, so you can see all of the available details: http://jsfiddle.net/zK5FN/2/
Upvotes: -3
Reputation: 5696
You could use geonames.org web sevices (or download the server)
http://www.geonames.org/export/reverse-geocoding.html
Upvotes: 5
Reputation: 73305
Yahoo PlaceFinder is a new service offered by Yahoo! that provides services for converting addresses (including city names) into latitude / longitude pairs. The service is also capable of doing the opposite (converting coordinates into an address).
Unlike Google's Geocoding API the TOS for Yahoo PlaceFinder do not forbid using the data outside of their maps API.
Upvotes: 5
Reputation: 41452
Also keep in mind that you will likely run over your quotas for the day if you have heavy traffic using the direct HTTP call method. Google limits usage based on IP address, so using the client side code will greatly increase the number of geocode lookups you can do per day since they'll be associated with user's computers rather than your server(s).
Upvotes: 0