1. ホーム
  2. javascript

[解決済み] Google Maps API v3でInfoWindowを1つだけ表示させる

2023-04-01 04:13:21

質問

Google マップ上で開いている情報ウィンドウは 1 つだけである必要があります。新しいウィンドウを開く前に、他のすべてのインフォ ウィンドウを閉じる必要があります。

どなたか、これを行う方法を教えていただけませんか?

どのように解決するのですか?

1つだけ InfoWindow オブジェクトを作成し、それへの参照を保持し、すべてのマーカーで再利用する必要があります。 Google Maps API Docs からの引用です。 :

<ブロッククオート

一度に 1 つの情報ウィンドウだけを表示したい場合 (Google Maps での動作と同様)、情報ウィンドウを 1 つ作成するだけでよく、マップ イベント (ユーザーのクリックなど) に応じて別の場所やマーカーに再割り当てすることができます。

そのため、単純に InfoWindow オブジェクトを作成し、その後に click イベントハンドラを次のように処理します。というマーカーがあるとします。 someMarker :

google.maps.event.addListener(someMarker, 'click', function() {
   infowindow.setContent('Hello World');
   infowindow.open(map, this);
});

次に InfoWindow を呼び出すことなく、新しいマーカーをクリックすると自動的に閉じるはずです。 close() メソッドを呼び出すことなく、新しいマーカーをクリックすると自動的に閉じます。