GoogleマップにはAPIの使用に制限があります。すべてのWebサービスWebサービスごとに1秒あたり10リクエストのレート制限。GooglePlacesAPIには個別の使用制限があります。参照:GoogleMapsAPIの使用制限
GoogleMapsAPIに10を超えるリクエストを送信しています。以下は、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);
});
}
しかし、それは必要に応じて機能していません。誰かがこの制限を回避する方法を示すことによって私を助けることができますか?
詳細が必要な場合に備えてお知らせください。
ありがとう。