地理编码服务

3
我正在寻找一个地理编码服务,可以提供每天100万个查询。我已经了解了谷歌/雅虎API,但很遗憾,它们都无法提供这样的数量。感谢任何帮助。

你是通过地址还是IP进行地理编码? - Matt
感谢回复。@Matt,我对地址地理编码很感兴趣。我们有一个包含1600万个地址的大型数据集,需要为所有记录获取纬度/经度。由于时间紧迫,这需要相当高的处理量。 - user869752
好的。那么根据你的情况,以下是我的回答。使用API,如果每个请求填充100个地址,则可能仅需几个小时即可完成。或者,您可以将列表上传到我们的列表处理器中,该处理器将在地理编码的同时跨整个集合标记重复项并对列表进行CASS认证。 - Matt
1
@user869752 在和您通话后,我忘了问数据最初来自哪里。 您从哪里获取您的纬度/经度数据,并且您如何知道它不准确。 通常,“准确性”不像“精度”那样重要。 如果精度级别是6英里半径,则纬度/经度坐标可以距离您的位置5英里,但仍然是准确的。 但是,如果您需要更高的“精度”,则需要更好的系统。 有许多与个人邮政编码相关的纬度/经度列表。 这些列表的价格低于100美元,但精度仅为邮政编码级别。 请提供更多信息? - Jeffrey
3个回答

2

谷歌、雅虎、MapQuest(授权服务)或微软将非常乐意让您使用其API以处理此类数据量,只需选择他们的高级计划即可。

如果您想免费使用,请尝试MapQuest Open提供的Nominatim,这是一个基于OpenStreetMap数据的免费地理编码器。截至今天,该服务没有速率限制。

或者,如果您想要更多的控制权,为什么不基于Nominatim建立自己的地理编码器呢?


1
我在SmartyStreets工作,我们专注于地址验证和地理编码。虽然我还不确定(请参见我的评论),您是通过地址还是通过IP进行地理编码,但我知道一些您可以调查的场所。我将从一些通用原则开始,然后提供一两个建议。
有一些服务可以执行批量地理编码或大规模地理编码。最终,为了从单个用户每天服务超过一百万个请求,您确定要使用的API应具备以下特征:
  • 地理分布。延迟可能会使请求时间加倍,而每天超过一百万个查询(约11个查询/秒)可能会严重影响您的应用程序性能。

  • 可扩展。如果一个机器因服务API请求而不堪重负,系统将如何应对并服务其他挂起的请求?

  • 具有保证的SLA正常运行时间。特别是对于关键任务,地理编码不能成为阻碍,对于这么大量的数据,您需要确保可用性不会受到任意影响。

  • 便携/轻量级。换句话说,您需要输出通用格式的结果。XML很好,但通常难以使用并具有其局限性。我个人发现JSON是发送和接收数据的绝佳格式。

  • 经济实惠。Google和Yahoo的API的高级计划通常是为公司实体设计的,价格昂贵。您的经济条件可能不允许这样做。

请注意,Google、OpenStreetMap(Nominatim)、Yahoo等地图服务并不会验证它们地理编码的位置。换句话说,你可以给Google或OSM一个不存在的地址,它仍然会给你提供坐标——因为它们执行的是地址“近似”,而不是地址“验证”。它们的目的是帮助你搜索/找到事物,但如果你需要准确的坐标,最好确保地址正确。
开始寻找像这样的API。我建议你从LiveAddress开始,并看看它是否符合你的需求。我们每天处理数百万个请求,可以轻松处理每秒数千个请求,我们返回给你的数据只会实际存在:不用猜测地址。它带有SLA,由美国三个数据中心提供服务,并具有简单的JSON输出。响应时间通常在100毫秒左右(不包括我们无法控制的外部延迟)。
顺便说一下,每月免费使用250个地址或查询,在你的情况下应该可以帮助你轻松入门...
如果您有任何进一步的问题,我将很乐意亲自帮助您。

0
免费的?如果是的话,像谷歌、雅虎、微软、MapQuest等商业公司就不会提供这样的服务。唯一的方式是支付更多每日请求或使用OpenStreetMap.org(OSM)。然而,OSM的API只提供2.5k次查询,但您可以下载整个地图内容(甚至某些部分,例如特定城市或国家)并将其放在自己的服务器上。请注意,OSM不提供卫星或街景查看。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接