Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann der Google Maps API OVER_QUERY_LIMIT-Fehler in Version 3 verhindert werden?

Patricia Arquette
Freigeben: 2024-11-02 22:50:02
Original
315 Leute haben es durchsucht

How to Prevent the Google Maps API OVER_QUERY_LIMIT Error in v3?

So behandeln Sie den OVER_QUERY_LIMIT-Fehler in Google Maps API v3

Einführung:

In Google Maps API v3 können Sie Es tritt der Fehler OVER_QUERY_LIMIT auf, wenn in einem kurzen Zeitraum zu viele Geokodierungsanfragen gestellt werden. Um diesen Fehler zu vermeiden, muss ein Verzögerungsmechanismus zwischen Anfragen implementiert werden.

JavaScript-Implementierung:

Um eine Pause zwischen Geokodierungsaufrufen einzuführen, können Sie das folgende JavaScript verwenden Code:

<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>
Nach dem Login kopieren

Dieser Code prüft auf bestehende Verzögerungen, legt eine neue Verzögerung fest, wenn der Fehler OVER_QUERY_LIMIT auftritt, und wartet, bis die Verzögerung beendet ist, bevor er mit der Geokodierung fortfährt.

Beispiel:

In Ihrem bereitgestellten Code können Sie die vorhandene codeAddress-Funktion durch die aktualisierte Version ersetzen:

<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>
Nach dem Login kopieren

Diese Änderung führt zu den notwendigen Verzögerungen, um den Fehler OVER_QUERY_LIMIT zu verhindern.

Das obige ist der detaillierte Inhalt vonWie kann der Google Maps API OVER_QUERY_LIMIT-Fehler in Version 3 verhindert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage