我需要在地图上绘制大约1600个地址。我不想在运行时进行地理编码,因为我认为这需要太长时间。相反,我想提前对地址进行地理编码,将其Lat / Long值添加到表中,并在运行时从表中读取。不幸的是,我无法弄清楚如何/在哪里对一批地址进行地理编码。你们其中一个人会向我解释和/或指向一个好的教程吗?
提前致谢。
答案 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个地址实际上是一个非常小的数字。我们可以定期处理数千万的数据集。)
速度快 - 没有限制或使用限制;你支付你使用的费用。
根据您的提及,我认为这可以满足您的需求。如果您有任何其他问题,请与我们联系。