函数缩放到群集关闭具有多个标记的群集在同一个纬度/经度

时间:2017-09-07 15:10:13

标签: javascript leaflet leaflet.markercluster

我正在创建一个带有传单的地图,其中包含标记簇和&标记集群层支持插件。

我有一个具有多个叠加层的图层控件,因此其中一些选中的标记会在不同数据的同一个lat / lng中弹出。

这些点正确聚类,但是我遇到了一个问题,即如果我在同一个纬度/ lng处点击一组点,则群集将不会居中,因此通常会保持偏向一侧除非你手动点击并拖动以使其居中,否则很难看到。

如果我点击具有不同纬度/经度的点的群集,它将放大并居中到该区域。为了尝试解决这个问题,我添加了这两个函数,一个单独应用于标记,以便当它们被点击时它们居中在地图上,一个应用于点击的集群,导致地图缩放到边界。簇。

您将点击群集,它将展开并在同一点显示标记,但随后它将缩放&使群集居中并关闭群集,以便您必须再次单击它以显示标记。我不希望这种情况发生。

我想也许使用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

    });

1 个答案:

答案 0 :(得分:0)

您应该使用WHERE x REGEXP '\b[\d,.]+\b' MCG上的"spiderfied"事件,而不是markerClusters,它也会针对不需要蜘蛛网的群集进行激活。

此外,正如您所知,只要执行缩放,该操作就会关闭蜘蛛。在猜测时使用"clusterclick"可以避免缩放变化,因此不会关闭蜘蛛。

panTo

演示:https://jsfiddle.net/3v7hd2vx/397/