0

我在 Google Maps API 3 中使用它

基本上我在地图上添加了大约 150 个标记。我使用 GeoCoding 一次来获取经纬度,以便将地图集中在特定位置,但这是我唯一一次使用 GeoCoding。但是,GeoCoding 异步返回结果,因此我通过将其余代码放在 GeoCode 回调函数中来等待返回结果(请参见下面的代码)。这一切都很好,直到今天我们开始返回一张空白地图。

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

经过进一步调查,我们发现每天有 2500 个地理编码请求的限制。但是,我真的看不出这个特定的网站可能已经达到了这个限制,因为我们每个地图请求只调用一次 GeoCode ......当然,除非我对下面的代码有什么不理解......是事实我们将所有内容都包含在 GeoCode 回调中意味着我们以某种方式多次调用 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);
}

我们现在一切正常,但想知道是否有人能解释一下?

4

2 回答 2

1

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

于 2013-11-06T16:20:57.697 回答
1

如果您发送请求的速度太快,您也会得到这个结果。请参阅文档

于 2013-11-06T16:31:00.167 回答