我正在使用谷歌地圖繪製存儲在數據庫中的各個位置之間的路徑。如何處理OVER_QUERY_LIMIT
雖然經過15個geopoints(任何超過10個),我得到的地位OVER_QUERY_LIMIT。
我知道當我們每秒傳遞10個以上的地點時,我們需要給予一些毫秒的時間間隔。
我的問題是HOW TO DO THAT..Where補充睡眠()或setTimeout的()或我已經嘗試了所有其他時間的延遲代碼
,最大在SO提供,但所有的可能性失敗。因爲他們只是說請求之間的時間差距,但如何做到這一點?
代碼段:
var markers = [
{
"title": 'abc',
"lat": '17.5061925',
"lng": '78.5049901',
"description": '1'
},
{
"title": 'abc',
"lat": '17.50165',
"lng": '78.5139204',
"description": '2'
},
.
.
.
.
.
{
"title": 'abc',
"lat": '17.4166067',
"lng": '78.4853992',
"description": '15'
}
];
var map;
var mapOptions = {
center: new google.maps.LatLng(markers[0].lat, markers[0].lng),
zoom: 15 ,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var path = new google.maps.MVCArray();
var service = new google.maps.DirectionsService();
var infoWindow = new google.maps.InfoWindow();
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
var poly = new google.maps.Polyline({
map: map,
strokeColor: '#000000'
});
var lat_lng = new Array();
for (var i = 0; i <= markers.length-1; i++)
{
var src = new google.maps.LatLng(markers[i].lat, markers[i].lng);
var des = new google.maps.LatLng(markers[i+1].lat, markers[i+1].lng);
poly.setPath(path);
service.route({
origin: src,
destination: des,
travelMode: google.maps.DirectionsTravelMode.DRIVING
},
function (result, status)
{
if (status == google.maps.DirectionsStatus.OK)
{
for (var i = 0, len = result.routes[0].overview_path.length;
i < len; i++)
{
path.push(result.routes[0].overview_path[i]);
}
}
else{
if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT)
{
document.getElementById('status').innerHTML +="request failed:"+status+"<br>";
}
}
});
}
});
結果地圖(OVER_QUERY_LIMIT):
我已經提到它@Andreas但它並沒有提到**怎麼辦**這是所有關於**怎麼辦**這是非常困難的,我假裝。 – Prabs 2015-04-02 11:35:29