Geocode multiple addresses
Asked Answered
B

7

20

I need to geocode around 200 addresses per request and do around 3,000 request per day. I will be doing this server side using PHP. I have looked at How to convert an address to a latitude/longitude?, but could not find a way for either Google Maps HTTP Request API or the Yahoo Geocoding REST API (cannot use JavaScript as this is server side) to send multiple addresses.

I will be primarily using this to sort addresses based on the coordinates and if the API supports, fill in any missing data for each address. The addresses will be in the United States only. The addresses to geocode will be from user input, so be free form, like "street address, postal code", or "city, state", etc. Accuracy is not too important for the coordinates, say within five hundred feet or so.

Is there a free API to handle this? Is there a way to get Yahoo or Google to do multiple locations in a request?

Barraza answered 28/12, 2008 at 23:2 Comment(4)
Dear sirs, please advise where I can find a database that'll let me look up 600,000 geolocation records every day for nothing...Embayment
maybe he wants to copy/past the entire GeoLocation database :)Brock
If you are a church, library, school or 501c3 nonprofit organization. Smartystreets offers free address validation. 600,000 records would take about 15 minutes. (I know because I work at SmartyStreets and it was my idea to give it away free).Leftover
This question and answers (and most commentary) are 16 years old. I wonder if this information is still valid? I'm in the market for bulk lookups as well, but only about a dozen per day, give or take a few. I know that the Google Maps API is now broken down into at least 2 relevant API and each have their own distinct pricing and calling mechanisms. Yahoo maps shut down 11 years ago. SmartyStreets still exists. MapQuest still has inconsistent results. I've never played with MS VE, but it's still around. GeoNames and geocoder.us no longer exist.Dakar
M
7

geocoder.us will do what you want, but you may have the same problem for bulk lookups. They do bulk lookups for a fee though.

Would GeoNames provide sufficient information, either through the bulk raw data or via their web services?

Mandola answered 28/12, 2008 at 23:10 Comment(2)
For his projected daily volume, geocoder.us would be US$1500 per dayEmbayment
When put into perspective by Alnitak that it's 600,000 geocode look ups a day, I've decided to do the look ups locally. GeoNames has a free download here: geonames.org/export. And there's a PERL script for using Geo:Coder:US locally Great ideas Mat. Thanks everyone.Barraza
D
21

I've looked at the Google Maps api, Yahoo Maps Api, MapQuest API, and the Microsoft Virtual Earth API. None of these free services allow bulk geocoding.

But, Google Maps api allows 15,000 goecodes per day. But they don't like it when you send too many at one time. They suggest waiting 200ms between requests. They track you by IP address btw.

Yahoo allows 5,000 per day, and is also an easy api to use. Microsoft Virtual Earth allows 5,000 per day, but the api documentation is a pain in the butt.

MapQuest is just strange, and doesn't seem to give good results (least accurate of all that I've seen).

I've actually set up my code to alternate between several services so I can make multiple requests at once. This - sort of - simulates bulk encoding.

Dairying answered 28/12, 2008 at 23:36 Comment(2)
@Nyxynyx - I was just looking at this today, and they currently allow 2,500 geocodes per day for free accounts (100,000 for business accounts).Cobnut
Also be aware... "Note: the Geocoding API may only be used in conjunction with a Google map; geocoding results without displaying them on a map is prohibited." see developers.google.com/maps/documentation/geocodingOverwhelming
M
7

geocoder.us will do what you want, but you may have the same problem for bulk lookups. They do bulk lookups for a fee though.

Would GeoNames provide sufficient information, either through the bulk raw data or via their web services?

Mandola answered 28/12, 2008 at 23:10 Comment(2)
For his projected daily volume, geocoder.us would be US$1500 per dayEmbayment
When put into perspective by Alnitak that it's 600,000 geocode look ups a day, I've decided to do the look ups locally. GeoNames has a free download here: geonames.org/export. And there's a PERL script for using Geo:Coder:US locally Great ideas Mat. Thanks everyone.Barraza
C
5

The USC WebGIS Geocoder offers several geocoding API's that can do this. It's free and allows batch lookups from your code, or you can upload a database for batch processing.

Capillaceous answered 8/2, 2009 at 20:6 Comment(0)
N
2

Mapquest has an API which allows batch geocoding. However they don't provide one directly for PHP. But you can look up their protocol documentation http://developer.mapquest.com/Library/SDK_Documentation/Protocols to implement it yourself. They may refer to bulk geocoding as a Location Collection in the docs.

Nil answered 28/12, 2008 at 23:30 Comment(0)
A
2

This might sound odd but I did a site a while ago and the client wanted the user to enter only a zip and we would provide the remaining data. I used the yahoo weather api which, at the time, returned a xml file with all the weather data, and the ciy,state,zip worked well for addresses in the US

Antiperistalsis answered 29/12, 2008 at 0:28 Comment(0)
E
1

Look at http://www.torchproducts.com/tools/geocode to geocode a list of addresses quickly

Exuberate answered 8/1, 2013 at 14:26 Comment(1)
site is down in 2021-06.Synovia
P
0

Use GDirections. It allows up to 25 waypoints at a time and returns a geocoded location for each one.

Podite answered 7/5, 2009 at 6:1 Comment(2)
Could you provide an example function, that takes 25 locations as input and returns 25 coordinates as output using GDirections? ThanksEthaethan
code.google.com/apis/maps/documentation/javascript/v2/…Podite

© 2022 - 2024 — McMap. All rights reserved.