我有一个地址数据库,我试图使用谷歌地理编码和 yahoo API 查找纬度和经度。是否还有其他流行的API或程序。我正在使用ubuntu平台。
答案 0 :(得分:2)
我至少知道一个其他地理编码系统OpenStreetMap。我发现这些API的唯一主要区别在于每个API的详细程度。 OpenStreetMap具有明显更少的数据,但更容易与自定义数据集成。此外,我认为谷歌制作的地图是三者中最美丽的。
答案 1 :(得分:2)
我通常在HTTP上使用Google Maps地理编码服务,可以根据需要返回Json或XML。浏览here以获取更多相关信息。
另一个选项可能是GeoNames.org。它还提供了一些有趣的服务和客户端库。
答案 2 :(得分:2)
如果你提到的那些,如果你正在批量处理它们或者在查询API时没有向用户显示地图,那么你就违反了TOS。
满足您需求的更好解决方案类似于LiveAddress。我实际上在SmartyStreets工作,我们自己开发它 - 没有许可限制,例如会阻止你运行数百万个地址。除了返回坐标,LiveAddress还将验证地址是否存在并为您标准化。这有助于删除重复项,并具有很多业务优势。
如果您有任何与地址相关的问题,我将很乐意亲自协助。
答案 3 :(得分:1)
您可能还会发现geocoder.us有用。
答案 4 :(得分:-1)
使用YQL,您可以获得可能的预测列表 第一步: 反向地理编码
SELECT woeid
FROM geo.places
WHERE text="##LATITUDE##, ##LONGITUDE##"
然后应用过滤器按placeType排序结果。这有助于您按地图级别准确度(城镇,城市,邮政编码,地区......)订购预测
SELECT woeid
FROM geo.places
WHERE text="##LATITUDE##, ##LONGITUDE##" |
SORT(field="placeTypeName.code")
现在使用simile join来获取上次查询产生的所有预测并过滤掉空结果
SELECT channel
FROM weather.woeid
WHERE w in (
SELECT woeid
FROM geo.places
WHERE text="##LATITUDE##, ##LONGITUDE##" |
SORT(field="placeTypeName.code"))
AND channel.