javascript - Google map 地理编码 API 每秒配额限制与文档不匹配

标签 javascript google-maps google-maps-api-3

我想知道是否有人有时会遇到与我相同的问题:

我正在查询 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 个请求 (8 * 125 = 1000)。但有时,当脚本执行一段时间后,我会收到 Google 的 OVER_QUERY_LIMIT 状态代码。

现在文档 ( https://developers.google.com/maps/documentation/geocoding/usage-limits ) 说:

Users of the standard API:

  • 2,500 free requests per day
  • 10 requests per second

为什么在我的案例中返回OVER_QUERY_LIMIT?是因为我还创建了自定义Overlay吗?我对每个结果使用方法 overlayProjection.fromLatLngToDivPixel() 将从地理编码器返回的 latlng 转换为像素并绘制叠加层在 map 上。也许是因为这个?

感谢您的关注。

最佳答案

从长远来看,每天 2500 个请求相当于每个请求 34.56 秒。每秒 10 个请求的速率限制仅在短时间内有效(大约 10 个请求)。

(24 小时/天 * 60 分钟/小时 * 60 秒/分钟)/2500 个请求 = 34.56 秒/请求

每天 2500 个请求是硬性限制。每秒 10 个请求可能会根据服务器负载和其他因素(包括您最近的请求历史记录)而发生变化。

关于javascript - Google map 地理编码 API 每秒配额限制与文档不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33188570/

相关文章:

javascript - 将 Angular 值传递给普通 JavaScript

javascript - 如何将 Javascript 文件动态加载到 HTML 中

java - 谷歌地图AndroidRuntime致命异常: main

android - Android Marshmallow 最新更新中未显示 map

Android 在谷歌地图 api 中获取公共(public)交通工具?

javascript - 在 Google map 上显示街道标签

javascript - 如何在谷歌地图中设置缩放级别

javascript - jQuery - 如果我在里面点击,不要隐藏 div

javascript - 如何使用 Jquery 在 Sap UI5 中为边框着色

google-maps - 通过 q 属性将路线发送到谷歌地图