我目前正在使用 angular-leaflet-directive + Leaflet markercluster 插件开发一个项目。
我想要做的是,在某个事件上(例如,+/- 缩放级别或集群组更改时),我希望运行一个函数来返回当前未聚集的所有标记。
这样做的原因是因为我想让所有可见标记都围绕它有一个圆形路径(20 海里,但这并不重要)..
有人知道这是否可能吗?
谢谢您的帮助。请让我知道您可能需要的其他信息,我会尽力为您提供。
干杯!
我目前正在使用 angular-leaflet-directive + Leaflet markercluster 插件开发一个项目。
我想要做的是,在某个事件上(例如,+/- 缩放级别或集群组更改时),我希望运行一个函数来返回当前未聚集的所有标记。
这样做的原因是因为我想让所有可见标记都围绕它有一个圆形路径(20 海里,但这并不重要)..
有人知道这是否可能吗?
谢谢您的帮助。请让我知道您可能需要的其他信息,我会尽力为您提供。
干杯!
创建您的 后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
}
});
就性能而言,这可能不是最好的事情,但我想这对你的情况来说会很好。否则,您应该潜入标记插件代码并直接修改/扩展它以满足您的需求。
这个问题很老,但我也遇到了同样的问题。
我的解决方案是遍历我的标记并检查它们是否在界限内。如果标记是聚类的,则标记的属性映射为空。
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])
}
}
}