谷歌地图 - 预先对许多地址进行地理编码?

时间:2010-11-01 18:49:58

标签: google-maps geocoding

我需要在地图上绘制大约1600个地址。我不想在运行时进行地理编码,因为我认为这需要太长时间。相反,我想提前对地址进行地理编码,将其Lat / Long值添加到表中,并在运行时从表中读取。不幸的是,我无法弄清楚如何/在哪里对一批地址进行地理编码。你们其中一个人会向我解释和/或指向一个好的教程吗?

提前致谢。

2 个答案:

答案 0 :(得分:5)

您可以使用Google Maps Data API执行此操作。您将感兴趣的是地理编码部分(See API docs)。只需编写一个PHP脚本:

1)遍历您的地址

2)将HTTP请求(使用CURL或file_get_contents())发送到http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false

3)解析JSON响应

4)存储在您的数据库中

请注意,Google有使用限制。我不确定那些是什么,所以1600请求可能是也可能不是问题。您可能希望在请求之间添加延迟和/或在几天内运行它。

答案 1 :(得分:1)

为了避免违反TOS违规行为和性能问题/限制,您可以考虑寻找替代服务。

我在一家名为SmartyStreets的公司工作,我们在那里对地址进行地理编码和验证。虽然Google会最好地猜测一个地址的有效性(以及地理编码的准确性),但是CASS-Certified会先返回lat / lon坐标之前确保地址存在。我们有一个名为LiveAddress API的服务来执行此操作。

  • 您可以使用我们的API执行批量地理编码(每个请求最多100个地址)

  • 您可以存储结果(1600个地址实际上是一个非常小的数字。我们可以定期处理数千万的数据集。)

  • 速度快 - 没有限制或使用限制;你支付你使用的费用。

根据您的提及,我认为这可以满足您的需求。如果您有任何其他问题,请与我们联系。