我正在使用以下函数来加载地址的latlng从数组到数组大约40,但它在10次迭代后停止。
loadStoreLatLong(40);
function loadStoreLatLong(i){
var paddress = store_locations[i]['address'] +','+store_locations[i]['postal_code'] + ', ' +store_locations[i]['district'] + ',' + store_locations[i]['country'];
var pgeocoder = new google.maps.Geocoder();
pgeocoder.geocode( { 'address': paddress}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
Storelatlong[i] = results[0].geometry.location;
i--;
if(i<0){
clientLocation();
}else{
loadStoreLatLong(i);
//var t = setTimeout("loadStoreLatLong("+(i)+")",1000);
//jQuery('#map_canvas').text('Loading ... '+i);
}
}
});
}
我真的被困在那里,任何人都可以帮忙解决这个问题,当我设定时间超过1000时,这会迭代40次,当我减少超时时,迭代也会减少并停止。感谢
答案 0 :(得分:0)
Google Maps API的地理编码器Javascript不适用于多点。他们否认在短时间内连续访问。
所以即使你有40分,也请使用REST版本。 https://developers.google.com/maps/documentation/geocoding/
答案 1 :(得分:0)
客户端地理编码器不用于在页面加载时对大量点进行地理编码。它用于对用户输入的地址进行地理编码。
它是异步的,受限于配额和速率限制。设置限制,以便您可以快速地对~10点进行地理编码(取决于服务器负载)。
您应检查返回的状态,是否表示您超出限制,延迟一段时间并重试。
见安德鲁对this question
的回答