How to reverse geocode without Google? [closed]

走远了吗. 提交于 2019-11-26 10:14:49

问题


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.


回答1:


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




回答2:


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.




回答3:


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.




回答4:


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);
});



回答5:


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




回答6:


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




回答7:


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.



来源:https://stackoverflow.com/questions/3513134/how-to-reverse-geocode-without-google

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!