1

まったく同じ緯度/経度コードを持つマップ マーカーが多数あるため、マップをどれだけズームしても、マーカー クラスターと結果の数が表示されます。

リスト内のそのクラスター内のすべてのマーカーを含む情報ボックスを表示するように、onclick または onhover イベントを発生させる方法はありますか? 次に、その情報ボックス内のリンクをクリックすると、個々のマーカー情報ボックスが開きますか?

同じ場所にならないように、緯​​度と経度を少しずつ変更するソリューションを読みました。同じ場所に複数のマーカーが10以上ある場合、それは非常に面倒で、とにかく良いことではないと思います. ユーザーがクラスターをクリックするだけで、そこにあるすべてのマーカーとリンクを含む情報ウィンドウを表示する方がはるかに簡単だと思います.

または、私が探していることを行う別のプラグインを誰かが知っている場合は、それも使用できます。私はそれについて多くの情報を見つけていません。

4

1 に答える 1

1

あなたがやりたいことをするためのプラグインがそこにあるかもしれませんが、プラグインなしで行うことも可能です. 私は私のプロジェクトの1つでそのようなことをしました。

  1. 各マーカーにイベント リスナーを追加します。クリックするとマーカーリスト情報ウィンドウが開きます
  2. マーカー リスト情報ウィンドウのコンテンツには、マーカー情報ウィンドウonclickを開く属性が含まれています。

私のコードは関数に隠されていましたが、基本的にはこれだけでした:

//1) while creating marker, create click listener that opens the marker list
google.maps.event.addListener(marker, 'click', function() {
    markerWindow.close();
    markerList.open(map, marker);
});

//2) store the content required by the marker's info windows
var markers = [
    [marker1Reference, "The Stadium"],
    [maerker2Reference, "The Supermarket"]
];

//3) the function that is called each time a marker is chosen from the marker list
function openMarkerInfo(markerIndex) {
    markerList.close();
    markerWindow.setContent(markers[markerIndex][1]);
    markerWindow.open(map, markers[markerIndex][0]);
}

//4) info window for the marker list - the content includes JS onclick events that will open each marker info window
markerList = new google.maps.InfoWindow({
    content: "Choose:<br><br><div href='' class='markerLink' onclick='openMarkerInfo(0)'>The Stadium</div><br><div href='' class='markerLink' onclick='openMarkerInfo(1)'>My House</div>"
});
//5) the marker window that will get set each time a marker is clicked in the list
markerWindow = new google.maps.InfoWindow();

それが役立つことを願っています!

于 2011-09-26T19:12:13.863 に答える