Eu tenho uma div do Google Maps e uma lista de caixas de seleção que eu uso para filtrar marcadores no mapa.
Mas se eu clicar em um marcador, abra um InfoWindow
e, em seguida, clique em uma caixa de seleção para remover os marcadores desse tipo. InfoWindow
não é removido do mapa.
Depois de remover os marcadores, eu chamo este código, mas o InfoWindow
permanece:
try {
if( infowindow ) {
infowindow.close();
}
}
catch(err) { }
Respostas:
5 para resposta № 1Eu sugiro que você mude o código que cria o Marker
click listener que abre sua InfoWindow adicionando código semelhante ao seguinte exemplo:
google.maps.event.addListener( marker, "click", function() {
var bubble = new google.maps.InfoWindow({
content: buildBubbleContent( param1, param2 )
});
bubble.open( map, marker );
//pretty standard stuff to here, but the next line is new (for me):
google.maps.event.addListenerOnce( marker, "visible_changed", function() {
bubble.close();
});
});
Como discutido em questão: Como faço para limpar um InfoWindow quando o marcador associado está oculto?:
4 para resposta № 2
function closeInfoWindow() {
if (infoWindow !== null) {
google.maps.event.clearInstanceListeners(infoWindow); // just in case handlers continue to stick around
infoWindow.close();
infoWindow = null;
}
}