Como faço para limpar uma InfoWindow quando o marcador associado está oculto?
Eu sei que muitos de nós estamos escrevendo código para abrir umInfoWindow
quando um marcador é clicado. Mas oInfoWindow
vai ficar no lugar até o canto superior direitoX é clicado, o que significa que a configuração doMarker
visibilidade parafalse
irá criar o que é essencialmente um órfãoInfoWindow
. E pode haver váriosInfoWindow
instâncias exibidas no Mapa ao mesmo tempo. Eu acho que é simples o suficiente para o usuário clicar noInfoWindow
fechado, mas parece esconder oMarker
deve esconder o associadoInfoWindow
.
Eu comecei a escrever código como o seguinte para lidar com este cenário:
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();
});
});
É isso que todo mundo está fazendo? Parece um padrão de design que deve ser chamado deListenBack. Nunca vi o problema abordado nos documentos do Google Maps. Eu não posso deixar de pensar que deve haver um mecanismo mais simples embutido noInfoWindow
para cuidar disso automaticamente. Existe uma maneira padrão de fazer isso que acabei de perder?