Как очистить InfoWindow, когда связанный Маркер скрыт?

Я знаю, что многие из нас пишут код, чтобы открытьInfoWindow когда маркер нажимается. НоInfoWindow останется на месте до верхнего правогоX нажата, что означает, что установкаMarkerвидимость дляfalse создаст то, что по сути является осиротевшимInfoWindow, И может быть несколькоInfoWindow экземпляры отображаются на карте одновременно. Я полагаю, что пользователю достаточно просто щелкнутьInfoWindow закрыто, но похоже, чтоMarker следует скрыть связанныйInfoWindow.

Я начал писать код, подобный следующему, чтобы справиться с этим сценарием:

<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>

Это то, что делают все остальные? Это похоже на шаблон дизайна, который следует назватьListenBack, Я никогда не видел проблему, описанную в документах Google Maps. Я не могу помочь, но думаю, что должен быть более простой механизм, встроенный вInfoWindow позаботиться об этом автоматически. Есть ли стандартный способ сделать это, что я только что пропустил?

Ответы на вопрос(2)

Решение Вопроса

потому что я продолжал изучать документы и смотреть на многие примеры кода, но не нашел каких-либо других решений. Конечно, в InfoWindow нет средства для автоматического удаления его с карты, когда соответствующий маркер выключен. Если кто-нибудь найдет лучший вариант позже, я с радостью отмечу его решение как лучший ответ.

время инициализации карты. Мое событие клика начинается с:

if(infoWindow != null){
   infoWindow.close();
}
infoWindow.setPosition(mouseEvent.latLng);
infoWindow.setContent("....");
// etc
 Sean Mickey27 апр. 2012 г., 16:30
Это отличная идея, и она обеспечивает отображение только одного окна InfoWindow. Мне нравится подход, но требования к моей карте говорят о том, что пользователи смогут открывать несколько информационных окон. Наши пользователи открывают несколько информационных окон, чтобы получить специальный обзор области, или открывают несколько, чтобы сравнить данные, связанные с маркерами. Наиболее важно то, что это не решает вопрос о том, как закрыть InfoWindow, если отображение связанного с ним маркера выключено.

Ваш ответ на вопрос