1

我有许多带有完全相同的纬度/长度线的地图标记,所以无论我放大地图多远,我的地图仍会显示标记簇和结果数量。

有没有办法让一些 onclick 或 onhover 事件,以便它在列表中显示一个包含该集群中所有标记的信息框?然后单击该信息框中的链接会打开该单个标记信息框?

我已经阅读了将经纬度和经度改变少量的解决方案,以使它们不在同一个位置。我认为如果在同一个位置最终有多个标记 10+ 无论如何都不是那么好。我认为用户只需单击集群并调出带有链接的所有这些标记的信息窗口会容易得多。

或者,如果有人知道另一个插件可以满足我的需求,我也可以使用它。我只是没有找到太多关于它的信息。

4

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 回答