Googleマップのdivと、マップ上のマーカーをフィルタ処理するために使用するチェックボックスのリストがあります。
しかし、マーカーをクリックすると、 InfoWindow
チェックボックスをクリックして、そのタイプのマーカーを削除します。 InfoWindow
マップから削除されません。
マーカーを削除したら、このコードを呼び出します。 InfoWindow
とどまる:
try {
if( infowindow ) {
infowindow.close();
}
}
catch(err) { }
回答:
回答№1は5を作成するコードを変更することをお勧めします。 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();
});
});
問題となっているように: 関連付けられたマーカーが非表示になっているときに情報ウィンドウをクリーンアップする方法:
回答№2については4
function closeInfoWindow() {
if (infoWindow !== null) {
google.maps.event.clearInstanceListeners(infoWindow); // just in case handlers continue to stick around
infoWindow.close();
infoWindow = null;
}
}