Maison >interface Web >js tutoriel >Comment éviter les erreurs OVER_QUERY_LIMIT dans l'API Google Maps v3 lors du géocodage de plusieurs emplacements ?

Comment éviter les erreurs OVER_QUERY_LIMIT dans l'API Google Maps v3 lors du géocodage de plusieurs emplacements ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-02 15:23:02270parcourir

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

Ralentir les demandes de géocodage pour éviter les erreurs OVER_QUERY_LIMIT dans l'API Google Maps v3

Origine de l'erreur

Lors du géocodage de plus de 11 emplacements à l'aide de l'API Google Maps v3, vous pouvez rencontrer l'erreur OVER_QUERY_LIMIT. Cela indique que vous dépassez la limite de débit pour les requêtes de géocodage.

Solution

Pour résoudre cette erreur, vous devez introduire des pauses entre les requêtes de géocodage.

Implémentation JavaScript

Voici une version modifiée de votre code qui implémente une pause après chaque demande de géocodage :

<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>

Comment ça marche

Dans ce code, la fonction setTimeout() est utilisée d'introduire un délai de 2 secondes (2000 millisecondes) entre chaque demande de géocodage. Cela garantit que vous ne dépassez pas la limite de débit imposée par l'API.

Remarques

  • Vous pouvez ajuster la valeur du délai en fonction de la limite de débit et de vos besoins.
  • Si vous rencontrez à nouveau l'erreur OVER_QUERY_LIMIT, essayez d'augmenter la valeur du délai.
  • N'oubliez pas également la limite quotidienne du nombre total de demandes de géocodage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn