/ / Como posso remover um InfoWindow quando o marcador é removido? - javascript, google-maps, google-mapas-api-3, google-maps-markers

Como posso remover um InfoWindow quando o marcador é removido? - javascript, google-maps, google-mapas-api-3, google-maps-markers

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 InfoWindowe, 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 № 1

Eu 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;
}
}