我目前正在使用angular-leaflet-directive +传单markercluster插件处理项目。
我要做的是,在某个事件上(例如,+ / - 缩放级别或群集组发生更改时)我想要一个函数运行,它返回所有标记目前尚未群集。
这样做的原因是因为我希望所有可见标记周围都有一条圆形路径(20海里,但这并不重要)..
有人知道这是否可行?
感谢您的帮助。请告诉我您可能需要的其他信息,我会尽力为您服务。
干杯!
答案 0 :(得分: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
}
});
这可能不是性能方面最好的做法,但我想这对你的情况会很好。否则,您应该潜入标记插件代码并直接修改/扩展它以满足您的需求。
答案 1 :(得分:0)
这个问题很旧,但是我也遇到了同样的问题。
我的解决方案是遍历我的标记并检查它们是否在范围之内。如果标记是聚类的,则标记的属性映射为null。
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])
}
}
}