我在从我的应用程序访问谷歌地图时遇到问题,当我从 java 脚本循环发送超过 10 个请求时,我从地理编码器服务中得到 OVER_QUERY_LIMIT 异常。有什么办法可以摆脱这种情况,我尝试使用 setInterval() 等来延迟一些时间。但是没有用。
问问题
96454 次
6 回答
15
可能您每秒发送的请求太多,而Google不允许您这样做。
阅读http://code.google.com/apis/maps/faq.html#geocoder_classorhttp
于 2010-08-23T07:58:23.247 回答
1
如果您使用的是自动完成功能,请尝试使用 Google 的Places Autocomplete API。(尽管这不是他所问的,我想很多人会从这个问题来到这里)
于 2014-02-08T20:53:45.293 回答
0
我们可以使用ajax队列。
一次将执行 20 个 ajax 请求,其他请求将在队列中等待。
创建多个地理编码密钥并保存在一个数组中,并为每个 ajax 请求随机使用它。
在这里,我加载了 2200 个标记。添加 2200 个位置大约需要 1 分钟。
<https://jsfiddle.net/suchg/qm1pqunz/11/>
于 2016-11-06T11:24:13.343 回答
0
有一个 API 列表并为每个请求随机使用它们。例如在 python 中
像键 = [key1,key1,key3....]
location = Geocoder(random.choice(keys)).geocode(address)
或者
location = Geocoder(random.choice(keys)).reverse_geocode(Lat,Long)
根据您的要求
于 2015-10-05T11:59:54.987 回答
0
首先阅读这篇文章。 https://developers.google.com/maps/premium/previous-licenses/articles/usage-limits
如果您在一秒钟内发送许多请求,请使用延迟方法。
function sleep(milliSeconds) {
var startTime = new Date().getTime();
while (new Date().getTime() < startTime + milliSeconds);
}
在循环结构中调用此方法。睡眠(2200);
于 2019-02-05T14:01:51.817 回答