Solución:
infowindow es una variable local y la ventana no está disponible en el momento de cerrar ()
var latlng = new google.maps.LatLng(-34.397, 150.644);
var infowindow = null;
...
google.maps.event.addListener(marker, 'click', function() {
if (infowindow) {
infowindow.close();
}
infowindow = new google.maps.InfoWindow();
...
});
...
Declarar variables globales:
var mapOptions;
var map;
var infowindow;
var marker;
var contentString;
var image;
En intialize
usa el mapa addEvent
método:
google.maps.event.addListener(map, 'click', function() {
if (infowindow) {
infowindow.close();
}
});
Para bucles que crean infowindows
dinámicamente, declare un variable global
var openwindow;
y luego en el addListener
llamada de función (que está dentro del bucle):
google.maps.event.addListener(marker<?php echo $id; ?>, 'click', function() {
if(openwindow){
eval(openwindow).close();
}
openwindow="myInfoWindow<?php echo $id; ?>";
myInfoWindow<?php echo $id; ?>.open(map, marker<?php echo $id; ?>);
});
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)