OVER_QUERY_LIMIT同时使用谷歌地图

问题描述 投票:37回答:6

我有一个问题,而从我的应用程序acessing谷歌地图,当我从Java脚本循环发送超过10个请求,我得到的异常,因为从地理编码服务OVER_QUERY_LIMIT。在那里,我可以摆脱这种任何方式,我希望能够对使用的setInterval()一些时间延迟等。但不工作。

google-geocoder
6个回答
12
投票

也许你是每秒发送过多的请求和Google不会让你这样做。

阅读http://code.google.com/apis/maps/faq.html#geocoder_classorhttp


3
投票

地址解析JavaScript API中的速率限制。当你第一次加载API,您可以发送的地址地理编码或5 10个请求反向(经纬度),地理编码,你得到一个OVER_QUERY_LIMIT响应之前。当你这样做,用“exponential backoff”耽误您的查询。

您可能还需要参加Issue 4805项(GMaps-API问题)的讨论。


1
投票

如果您使用的是自动完成的,请尝试使用谷歌的Places Autocomplete API。 (尽管这不正是他问,我想很多人会从这个问题来到这里)


0
投票

有API的列表,并随机使用它们为每个请求。对于在实施例蟒

像钥匙= [KEY1,KEY1,KEY3 ....]

location = Geocoder(random.choice(keys)).geocode(address) 

要么

location = Geocoder(random.choice(keys)).reverse_geocode(Lat,Long)

根据您的需要


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);


0
投票

我们可以使用Ajax队列。

而此时20 Ajax请求将得到执行和其他人将在队列中等待。

创建多个地理编码密钥和保持在一个阵列和随机使用它为每个AJAX请求。

在这里,我已经装2200个标记。它需要大约1分钟加2200点的位置。

<https://jsfiddle.net/suchg/qm1pqunz/11/>
© www.soinside.com 2019 - 2024. All rights reserved.