纬度经度API

时间:2009-09-14 07:19:40

标签: geocoding

我有一个地址数据库,我试图使用谷歌地理编码 yahoo API 查找纬度和经度。是否还有其他流行的API或程序。我正在使用ubuntu平台。

5 个答案:

答案 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.