地理编码服务[关闭]
Posted
技术标签:
【中文标题】地理编码服务[关闭]【英文标题】:Geocoding service [closed] 【发布时间】:2012-05-27 16:28:57 【问题描述】:我正在寻找地理编码服务,它每天可以提供 100 万次查询。
我已经阅读了有关 google/yahoo api 的信息,但不幸的是,它们都不能提供这个数量。
感谢任何帮助。
【问题讨论】:
您是按地址还是按 IP 进行地理编码? 感谢您的回复。 @Matt,我对按地址进行地理编码很感兴趣。我们有一个包含 1600 万个地址的大型数据集,我们需要在其中获取所有记录的纬度/经度。由于截止日期短,它需要相当大的数量。 好的。请参阅下面的答案,因为它适用于您的情况。使用 API,如果您在每个请求中填写 100 个地址,您可能会在几个小时内完成。或者,您可以将您的列表上传到我们的列表处理器,该处理器将标记整个集合中的重复项,并在地理编码时同时对您的列表进行 CASS 认证。 @user869752 和你通电话后,我没能问出数据最初是从哪里来的。你从哪里获得你的纬度/经度数据,你怎么知道它是不准确的。通常,“准确度”并不像“精确度”那么大。纬度/经度坐标可以距您的位置 5 英里,如果精度级别为 6 英里半径,则仍然是准确的。但是,如果您需要更高的“精度”,您将需要一个更好的系统。有许多与各个邮政编码相关的纬度/经度列表。这些价格低于 100 美元,但精度仅为邮政编码级别。请提供更多信息? 【参考方案1】:Google、Yahoo、MapQuest(许可服务)或 Microsoft 将非常乐意允许您使用他们的 API 来处理这种数量,以及他们的高级计划。
如果您想免费获得此功能,MapQuest Open 会根据 OpenStreetMap 数据运行免费地理编码器 Nominatim。从今天开始,这项服务没有速率限制。
或者,如果您想要更多控制权,为什么不根据Nominatim 设置您自己的地理编码器?
【讨论】:
【参考方案2】:我在SmartyStreets 工作,我们专注于地址验证和地理编码。虽然我不确定(请参阅我对您的问题的评论)如果您是按地址或 IP 进行地理编码,但我知道您可以调查一些场所。我将从一些一般原则开始,然后提出一两个建议。
有服务可以对如此大的数量执行批量地理编码或en masse的地理编码。最终,要为单个用户每天处理超过一百万个请求,您确定要使用的 API 应具有以下特征:
地理分布。延迟很容易使请求的时间翻倍,并且在一天内超过一百万次查询(大约 11 次查询/秒)会严重影响您应用的性能。
可扩展。如果一台机器在处理 API 请求时不堪重负,系统将如何应对并为其他待处理的机器提供服务?
SLA 保证正常运行时间。特别是对于任务关键型操作,地理编码绝不能妨碍您,并且对于如此大的数量,您希望确保可用性不会受到任意影响。
便携/轻巧。换句话说,您需要能够以通用格式输出结果的东西。 XML 很好,但通常很难使用并且有其局限性。我个人发现JSON 是发送和接收数据的绝佳格式。
价格实惠。谷歌和雅虎 API 的高级计划通常是为企业实体设计的,成本很高。你的手段可能不允许这样做。
另外请记住,Google、OpenStreetMap (Nominatim)、Yahoo 和其他公司实际上并不会验证他们地理编码的位置。换句话说,你可以给 Google 或 OSM 一个实际上并不存在的地址,它仍然会给你坐标 --- 因为他们执行地址近似,而不是地址验证时间>。他们的目的是帮助您搜索/查找东西,但如果您需要准确的坐标,您最好确保地址正确。
开始四处寻找这样的 API。我建议您从LiveAddress 开始,看看它如何满足您的需求。我们每天处理数百万个请求,每秒可以轻松处理数千个请求,我们返回给您的数据只会真实存在:无需猜测地址。它带有 SLA,由美国各地的 3 个数据中心提供服务,并具有简单的 JSON 输出。响应时间通常约为 100 毫秒或更短(不包括我们无法控制的外部延迟)。
顺便说一句,它每月可免费用于 250 个地址或查询,在您的情况下,这应该可以帮助您真正轻松地开始......
如果您还有其他问题,我很乐意亲自为您提供帮助。
【讨论】:
【参考方案3】:免费?如果是这样,您将找不到 Google、Yahoo、Microsoft、MapQuest 等商业公司提供的此类服务。唯一的方法是为更多的日常查询付费或使用 OpenStreetMap.org (OSM)。然而,OSM 的 API 每天只提供 2.5k 查询,但您可以下载整个地图内容(甚至某些部分,例如特定城市或国家)并将其放在您自己的服务器上。请注意,OSM 不提供卫星或街景。
【讨论】:
以上是关于地理编码服务[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
是否有 JavaScript 或可能的 Python/Django Web 服务来对街道地址进行地理编码? [关闭]