我想知道是否有人有时遇到相同的问题:
我正在查询Google的服务器,并使用setTimeout()
类似于以下内容的循环对某些地方进行地理编码:
//...
var loop = function() {
setTimeout(function() {
// Here I do the geocode request and create a CustomOverlay which I then show on the map.
setTimeout(loop, 0); // Let the browser do some other work, e.g. rendering
}, 125);
};
loop();
//...
现在,我将超时设置为125
毫秒,这意味着在1秒内最多8 * 125 = 1000
可以发出8个请求()。但是有时OVER_QUERY_LIMIT
在脚本执行一段时间后,我会得到Google的状态代码。
现在,文档(https://developers.google.com/maps/documentation/geocoding/usage-limits)表示:
标准API的用户:
- 每天2,500个免费请求
- 每秒10个请求
为什么要OVER_QUERY_LIMIT
退回我的案子?是因为我还创建了一个自定义Overlay
吗?我overlayProjection.fromLatLngToDivPixel()
对每个结果使用方法,将Geocoderlat
和lng
从Geocoder返回的结果转换为像素,并在地图上绘制叠加层。也许是因为它吗?
感谢您的关注。
从长远来看,每天2500个请求可以达到34.56秒/请求。每秒10个请求的速率限制仅在短时间内有效(大约10个请求)。
(24小时/天* 60分钟/小时* 60秒/分钟)/ 2500个请求= 34.56秒/请求
每天2500个请求是硬限制。每秒10个请求可能会根据服务器负载和其他情况(包括您最近的请求历史记录)而变化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句