我在 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);
}
我们现在一切正常,但想知道是否有人能解释一下?