Google Maps Geolocation API Alternative

I am working on a project that includes a huge amount of real-time data per second (achieved using web maps). Because of this, he cannot access the Google API to convert City + Region to a longlat coordinate. I get a chance from 1 to 100. Is there an unlimited alternative to the city and region service to coordinate Google API services? Ideally, a locally stored JSON array of such data?

+7
source share
3 answers

Typically, when you are dealing with a large number of data points, you geocode them once on the server. Then you can transfer lat / longs to your customers, ready to use.

Google has a geocoding web service that you can use from your server, but there is a limit on the request of 2500 or a day. If this does not work, you can also look at OSM Nominatim; Mapquest hosts the web service without restriction.

+2
source

You can use the Yahoo service called YQL. This service is free for a limited number of requests, up to 100,000 per day. Then you can get the latitude and longitude from the XML response in the query / results / location / centroid.

One thing that I noticed with this service is that city names must be exact, and this can be multiple results.

http://developer.yahoo.com/yql/

Example YQL query:

http://query.yahooapis.com/v1/public/yql?q=SELECT * FROM geo.places WHERE text="Seattle" and placeTypeName = "Town"

XML response:

 <?xml version="1.0" encoding="UTF-8"?> <query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="1" yahoo:created="2012-07-09T16:20:40Z" yahoo:lang="en-US"> <results> <place xmlns="http://where.yahooapis.com/v1/schema.rng" xml:lang="en-US" yahoo:uri="http://where.yahooapis.com/v1/place/2490383"> <woeid>2490383</woeid> <placeTypeName code="7">Town</placeTypeName> <name>Seattle</name> <country code="US" type="Country">United States</country> <admin1 code="US-WA" type="State">Washington</admin1> <admin2 code="" type="County">King</admin2> <admin3/> <locality1 type="Town">Seattle</locality1> <locality2/> <postal/> <centroid> <latitude>47.603561</latitude> <longitude>-122.329437</longitude> </centroid> <boundingBox> <southWest> <latitude>47.422359</latitude> <longitude>-122.472153</longitude> </southWest> <northEast> <latitude>47.745071</latitude> <longitude>-122.176193</longitude> </northEast> </boundingBox> <areaRank>6</areaRank> <popRank>12</popRank> </place> </results> </query> <!-- total: 82 --> <!-- engine5.yql.mud.yahoo.com --> 
+5
source

Take a look at datasciencetoolkit.org. They offer a VM / AMI image that you can host on EC2 and make geolocation calls to your own server and therefore not restrict the API.

Then there is also the Yahoo geolocation API, which has higher limits than Google.

+3
source

All Articles