我有一个问题,而从我的应用程序acessing谷歌地图,当我从Java脚本循环发送超过10个请求,我得到的异常,因为从地理编码服务OVER_QUERY_LIMIT。在那里,我可以摆脱这种任何方式,我希望能够对使用的setInterval()一些时间延迟等。但不工作。
也许你是每秒发送过多的请求和Google不会让你这样做。
阅读http://code.google.com/apis/maps/faq.html#geocoder_classorhttp
地址解析JavaScript API中的速率限制。当你第一次加载API,您可以发送的地址地理编码或5 10个请求反向(经纬度),地理编码,你得到一个OVER_QUERY_LIMIT响应之前。当你这样做,用“exponential backoff”耽误您的查询。
您可能还需要参加Issue 4805项(GMaps-API问题)的讨论。
如果您使用的是自动完成的,请尝试使用谷歌的Places Autocomplete API。 (尽管这不正是他问,我想很多人会从这个问题来到这里)
有API的列表,并随机使用它们为每个请求。对于在实施例蟒
像钥匙= [KEY1,KEY1,KEY3 ....]
location = Geocoder(random.choice(keys)).geocode(address)
要么
location = Geocoder(random.choice(keys)).reverse_geocode(Lat,Long)
根据您的需要
首先阅读这篇文章。 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);
我们可以使用Ajax队列。
而此时20 Ajax请求将得到执行和其他人将在队列中等待。
创建多个地理编码密钥和保持在一个阵列和随机使用它为每个AJAX请求。
在这里,我已经装2200个标记。它需要大约1分钟加2200点的位置。
<https://jsfiddle.net/suchg/qm1pqunz/11/>