0

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);
        });
    }

しかし、それは必要に応じて機能していません。誰かがこの制限を回避する方法を示すことによって私を助けることができますか?

詳細が必要な場合に備えてお知らせください。

ありがとう。

4

1 に答える 1

2

「OVER_QUERY_LIMIT」のステータスを確認できます。これが表示された場合は、$.delay(3000) のように数秒間遅延できます: http://api.jquery.com/delay/

1 日の制限、または 10/秒の制限を超えていますか?

于 2012-09-03T12:08:36.250 に答える