Javascript 谷歌地图地理编码API不正确的速率限制

Javascript 谷歌地图地理编码API不正确的速率限制,javascript,google-maps,map,Javascript,Google Maps,Map,我正在为公司使用的一个内部工具添加一个映射函数。长话短说,我们有一个大约50个地址的列表,需要放在地图上。我正在使用GoogleMaps,因此它是一个交互式地图,然后是用于地理编码和添加标记的javascript API 根据,我被限制为每秒10个请求。因此,我将javascript设置为通过地址数组进行搅动,并在每个批之间设置一个延迟 因此,我的函数设置了两个confif变量,我可以设置它们:addressesPerBatch和timeoutPerBatch——很明显每个变量都应该做什么。你会

我正在为公司使用的一个内部工具添加一个映射函数。长话短说,我们有一个大约50个地址的列表,需要放在地图上。我正在使用GoogleMaps,因此它是一个交互式地图,然后是用于地理编码和添加标记的javascript API

根据,我被限制为每秒10个请求。因此,我将javascript设置为通过地址数组进行搅动,并在每个批之间设置一个延迟

因此,我的函数设置了两个confif变量,我可以设置它们:addressesPerBatch和timeoutPerBatch——很明显每个变量都应该做什么。你会认为,从谷歌的文档判断,我是被允许的

 addressesPerBatch = 10;
 timeoutPerBatch = 1000; //That's in milliseconds
我肯定不是。当我这么快发送请求时,我很快就达到了速率限制。我找到的最佳地点其实就在附近“

那么,这是我的javascript的问题,还是谷歌的速率限制的问题

我创建了一个JSFIDLE,这样您就可以更好地了解我在做什么:

当我进行大批量地理编码时,我连续进行,每次查询之间的超时时间约为0.25秒。这不会造成问题,而且速度仍然足够快。数据库更新的时间远远超过了地理编码的请求/响应时间


此外,如果您拥有卓越理财许可证,请确保您按照有关向请求添加签名的说明进行操作,否则您的请求将被视为使用免费许可证。当我在开发服务器上进行了几次测试,从而达到了每日限值时,我很难了解到这一点!

根据对网站上类似问题的回答谷歌代码页:“地理编码API请求速率限制不会被披露,以帮助最小化服务滥用。”


就像@jwegner在评论中提到的那样,我们应该检查返回的状态代码,并对“超过查询限制”的情况实施持续回退“

只有当您达到查询限制时,才添加睡眠/重试,这样您就不必尝试调整配置以精确匹配API限制,怎么样。@ScottWegner这实际上是一个。我已经考虑过这样做(也许会),但它仍然不能解决根本问题。我应该被允许每秒10个请求,但现在我只得到每秒1个。您上面引用的速率限制文档是针对“Google Maps API Premier”的。此处描述的一般使用限制没有引用特定的每分钟限制:。注意,由于您是以客户端javascript的形式进行调用,因此配额适用于客户端。这对您是有益的,除非用户在一个代理后面,其中许多客户端都达到了相同的配额:@ScottWegner“还有一个适用于所有Google Maps API Web服务的每秒10个请求的速率限制。”@jwegner–这仍然在premier页面上,因此它只适用于premier客户(我想这是说你一天可以做10万个地理编码,但你不可能在一秒钟内完成所有的工作!)这一页说免费地理编码的限制是每天2500个,低于每秒0.3个。
 addressesPerBatch = 2;
 timeoutPerBatch = 2000;