2

我目前正在使用 angular-leaflet-directive + Leaflet markercluster 插件开发一个项目。

我想要做的是,在某个事件上(例如,+/- 缩放级别或集群组更改时),我希望运行一个函数来返回当前未聚集的所有标记。

这样做的原因是因为我想让所有可见标记都围绕它有一个圆形路径(20 海里,但这并不重要)..

有人知道这是否可能吗?

谢谢您的帮助。请让我知道您可能需要的其他信息,我会尽力为您提供。

干杯!

4

2 回答 2

0

创建您的 后markerClusterGroup,您可以执行以下操作:

// Let's assume you have a global map variable that refers to the Leaflet Map
MyClusterGroup.eachLayer(function(feature) {
    // the cluster group holds all the features
    // but only the ones not clustered are added to the map
    if (map.hasLayer(feature)) {
        feature.setStyle({ // Only feature not clustered will have their style re-render
            fillColor : "red"
        });
        // Do whatever your want with this feature, you have full access to it
    }
});

就性能而言,这可能不是最好的事情,但我想这对你的情况来说会很好。否则,您应该潜入标记插件代码并直接修改/扩展它以满足您的需求。

于 2015-10-05T14:07:32.030 回答
0

这个问题很老,但我也遇到了同样的问题。

我的解决方案是遍历我的标记并检查它们是否在界限内。如果标记是聚类的,则标记的属性映射为空。

var bounds = map.getBounds();
for (var i = 0; i < markers.length; i++) {
    if(typeof markers[i] !== "undefined"){
    if( bounds.contains(markers[i].getPosition()) && markers[i].map !== null){
        console.log(markers[i])
    }
    }
}
于 2019-11-05T16:49:35.700 回答