Google Maps API V3 - over_query_limit GeoCoderStatus混淆

时间:2013-11-06 16:08:24

标签: google-maps google-maps-api-3

我在Google Maps API 3中使用此功能

基本上我要在地图上添加约150个标记。我使用GeoCoding一次得到lat和long,以便将地图置于特定位置的中心,但这是我使用GeoCoding的 时间。但是,GeoCoding会异步返回结果,所以我等待通过将其余代码放在GeoCode回调函数中来返回结果(参见下面的代码)。这一切都很好,直到今天我们开始得到一张空白地图。

在调查时,我意识到GeocoderStatus正在返回 over_query_limit ,并且由于if语句,它绕过了其余的代码。

经过进一步调查,我们发现每天有2500个GeoCode请求限制。但是,我无法真正看到这个特定的网站可能达到了这个限制,因为我们每个地图请求只调用一次GeoCode ...除非当然有一些我不理解我们下面的代码...是事实我们在GeoCode回调中包装everythign是否意味着我们不止一次调用GeoCode?

无论如何,此代码有时会导致 over_query_limit GeoCodeStatus错误并返回空白地图

function initialize() {
    var geocoder = new google.maps.Geocoder();
    var mapCentre = "Blackpool, United Kingdom";

    // Get lat long for city that we use to center the map within the container.
    geocoder.geocode({ 'address': mapCentre }, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            var mapCentreLatlng = new google.maps.LatLng(results[0].geometry.location.lb, results[0].geometry.location.mb);
            // This function creates the marker - it does not use GeoCoder to look up an address as we supply the lat and long directly in our JSON
            buildMap(mapCentreLatlng);
        }
    });
}

这段代码很好 - 它不再调用GeoCode

function initialize() {
   var mapCentreLatlng = new google.maps.LatLng(53.8142, -3.0503);
   buildMap(mapCentreLatlng);
}

我们现在有一切工作,但只是想知道是否有人可以解释?

2 个答案:

答案 0 :(得分:1)

过去24小时内,来自同一IP地址的限制为2500个GeoCode请求! 但我发现有时候会少一些。

答案 1 :(得分:1)

如果您发送的请求太快,您也会收到此结果。请参阅documentation