【发布时间】:2009-09-14 07:19:40
【问题描述】:
我有一个地址数据库,我尝试使用 google geocoding 和 yahoo API 查找纬度和经度。是否还有其他流行的 API 或程序。我正在使用ubuntu平台。
【问题讨论】:
标签: geocoding
我有一个地址数据库,我尝试使用 google geocoding 和 yahoo API 查找纬度和经度。是否还有其他流行的 API 或程序。我正在使用ubuntu平台。
【问题讨论】:
标签: geocoding
我知道至少还有一个其他地理编码系统,OpenStreetMap。我发现这些 API 的唯一主要区别是每个 API 的详细程度。 OpenStreetMap 的数据少得多,但更容易与自定义数据集成。另外,我觉得google的地图是三者中最漂亮的。
【讨论】:
我通常通过 HTTP 使用 Google Maps 地理编码服务,它会根据需要返回 Json 或 XML。浏览here 了解更多信息。
另一个选项可能是GeoNames.org。它还提供了一些有趣的服务和客户端库。
【讨论】:
对于您提到的这两种情况,如果您在查询 API 时对它们进行大量处理或未向用户显示地图,则您违反了 TOS。
满足您需求的更好解决方案是LiveAddress。我实际上在SmartyStreets 工作,我们自己开发它——没有许可证限制,例如会阻止您运行数百万个地址。除了返回坐标外,LiveAddress 还会为您验证地址的存在并对其进行标准化。这有助于消除重复,并具有很多业务优势。
如果您还有任何与地址相关的问题,我很乐意亲自为您提供帮助。
【讨论】:
您可能还会发现geocoder.us 很有用。
【讨论】:
使用 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.
【讨论】: