소개:
Google Maps API v3에서 다음을 수행할 수 있습니다. 짧은 기간에 너무 많은 지오코딩 요청을 하면 OVER_QUERY_LIMIT 오류가 발생합니다. 이 오류를 방지하려면 요청 사이에 지연 메커니즘을 구현해야 합니다.
JavaScript 구현:
지오코딩 호출 사이에 일시 중지를 도입하려면 다음 JavaScript를 사용할 수 있습니다. 코드:
<code class="javascript">function codeAddress(vPostCode) { if (geocoder) { // If there's an existing delay, wait for it to finish while (wait) { /* Just wait. */ } 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 if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) { wait = true; setTimeout(function() { wait = false; }, 2000); // Set a delay of 2000 milliseconds } else { alert("Geocode was not successful for the following reason: " + status); } }); } }</code>
이 코드는 기존 지연을 확인하고, OVER_QUERY_LIMIT 오류가 발생하면 새 지연을 설정하고, 지오코딩을 재개하기 전에 지연이 완료될 때까지 기다립니다.
예:
제공된 코드에서 기존 codeAddress 함수를 업데이트된 버전으로 대체할 수 있습니다.
<code class="javascript">function codeAddress(vPostCode) { if (geocoder) { while (wait) { /* Just wait. */ }; 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 if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) { wait = true; setTimeout(function() { wait = false; }, 2000); } else { alert("Geocode was not successful for the following reason: " + status); } }); } }</code>
이 수정으로 인해 OVER_QUERY_LIMIT 오류를 방지하는 데 필요한 지연이 발생합니다.
위 내용은 v3에서 Google Maps API OVER_QUERY_LIMIT 오류를 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!