Javascript 根据当前缩放传单更改簇半径

Javascript 根据当前缩放传单更改簇半径,javascript,leaflet,zooming,leaflet.markercluster,Javascript,Leaflet,Zooming,Leaflet.markercluster,我试图找到一种方法,根据当前的缩放改变聚类半径 我想要在更高的缩放级别上比在更低的缩放级别上更少的集群,这是我试图实现的,但是它工作得不太好,缺少了一些东西或者做错了 map.on('zoomend', function() { var currentZoom = map.getZoom(); if (currentZoom > 9) { return 20 } else { return 80 } }); var mcg

我试图找到一种方法,根据当前的缩放改变聚类半径

我想要在更高的缩放级别上比在更低的缩放级别上更少的集群,这是我试图实现的,但是它工作得不太好,缺少了一些东西或者做错了

map.on('zoomend', function() {
    var currentZoom = map.getZoom();
    if (currentZoom > 9) {
        return 20
    } else {
        return 80
    }
});

var mcg = new L.MarkerClusterGroup({
    chunkedLoading: true,
    maxClusterRadius: currentZoom,
})
  • 您的
    currentZoom
    变量在map zoomend事件的事件侦听器的内部范围内声明。您不能在该范围之外访问它

  • 更改分配给变量的原语值不会使所有其他分配相应更新。但是,mobile.markercluster插件API确实提供了一种涵盖此用例的方法:不向
    maxClusterRadius
    选项提供原语值,而是提供一个函数,返回给定地图缩放级别的半径:

  • 还可以使用接受当前贴图缩放并返回最大簇半径(以像素为单位)的函数

    因此,在你的情况下:

    L.markerClusterGroup({
    chunkedLoading:true,
    maxClusterRadius:函数(mapZoom){
    如果(地图缩放>9){
    返回20;
    }否则{
    返回80;
    }
    },
    });
    
    非常好,然后您可以在不同的缩放级别上测试最佳的群集选项。我确实阅读了API文档,但没有找到正确的使用方法。德克萨斯州