0

Google マップ v3 で、現在開いているすべての情報ウィンドウを閉じるにはどうすればよいですか?

一部の人が示唆しているように、変数で最後に開いた情報ウィンドウを追跡することはできません。私の設定では、各マーカーには一意のテキストがあるため、作成された時点で情報ウィンドウをマーカーにバインドする必要があります。

_.each(new_companies, function(c) {
  var latLng = new google.maps.LatLng(c.com_d_coo_y_wgs84,
      c.com_d_coo_x_wgs84);
  var marker = new google.maps.Marker({'position': latLng});
  marker.info = new google.maps.InfoWindow({
    content: getTooltipText(c)
  });
  google.maps.event.addListener(marker, 'mouseover', function() {
      marker.info.open(map, marker);
      // How to close all currently open info windows?
  });
  google.maps.event.addListener(marker, 'click', function() {
    marker.info.open(map, marker);
  });
  newco_markers.push(marker);
});

newco_markersすべてのマーカーをループして、それぞれの情報ウィンドウを閉じることができると思いますが、それは非効率的です。

4

1 に答える 1

3

1 つの情報ウィンドウを使用して、そのコンテンツと位置をAPI メソッドで更新してみてください: setPosition() および setContent()

編集:

一度に必要な情報ウィンドウは 1 つだけであると仮定しました。複数必要な場合は、開いている情報ウィンドウへの参照を含むマップ (オブジェクト) または配列を保持してみてください。

于 2013-03-07T13:54:21.590 に答える