2012-09-19 3 views
0

Nous utilisons Google Maps et j'ai un cas où nous avons une carte entièrement remplie, pleine de marqueurs et en cliquant sur un résultat spécifique en dehors de la carte, le code suivant est exécuté pour le marqueur correspondant.Google Map InfoBox à plusieurs reprises ouverture/dessin

map.setCenter(new google.maps.Marker({ 
    position : new google.maps.LatLng(latitude, longitude) 
}).getPosition()); 
map.setZoom(10); 
google.maps.event.trigger(currentMarker, 'click', {latLng: new google.maps.LatLng(latitude, longitude)}); 

Ce code est destiné à, centrez le marqueur spécifié, zoomez sur le marqueur, et activez l'événement « clic » qui tire à son tour/ouvre une boîte d'informations. Le problème est que la plupart du temps, lorsque ce code est exécuté, l'événement click est déclenché plusieurs fois sur le marqueur, ce qui provoque le redessin de l'InfoBox plusieurs fois (ce n'est pas un ensemble de fois chaque fois). Est-ce que quelqu'un a une idée pourquoi cela pourrait se produire?

Répondre

0

Je suis assez positif si vous passez le currentMarker dans le google.maps.event.trigger vous n'avez pas besoin de spécifier le lat/long. Il devrait juste être google.maps.event.trigger(currentMarker, 'click'). De même, une autre option utilise l'événement .on() de jquery sur le lien externe pour détecter le clic puis déclencher un infoWindow.open() sur le marqueur. Voici un extrait de comment cela pourrait ressembler.

$('#openmarker').on('click', function(e){ 
    e.preventDefault(); 
    infowindow.open(map,currentMarker); 
    map.setCenter(currentMarker.getPosition()); 
}); 
Questions connexes