How to reverse geocode without Google? [closed]
Asked Answered
C

7

57

Are there any web services (paid or free) out there besides the Google Maps API which allow you to reverse geocode?

My particular application will have access to a latitude and longitude and I need to be able to get the US Zip Code or State.

The reason I can't use Google is that the Terms of Service seems to indicate that if you use Google Maps API, you need to use the data to display a Google map.

I am using C# .Net framework in case that's relevant.

Continence answered 18/8, 2010 at 14:27 Comment(1)
Would have been nice if you marked an answer as solution or wrote your solution as a comment to your question...Bedouin
T
45

I use http://nominatim.openstreetmap.org for reverse lookups, it's very easy to use:

http://nominatim.openstreetmap.org/reverse?format=json&lat=54.9824031826&lon=9.2833114795&zoom=18&addressdetails=1

Timothytimour answered 2/8, 2013 at 9:8 Comment(1)
If you're hitting their rate limits use a commercial nominatim service such as locationiq.org.Buckeen
C
11

Geonames can give you either a placename:

http://ws.geonames.org/findNearbyPlaceName?lat=40.65&lng=-73.78

or a zip code:

http://ws.geonames.org/findNearbyPostalCodes?lat=40.65&lng=-73.78

It's free as long as you credit them and you need fewer than 15000 lookups per day. You can pay if you need more.

Crispas answered 18/8, 2010 at 14:37 Comment(1)
It is now geonames.org/findNearbyPlaceName?lat=40.65&lng=-73.78Thom
C
9

I am not a fan of MS. But check this out: http://msdn.microsoft.com/en-us/library/ff859477.aspx

RESTful Location Service API does not seem to post any restriction.

You can user Find Location By Point API: http://msdn.microsoft.com/en-us/library/ff701710.aspx

I tried out the sample for geoNames, the result is not good enough for me as I need county information, and the response time is slow.

Chair answered 13/9, 2010 at 15:1 Comment(5)
+1 Wow. Thank you. I am definitely going to look into this.Continence
Looking into it a bit more. If the data is used for a commercial application which requires a username / password, then you have to pay for it. microsoft.com/maps/product/licensing_for_enterprise.aspxContinence
Interesting! I wonder what they meant by stating 'Not Billable' in msdn.microsoft.com/en-us/library/ff859477.aspx for REST Location APIs.Chair
in the link I provided above stated what Billable means: Billable versus non-billable transactions A billable transaction is a transaction that would be charged under a commercial (enterprise) license agreement. Non-billable transactions are not charged under a commercial license agreement. However, non-billable transactions are still recorded to provide you with information about how your application is used.Chair
check this one out: developers.cloudmade.com/projects/show/geocoding-http-api , cloudmade.com/select/mobileChair
C
9

openstreetmap:

$.getJSON('https://nominatim.openstreetmap.org/reverse', {
    lat: position.coords.latitude,
    lon: position.coords.longitude,
    format: 'json',
}, function (result) {
    console.log(result);
}); 

geonames:

$.getJSON('https://secure.geonames.org/countryCode', {
    lat: position.coords.latitude,
    lng: position.coords.longitude,
    type: 'JSON',
    username: 'demo'
}, function (result) {
    console.log(result);
});
Campobello answered 28/10, 2015 at 10:22 Comment(4)
btw geonames is downHamadryad
@Hamadryad Thanks for pointing it out. API have moved to secure.geonames.org/countryCodeCampobello
I don't have "$.getJSON" in C#.Bedouin
Hi @TheincredibleJan this is Javascript with jQuery. Will update to modern JS soon. ThanksCampobello
M
6

ArcGIS provides a free (and paid) API:

https://developers.arcgis.com/rest/geocode/api-reference/geocoding-reverse-geocode.htm

It provides an address for a given location (lat/lon). It doesn't even require an API key, but they suggest you get a free one to avoid rate limits.

Here is an example API call, with a JSON response:

http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/reverseGeocode?location=4.366281%2C50.851994&langCode=fr&outSR=&forStorage=false&f=pjson

Mohenjodaro answered 25/6, 2016 at 0:33 Comment(0)
D
4

Nominatim Search Service from MapQuest Open API is free and has no request limit (soft limit of 1/sec).

http://open.mapquestapi.com/nominatim/v1/reverse.php?format=json&lat=44.0776182&lon=-92.5296981

TOS can be found here

Devinne answered 28/5, 2015 at 14:4 Comment(3)
They'ved added a 15k per month limit now.Buckeen
@Buckeen I think if you want to rely such an API, then better to support a few alternatives instead of just a single one, so if one service goes down that won't affect your service. If this gives better results than the others, then it is fine for me to count the usage and use something else in the rest of the month after I reached the limit. I am just not sure if there is a real difference in the quality of these services. Is there a way to compare them?Bash
No easy way I'm afraid. We've since switched to using locationiq.orgBuckeen
B
1

Take a look at Geocoda - free for up to 1K forward or reverse geocoding calls per month, reasonably priced for more.

Update Feb. 2019 - Geocoda is now closed.

Benavides answered 12/8, 2013 at 20:38 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.