地理编码多个地址

时间:2008-12-28 23:02:28

标签: google-maps geocoding yahoo-maps

我需要为每个请求对200个地址进行地理编码,每天执行大约3,000个请求。我将使用PHP来做这个服务器端。我查看了How to convert an address to a latitude/longitude?,但无法找到Google Maps HTTP Request API或Yahoo Geocoding REST API(不能使用JavaScript,因为这是服务器端)发送多个地址的方法。

我将主要使用它来根据坐标对地址进行排序,如果API支持,请填写每个地址的任何缺失数据。地址仅限于美国。地理编码的地址将来自用户输入,因此可以是自由形式,如“街道地址,邮政编码”或“城市,州”等。准确性对于坐标来说并不重要,例如在500英尺左右。

是否有免费的API来处理这个问题?有没有办法让雅虎或谷歌在请求中执行多个位置?

7 个答案:

答案 0 :(得分:20)

我查看了Google Maps api,Yahoo Maps Api,MapQuest API和Microsoft Virtual Earth API。这些免费服务都不允许批量地理编码。

但是,Google Maps api每天允许15,000个goecodes。但是当你一次发送太多时他们不喜欢它。他们建议在请求之间等待200ms。他们通过IP地址btw跟踪你。

雅虎每天允许5,000次,也是一种简单易用的API。 Microsoft Virtual Earth每天允许5,000个,但api文档是一个痛苦的对接。

MapQuest很奇怪,似乎没有给出好的结果(我所见过的所有内容都不准确)。

我实际上已将代码设置为在多个服务之间切换,因此我可以一次发出多个请求。这种 - 模拟批量编码。

答案 1 :(得分:6)

geocoder.us会执行您想要的操作,但批量查找可能会遇到同样的问题。他们会收取批量查询费用。

GeoNames会通过批量原始数据还是通过web services提供足够的信息?

答案 2 :(得分:5)

USC WebGIS Geocoder提供可以执行此操作的several geocoding API's。它是免费的,允许从代码中批量查找,或者您可以上传数据库进行批处理。

答案 3 :(得分:2)

Mapquest有一个允许批量地理编码的API。但是他们不直接为PHP提供一个。但是您可以查找他们的协议文档http://developer.mapquest.com/Library/SDK_Documentation/Protocols来自己实现它。他们可能会将批量地理编码称为文档中的位置集合。

答案 4 :(得分:2)

这可能听起来很奇怪,但我不久前做了一个网站,客户希望用户只输入一个zip,我们会提供剩余的数据。我使用了yahoo weather api,当时它返回了一个包含所有天气数据的xml文件,并且ciy,state,zip在美国的地址中运行良好

答案 5 :(得分:2)

查看http://www.torchproducts.com/tools/geocode以快速对地址列表进行地理编码

答案 6 :(得分:0)

使用GDirections。它一次最多允许25个航点,并为每个航点返回一个地理编码的位置。