6

Google Maps divと、地図上のマーカーをフィルタリングするために使用するチェックボックスのリストがあります。

しかし、マーカーをクリックして開き、InfoWindowチェックボックスをクリックしてそのタイプのマーカーを削除してもInfoWindow、マップから削除されません。

マーカーを削除した後、このコードを呼び出しますが、そのままInfoWindowです。

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

2 に答える 2

5

Marker次の例のようなコードを追加して、インフォウィンドウを開くクリックリスナーを作成するコードを変更することをお勧めします。

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

質問で説明したように:関連付けられたマーカーが非表示になっている場合、インフォウィンドウをクリーンアップするにはどうすればよいですか?

于 2012-04-30T22:19:22.177 に答える
5
function closeInfoWindow() {
        if (infoWindow !== null) {
            google.maps.event.clearInstanceListeners(infoWindow);  // just in case handlers continue to stick around
            infoWindow.close();
            infoWindow = null;
        }
    }
于 2012-04-28T11:59:07.590 に答える