Google地圖對API使用有限制: 所有Web服務每個Web服務每秒10個請求的速率限制。 Google Places API具有單獨的使用限制。 Ref:Google Maps API v3:處理使用限制
我發送超過10個請求到Google地圖API。 下面是我用JQuery.ui.maps寫了一個示例代碼:
$('#map').gmap('displayDirections', {
'origin': new google.maps.LatLng(42.645573,-71.098326),
'destination': new google.maps.LatLng(42.345573,-72.298326),
'travelMode': google.maps.DirectionsTravelMode.DRIVING },
{suppressMarkers: true},function(success, result) {
if (success)
alert('Results found!');
});
我已經更新了以下jQuery函數按我的要求。 我爲每個請求添加了1秒的睡眠/延遲。
displayDirections: function(current, directionsRequest, directionsRendererOptions, callback) {
alert("displayDirections "+current);
var startTime = new Date().getTime(); // get the current time
while (new Date().getTime() < startTime + 1000) {
} // hog cpu
var self = this;
var directionService = this.get('services > DirectionsService', new google.maps.DirectionsService());
var directionRenderer =new google.maps.DirectionsRenderer(directionsRendererOptions);
directionService.route(directionsRequest, function(results, status) {
alert("directionService Called " + current);
var startTime = new Date().getTime(); // get the current time
while (new Date().getTime() < startTime + 1000) {
} // hog cpu
if (status === 'OK') {
directionRenderer.setDirections(results);
directionRenderer.setMap(self.get('map'));
} else {
alert(status)
directionRenderer.setMap(null);
}
self.get('directionRenderers').push(directionRenderer);
callback(results, status);
});
}
但它不按要求工作。 有人可以通過展示如何解決此限制來幫助我。
如果需要更多細節,請告訴我。
謝謝。
這不是一個睡眠....有沒有聽說過setTimeout? – Adam
感謝@Adam的幫助。使用'setTimeout' – DarkKnightFan