私は、多くの人が、マーカーをクリックするとInfoWindow
を開くコードを書いていることを知っています。しかし、InfoWindow
は、右上のXがクリックされるまでそのまま残ります。つまり、Marker
の可視性をfalse
に設定すると、本質的に孤児のものが作成されます。InfoWindow
同時に複数のInfoWindow
インスタンスがマップに表示されることがあります。私はそれがユーザーがちょうど閉じたInfoWindow
をクリックするだけのシンプルだと思いますが、それはMarker
を隠しているように感じて、関連するInfoWindow
を隠すべきです。関連付けられたマーカーが非表示になっている場合、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();
});
});
は、誰もがやっているこのですか?それはと呼ぶべきデザインパターンのように感じます。ListenBack。私は、Google Mapsのドキュメントで取り上げられている問題を見たことがありません。私は助けることはできませんが、これを自動的に処理するために、InfoWindow
に組み込まれている簡単なメカニズムが必要であると考えることはできません。これを行うための標準的な方法は私がちょうど逃したことはありますか?
これは素晴らしいアイデアであり、InfoWindowが1つしか表示されないことを保証します。私はこのアプローチが気に入っていますが、マップの要件によって、ユーザーは複数のInfoWindowを開くことができると言われています。ユーザーは複数のInfoWindowを開いて、エリアのアドホックな概要を表示したり、複数のInfoWindowを開いてマーカーに関連付けられたデータを比較したりできます。最も重要なのは、関連付けられたマーカーの表示がオフになっている場合にInfoWindowを閉じる方法の問題に対処できないことです。 –