首頁  >  文章  >  web前端  >  對多個位置進行地理編碼時,如何避免 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 錯誤,請嘗試增加延遲值。
  • 也要注意每日地理編碼請求總數的限制。

以上是對多個位置進行地理編碼時,如何避免 Google Maps API v3 中出現 OVER_QUERY_LIMIT 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn