/ / Как мога да премахна InfoWindow, когато маркерът е премахнат? - javascript, google-maps, google-maps-api-3, google-maps-маркери

Как мога да премахна InfoWindow, когато маркерът бъде премахнат? - javascript, google-maps, google-maps-api-3, google-maps-markers

Имам div div в Google Maps и списък с отметки, които използвам за филтриране на маркери на картата.

Но ако щракнете върху маркер, отворете InfoWindowи след това щракнете върху квадратче за отметка, за да премахнете маркерите от този тип, InfoWindow не се премахва от картата.

След като премахна маркерите, наричам този код, но InfoWindow остава:

try {
if( infowindow ) {
infowindow.close();
}
}
catch(err) { }

Отговори:

5 за отговор № 1

Предлагам да промените кода, който създава Marker щракнете върху слушател, който отваря вашия InfoWindow, като добавя код, подобен на следния пример:

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

Както беше обсъдено във въпрос: Как да почистя InfoWindow, когато свързаният маркер е скрит?:


4 за отговор № 2
function closeInfoWindow() {
if (infoWindow !== null) {
google.maps.event.clearInstanceListeners(infoWindow);  // just in case handlers continue to stick around
infoWindow.close();
infoWindow = null;
}
}