2010-09-29 6 views
2

J'utilise V3 de l'API Google javascript pour ajouter plus de marqueurs lorsque les limites de la carte sont modifiées. Le problème est que lorsque je fais glisser la carte pendant un moment et que je finis par faire glisser un flot d'événements, cela se déclenche immédiatement. Ils semblent faire la queue pendant que la carte est déplacée.Événement Google maps get_bounds déclenché plusieurs fois

Y a-t-il un moyen d'ajouter une minuterie pour arrêter ceci ou devrais-je utiliser les événements zoom_changed et dragend comme une solution de contournement?

Voici le code relivant:

google.maps.event.addListener(map, 'bounds_changed', function() { 
    var bounds_url = map.getBounds().toUrlValue(); 
    $.ajax({ 
    //... 
    }); 
}); 
+1

J'ai fait face au même problème et utilisé le zoom_changed et drageng –

Répondre

1

Ajouter un délai d'attente, qui exécute votre code après 500ms de l'événement se déclenche, chaque fois que l'événement se déclenche effacer le délai d'attente et de créer un nouveau.

google.maps.event.addListener(map, 'bounds_changed', (function() { 
    var timer; 
    return function() { 
     clearTimeout(timer); 
     timer = setTimeout(function() { 
      // here goes an ajax call 
     }, 500); 
    } 
}())); 
1

Ceci est connu bug, équipe Google recommande d'utiliser:

google.maps.event.addListener (carte, 'ralenti', function() { });

Questions connexes