私のアプリケーションからGoogleマップにアクセスするときに問題があります。Javaスクリプトから10以上のリクエストをループで送信すると、ジオコーダーサービスからOVER_QUERY_LIMITとして例外が発生します。これを取り除き、setInterval()などを使用していくつかの時間遅延を与えようとしました。しかし、動作しません。
おそらく、1秒間に送信するリクエストが多すぎるため、 Google ではできません。
読み取り http://code.google.com/apis/maps/faq.html#geocoder_classorhttp
JavaScript APIのジオコーディングにはレート制限があります。 APIを最初にロードするときに、OVER_QUERY_LIMIT応答を取得する前に、住所ジオコーディングのリクエストを10件、逆(latlng)ジオコーディングのリクエストを5件送信できます。その場合、「 exponential backoff 」を使用してクエリを遅延させます。
Issue 4805 (gmaps-api-issues)のディスカッションに参加することもできます。
オートコンプリートを使用している場合は、Google Places Autocomplete API を使用してみてください。 (これは彼が尋ねたとおりではありませんが、多くの人がこの質問からここに到着すると思います)
Ajaxキューを使用できます。
20時にajaxリクエストが実行され、他のリクエストはキューで待機します。
複数のジオコードキーを作成し、配列に保持し、各Ajaxリクエストに対してランダムに使用します。
ここに2200個のマーカーをロードしました。 2200の場所を追加するのに約1分かかります。
<https://jsfiddle.net/suchg/qm1pqunz/11/>
APIのリストを用意し、リクエストごとにランダムに使用します。 Pythonの例
like keys = [key1、key1、key3 ....]
location = Geocoder(random.choice(keys)).geocode(address)
または
location = Geocoder(random.choice(keys)).reverse_geocode(Lat,Long)
要件に基づいて
最初にこの記事を読んでください。 https://developers.google.com/maps/premium/previous-licenses/articles/usage-limits
1秒間に多くのリクエストを送信する場合は、遅延方法を使用します。
function sleep(milliSeconds) {
var startTime = new Date().getTime();
while (new Date().getTime() < startTime + milliSeconds);
}
ループ構造でこのメソッドを呼び出します。 sleep(2200);