3

マップ上のマーカーをフィルタするために使用するGoogleマップのdivとリストがあります。マーカーが削除されたときにInfoWindowを削除するにはどうすればよいですか?

InfoWindowをクリックし、そのタイプのマーカーを削除するためにチェックボックスをクリックすると、InfoWindowはマップから削除されません。

私はマーカーを削除した後、私はこのコードが、InfoWindow滞在を呼び出す:

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

答えて

4
function closeInfoWindow() { 
     if (infoWindow !== null) { 
      google.maps.event.clearInstanceListeners(infoWindow); // just in case handlers continue to stick around 
      infoWindow.close(); 
      infoWindow = null; 
     } 
    } 
+0

ブラウザでエラーが発生しました:未知ReferenceError:infoWindowが定義されていません – 1110

+0

infowindowの答えでinfoWindowを変更し、infowindow varがグローバルであることを確認してください。 –

+0

あなたはまったく同じコードを使ってはいけません。エラーから、infoWindowを見つけることができないので、それをパラメータとして渡すか、グローバル変数を維持してください。今度は複数のInfoWindowを持っているので、おそらくパラメータとして渡すのが理にかなっています – Baz1nga

5

私はあなたが同様のコードを追加して、情報ウィンドウを開きますMarkerクリックリスナーを作成するコードを変更することを示唆しています次の例に:How do I clean up an InfoWindow when the associated Marker is hidden?

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

質問で述べたように

+0

この回答は役に立ちましたか? –

関連する問題