Jak wyczyścić InfoWindow, gdy powiązany znacznik jest ukryty?

Wiem, że wielu z nas pisze kod, aby otworzyćInfoWindow po kliknięciu znacznika. AleInfoWindow pozostanie na miejscu aż do górnego prawego roguX jest kliknięty, co oznacza, że ​​ustawienie powiązanegoMarkerwidoczność dofalse utworzy to, co jest zasadniczo osieroconeInfoWindow. I może być wieleInfoWindow instancje wyświetlane na Mapie w tym samym czasie. Sądzę, że jest to na tyle proste, że użytkownik może po prostu kliknąćInfoWindow zamknięte, ale wydaje się, że chowa sięMarker powinien ukryć skojarzoneInfoWindow.

Zacząłem pisać kod jak poniżej, aby poradzić sobie z tym scenariuszem:

<code>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();
    });
});
</code>

Czy tak robią wszyscy inni? Czuje się jak wzór, który należy nazwaćListenBack. Nigdy nie widziałem problemu rozwiązanego w dokumentach Google Maps. Nie mogę pomóc, ale myślę, że musi istnieć prostszy mechanizm wbudowany wInfoWindow zająć się tym automatycznie. Czy istnieje standardowy sposób, aby to zrezygnować?

questionAnswers(2)

yourAnswerToTheQuestion