57

除了允许您反向地理编码的 Google Maps API 之外,是否还有任何网络服务(付费或免费)?

我的特定应用程序将可以访问纬度和经度,并且我需要能够获取美国邮政编码或州。

我不能使用谷歌的原因是服务条款似乎表明如果你使用谷歌地图API,你需要使用数据来显示谷歌地图。

我正在使用 C# .Net 框架以防万一。

4

7 回答 7

40

我使用http://nominatim.openstreetmap.org进行反向查找,它非常易于使用:

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

于 2013-08-02T09:08:07.303 回答
10

地名可以给你一个地名:

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

或邮政编码:

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

只要您信任他们并且每天需要少于 15000 次查找,它就是免费的。如果您需要更多,您可以付费。

于 2010-08-18T14:37:24.650 回答
9

我不是MS的粉丝。但是看看这个:http: //msdn.microsoft.com/en-us/library/ff859477.aspx

RESTful 位置服务 API 似乎没有发布任何限制。

您可以使用按点 API 查找位置:http: //msdn.microsoft.com/en-us/library/ff701710.aspx

我尝试了 geoNames 的示例,结果对我来说不够好,因为我需要县信息,而且响应时间很慢。

于 2010-09-13T15:01:23.307 回答
8

打开街道地图:

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

地名:

$.getJSON('https://secure.geonames.org/countryCode', {
    lat: position.coords.latitude,
    lng: position.coords.longitude,
    type: 'JSON',
    username: 'demo'
}, function (result) {
    console.log(result);
});
于 2015-10-28T10:22:52.840 回答
6

ArcGIS 提供免费(和付费)API:

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

它提供给定位置(纬度/经度)的地址。它甚至不需要 API 密钥,但他们建议您免费获得一个以避免速率限制。

这是一个示例 API 调用,带有 JSON 响应:

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

于 2016-06-25T00:33:09.240 回答
4

MapQuest Open API 的Nominatim 搜索服务是免费的,并且没有请求限制(软限制为 1/秒)。

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

TOS 可以在这里找到

于 2015-05-28T14:04:38.323 回答
1

查看Geocoda - 每月最多可免费进行 1K 正向或反向地理编码调用,价格合理,价格更高。

2019 年 2 月更新 - Geocoda 现已关闭。

于 2013-08-12T20:38:30.433 回答