ホームページ  >  記事  >  ウェブフロントエンド  >  複数の場所をジオコーディングするときに Google Maps API v3 で発生する OVER_QUERY_LIMIT エラーを回避するにはどうすればよいですか?

複数の場所をジオコーディングするときに Google Maps API v3 で発生する OVER_QUERY_LIMIT エラーを回避するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-02 15:23:02193ブラウズ

How to Avoid OVER_QUERY_LIMIT Errors in Google Maps API v3 When Geocoding Multiple Locations?

Google Maps API v3 での OVER_QUERY_LIMIT エラーを回避するためにジオコーディング リクエストの速度を下げる

エラーの原因

Google Maps API を使用して 11 か所以上の場所をジオコーディングする場合v3 では、OVER_QUERY_LIMIT エラーが発生する可能性があります。これは、ジオコーディング リクエストのレート制限を超えていることを示しています。

解決策

このエラーを解決するには、ジオコーディング リクエスト間に一時停止を導入する必要があります。

JavaScript の実装

これは、各ジオコーディング リクエストの後に一時停止を実装するコードの修正バージョンです:

<code class="javascript">function codeAddress(vPostCode) {
    if (geocoder) {
      setTimeout(function() {
        geocoder.geocode( { 'address': "'" + vPostCode + "'"}, function(results, status) {
          if (status == google.maps.GeocoderStatus.OK) {
            map.setCenter(results[0].geometry.location);
            var marker = new google.maps.Marker({
                map: map, 
                position: results[0].geometry.location
            });
          } else {
            alert("Geocode was not successful for the following reason: " + status);
          }
        });
      }, 2000); // 2 seconds delay
    }
  }</code>

仕組み

このコードでは、setTimeout() 関数が使用されます。各ジオコーディング リクエスト間に 2 秒 (2000 ミリ秒) の遅延が発生します。これにより、API によって課されたレート制限を超えないようにすることができます。

メモ

  • レート制限と要件に基づいて遅延値を調整できます。
  • 再び OVER_QUERY_LIMIT エラーが発生した場合は、遅延値を増やしてみてください。
  • ジオコーディング リクエストの 1 日の合計数の制限にも注意してください。

以上が複数の場所をジオコーディングするときに Google Maps API v3 で発生する OVER_QUERY_LIMIT エラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。