除了允许您反向地理编码的 Google Maps API 之外,是否还有任何网络服务(付费或免费)?
我的特定应用程序将可以访问纬度和经度,并且我需要能够获取美国邮政编码或州。
我不能使用谷歌的原因是服务条款似乎表明如果你使用谷歌地图API,你需要使用数据来显示谷歌地图。
我正在使用 C# .Net 框架以防万一。
除了允许您反向地理编码的 Google Maps API 之外,是否还有任何网络服务(付费或免费)?
我的特定应用程序将可以访问纬度和经度,并且我需要能够获取美国邮政编码或州。
我不能使用谷歌的原因是服务条款似乎表明如果你使用谷歌地图API,你需要使用数据来显示谷歌地图。
我正在使用 C# .Net 框架以防万一。
我使用http://nominatim.openstreetmap.org进行反向查找,它非常易于使用:
地名可以给你一个地名:
http://ws.geonames.org/findNearbyPlaceName?lat=40.65&lng=-73.78
或邮政编码:
http://ws.geonames.org/findNearbyPostalCodes?lat=40.65&lng=-73.78
只要您信任他们并且每天需要少于 15000 次查找,它就是免费的。如果您需要更多,您可以付费。
我不是MS的粉丝。但是看看这个:http: //msdn.microsoft.com/en-us/library/ff859477.aspx
RESTful 位置服务 API 似乎没有发布任何限制。
您可以使用按点 API 查找位置:http: //msdn.microsoft.com/en-us/library/ff701710.aspx
我尝试了 geoNames 的示例,结果对我来说不够好,因为我需要县信息,而且响应时间很慢。
$.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);
});
ArcGIS 提供免费(和付费)API:
https://developers.arcgis.com/rest/geocode/api-reference/geocoding-reverse-geocode.htm
它提供给定位置(纬度/经度)的地址。它甚至不需要 API 密钥,但他们建议您免费获得一个以避免速率限制。
这是一个示例 API 调用,带有 JSON 响应:
MapQuest Open API 的Nominatim 搜索服务是免费的,并且没有请求限制(软限制为 1/秒)。
http://open.mapquestapi.com/nominatim/v1/reverse.php?format=json&lat=44.0776182&lon=-92.5296981
TOS 可以在这里找到
查看Geocoda - 每月最多可免费进行 1K 正向或反向地理编码调用,价格合理,价格更高。
2019 年 2 月更新 - Geocoda 现已关闭。