首页  >  文章  >  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