javascript - 620 : Too many queries using Google Maps API

标签 javascript google-maps-api-3

我正在使用 Google Maps Javascript API V3 对页面上的许多位置 (~100) 进行反向地理编码。大约 10 次之后,我开始收到 620 错​​误:查询太多。

什么是延迟请求并确保它们全部完成的好方法,因为它们是异步的?

编辑: 这是我到目前为止所拥有的。大多数情况下,它会完成所有请求,但不会重试失败的请求。

function replaceAddresses() {
    var delay = 0;
    $(".lat-lon-address").each(function(index) {
        window.setTimeout(queryGeocoder, delay, this);          
        delay += 1000;
    });
}

function queryGeocoder(elem) {
    geocoder.getLocations(new GLatLng(
        elem.getAttribute("lat"),
       elem.getAttribute("lon")), 
        function(response) {
            handleAddress(response, elem);
        }); 
}

function handleAddress(response, elem) {
    if (!response || response.Status.code != 200) {
        console.log("status code: " + response.Status.code)
    } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
                        place.Point.coordinates[0]);

        elem.innerHTML = place.address;
    }
}

最佳答案

上次我检查过你每天只允许 2500 个地理编码请求(基于你的 ip)。这对您来说应该足够了,但如果您使用更大的数据集,您可能需要购买更大的限制。

提示

在本地存储您的地理编码信息,也许在数据库中。从数据库中获取值而不是使用 Google 的网络服务。这样也会快得多。如果某个位置仅缺少地理信息,那么您应该对其进行地理编码。

当您编写一些使用地理编码的新代码时,不要对所有 600 个地址进行测试,首先尝试一个或两个地址,以确保您不会因一些功能失调的代码而不必要地耗尽每日津贴的一半。

如果可以,请在客户端进行地理编码,这不计入您的限制。

关于javascript - 620 : Too many queries using Google Maps API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3908435/

相关文章:

javascript - 如何将选定的日期从日期选择器获取到后端的方法

javascript - 从 DirectionsRenderer 的折线或标记获取事件

javascript - 如何为 Google 街景实现 "move forward"操作?

google-maps - resizeevent 没有触发

javascript - 使用错误 : "Uncaught ReferenceError: BitmapDescriptorFactory is not defined" 更改 Google map 图标标记色调颜色

javascript - 与服务器端渲染堆栈 react

javascript - 使用参数创建动画队列

javascript - 带有表单的动态模态 - 未定义的发布数据

javascript - 使用 jQuery 在 iframe 中加载页面后,将 CSS 类添加到表格行?

c# - 如何获得每个国家与谷歌的距离