我有一个地址数据库,尝试使用谷歌地理编码和雅虎API查找纬度和经度。是否还有其他常用的API或程序可用?我使用的是Ubuntu平台。
我通常使用Google Maps的地理编码服务来返回Json或XML格式的数据。如果您想了解更多信息,请在这里浏览。
另一个选择可能是GeoNames.org。它也提供一些有趣的服务和客户端库。
我知道至少还有另一个地理编码系统,OpenStreetMap。这些API之间唯一的主要区别是每个API中的详细程度。OpenStreetMap的数据明显较少,但与自定义数据集成更加容易。此外,我认为谷歌制作的地图是其中最美丽的。
更好的解决方案是使用LiveAddress之类的工具来满足您的需求。我实际上在SmartyStreets工作,我们自己开发了这个工具——没有许可限制,可以运行甚至数百万个地址。除了返回坐标外,LiveAddress还将验证地址的存在并为您进行标准化处理。这有助于消除重复项,并具有许多商业优势。
如果您有任何与地址相关的问题,我将很乐意亲自协助。”
使用YQL,您可以获取可能的预测列表。 第一步: 反向地理编码
SELECT woeid
FROM geo.places
WHERE text="##LATITUDE##, ##LONGITUDE##"
然后应用一个过滤器,通过地点类型对结果进行排序。这有助于您根据地图级别的准确性(城镇、城市、邮政编码、地区等)对预测进行排序。
SELECT woeid
FROM geo.places
WHERE text="##LATITUDE##, ##LONGITUDE##" |
SORT(field="placeTypeName.code")
现在使用simile join获取由上次查询产生的woeid的所有预测,并过滤掉空结果。
SELECT channel
FROM weather.woeid
WHERE w in (
SELECT woeid
FROM geo.places
WHERE text="##LATITUDE##, ##LONGITUDE##" |
SORT(field="placeTypeName.code"))
AND channel.