我正在创建带有传单的地图,带有标记集群和标记集群图层支持插件。
我有一个带有多个叠加层的图层控件,因此其中一些被选中的标记会在相同的纬度/经度处弹出不同的数据。
这些点可以正确聚类,但是我遇到了一个问题,如果我单击相同纬度/经度的点簇,则该簇不会居中,因此它通常会保持在一边并且很难看到,除非您手动单击并拖动以使其居中。
如果我单击具有不同 lat/lng 点的集群,它将放大并以该区域为中心。为了尝试解决这个问题,我添加了这 2 个函数,一个单独应用于标记,以便在单击它们时它们在地图上居中,一个应用于被单击的集群,导致地图缩放到集群的边界。
发生的情况是您将单击群集,它将展开并在同一点显示标记,但随后它将缩放群集并居中并关闭群集,因此您必须再次单击它才能显示标记。我不希望这种情况发生。
我在想也许使用 panTo 的函数在集群单击时会更好地工作?但不确定如何实现这一点。谢谢!这些是功能:
markerClusters.on('clusterclick', function (a) {
a.layer.zoomToBounds();
});
map.on('popupopen', function(e) {
var px = map.project(e.popup._latlng); // find the pixel location on the map where the popup anchor is
px.y -= e.popup._container.clientHeight/2 // find the height of the popup container, divide by 2, subtract from the Y axis of marker location
map.panTo(map.unproject(px),{animate: true}); // pan to new center
});