Ask Your Question
4

Geocoding APIs? Which one to choose?

asked 2013-05-07 03:53:08 -0600

mihi gravatar image

Geocoding is always one of the things I trip on: one issue: finding good APIs that actually work nicely in scripting etc. What are Geocoding APIs you worked with and what are their advantages?

edit retag flag offensive close merge delete

4 Answers

Sort by ยป oldest newest most voted
3

answered 2013-05-07 06:47:03 -0600

Rufus Pollock gravatar image

I'd always prefer an API that provided (and was based on) open data. I'd therefore suggestion Nominatim-based APIs or geonames:

edit flag offensive delete link more

Comments

Have used geonames before. Are there good python modules for those?

mihi gravatar imagemihi ( 2013-05-07 08:38:04 -0600 )edit

@mihi - do you need a python module? The API is so simple that urllib2 + JSON works just fine :-)

Rufus Pollock gravatar imageRufus Pollock ( 2013-05-13 02:31:46 -0600 )edit
1

I find that GeoPy (https://github.com/geopy/geopy) is a reasonably good interface/abstraction layer for geocoders (Google, Geonames, and a handful of others).

rjefferson gravatar imagerjefferson ( 2013-05-14 11:07:40 -0600 )edit

Another advantage of the nominatim is that you can install it to run locally, loading in the OpenStreetMap data. That's a fairly big technical undertaking, but if you're geocoding a really big database or using it for some other high-traffic script, then it can actually be the only option.

Harry Wood gravatar imageHarry Wood ( 2013-11-12 04:48:05 -0600 )edit
1

answered 2013-05-07 04:41:45 -0600

PAC gravatar image

updated 2013-05-07 05:02:54 -0600

I think that Google Maps API is a good option. If you are using R, there is a nice function geocode() function in the ggmap package which makes it easy to use the google maps API in your script.

The only caveat is that the license is not open and therefore you are not allowed to share your database.

edit flag offensive delete link more

Comments

I rarely work with R - but will take a look at that. The lacking openness of the result is something that would scare me away from using it in any serious app though.

mihi gravatar imagemihi ( 2013-05-07 08:39:00 -0600 )edit
0

answered 2013-06-30 11:09:34 -0600

opensas gravatar image

In this article you have a list of geocoding API available for free: http://blog.programmableweb.com/2012/06/21/7-free-geocoding-apis-google-bing-yahoo-and-mapquest/

It also has a performance and availability comparison.

In my short experience, google maps api is really smart when trying to geocode addresses. But the restriction forcing you to only use that data to be shown on google maps is far to restrictive.

Nominatim usually does a good job. You might have to be a little more careful with the address you enter. I couldn't get geonames to work with street addresses.

So I agree with rufus and I would go with Nominatim.

edit flag offensive delete link more
0

answered 2013-07-10 11:14:18 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

And I can totally recomend Yandex API - it works good for other countries, it is the best for Russia, api is easy to work (no API key required) and it support 25000 requests per day - ten times better than google

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2013-05-07 03:53:08 -0600

Seen: 10,145 times

Last updated: Jul 10 '13