Google引用了以下内容: https://developers.google.com/maps/documentation/javascript/geocoding
并指出:
每个会话的速率限制禁止将客户端服务用于批处理请求,例如批处理地理编码。对于批量请求,请使用Geocoding API web service。
但是,当您转到Geocoding API Web服务页面时,看不到任何有关批处理的参考。上面的句子暗示您可以进行批处理。我需要发送大量地址来获取经度和纬度,但是对每个地址进行单独的调用会花费很长时间,因此需要一种更有效的方法。希望可以通过一个批处理调用来发送所有地址。
关于如何在Google上批量处理地址以获取经度和纬度的任何想法?
我看过这个Google Batch Geocoding API
但是,它说明您不能使用以上google语句推断出的内容。
答案 0 :(得分:2)
Geocoding API当前没有可用的功能来在单个调用中处理多个地址,但是,您可以通过cURL来实现批处理,这样做可以一次自动调用多个请求。实施也将取决于您的用例。
答案 1 :(得分:1)
根据Geocoding API web service documentation:
其他使用限制
虽然您不再受限于每天的最大请求数(QPD),但是Geocoding API的以下使用限制仍然存在:每秒50个请求(QPS),以客户端和服务器端查询的总和计算。
您只能限制为每秒50个请求,并且必须为它们付费(用完$ 200信用额后)
答案 2 :(得分:0)
我发现解决此问题的最佳方法是使用包含最多 27 个目的地(起点、目的地和 25 个航点)的 Directions API,并获取响应路线的地理位置。从我观察到的情况来看,位置精度略低于地理编码情况,但这仍然是一个很好的权衡。
在最坏的情况下,如果在您的呼叫中找不到一个或多个地址,您将不得不两次调用 Directions API。在这种情况下的好处是,Directions API 会给您一个带有 geocoded_waypoints 的响应,该响应将使用 geocoder_status 指定 NOT_FOUND 位置。之后,您可以消除坏的并再次调用。