4

我有一个地址数据库,我尝试使用google geocodingyahoo API查找纬度和经度。是否还有其他流行的 API 或程序。我正在使用ubuntu平台。

4

5 回答 5

2

我知道至少还有一个其他地理编码系统OpenStreetMap。我发现这些 API 的唯一主要区别是每个 API 的详细程度。OpenStreetMap 的数据少得多,但更容易与自定义数据集成。另外,我认为google制作的地图是三者中最漂亮的。

于 2009-09-14T07:24:34.890 回答
2

我通常通过 HTTP 使用 Google Maps 地理编码服务,它会根据需要返回 Json 或 XML。在此处浏览以获取有关此的更多信息。

另一个选择可能是GeoNames.org。它还提供了一些有趣的服务和客户端库。

于 2009-09-14T07:24:37.493 回答
2

对于您提到的这两种情况,如果您在查询 API 时对它们进行大量处理或未向用户显示地图,则您违反了 TOS。

满足您需求的更好解决方案是LiveAddress。我实际上在SmartyStreets工作,我们自己开发它 - 没有许可证限制,例如会阻止您运行数百万个地址。除了返回坐标外,LiveAddress 还会为您验证地址的存在并对其进行标准化。这有助于删除重复项,并具有许多业务优势。

如果您还有任何与地址相关的问题,我很乐意亲自提供帮助。

于 2012-03-26T18:44:54.400 回答
1

您可能还会发现geocoder.us很有用。

于 2009-09-14T07:36:47.760 回答
-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 来获取最后一个查询产生的 woeid 的所有预测并过滤空结果

SELECT channel 
FROM weather.woeid 
WHERE w in (
    SELECT woeid 
    FROM geo.places 
    WHERE text="##LATITUDE##, ##LONGITUDE##" | 
    SORT(field="placeTypeName.code")) 
AND channel.
于 2011-08-02T08:31:07.133 回答