Openlayers 3 openlayers 3中集群策略的阈值在哪里?

Openlayers 3 openlayers 3中集群策略的阈值在哪里?,openlayers-3,Openlayers 3,在openlayers 2.8中,有一个与集群策略相关联的阈值 在openlayers 3中,任何地方都没有提到它(而且策略范式似乎也消失了)。 有人知道是否有此功能的门票吗?范例已经发生了很大的变化。在OpenLayers 3中,您创建了一个具有簇样式的新层,“阈值”在层的选项中设置为maxResolution或minResolution。 类似于: var clusterLayer = new ol.layer.Vector({ visible: true,

在openlayers 2.8中,有一个与集群策略相关联的阈值

在openlayers 3中,任何地方都没有提到它(而且策略范式似乎也消失了)。


有人知道是否有此功能的门票吗?

范例已经发生了很大的变化。在OpenLayers 3中,您创建了一个具有簇样式的新层,“阈值”在层的选项中设置为maxResolution或minResolution。 类似于:

var clusterLayer = new ol.layer.Vector({
                visible: true,
                zIndex: insightMap.totalServcies - element.SortOrder,
                id: Id,                                           
                serviceId: element.Id,
                minResolution: clusteringThreshold,
                cluster: true,
            });
根据文档,您也可以使用minZoom和maxZoom,但我遇到了它们性能一致的问题。

Update 实际上,在不重新编译库的情况下,有一个适当的集群阈值是可能的。您需要在样式函数中使用每个特征的几何图形(来自簇的
特征
属性)

const noClusterStyles=[];
vectorLayer.setStyle(功能=>{
const features=feature.get('features');
如果(特征长度>5){
返回簇样式;
}否则{
for(设i=0;ii=features.length;i
谢谢你的邀请

另一个解决方案需要修改OL3库本身

ol.source.Cluster.prototype.Cluster uu函数具有以下代码段:

var neights=this.source\uuu0.getFeaturesInExtent(区段);
ol.DEBUG&&console.assert(neights.length>=1,“至少找到一个邻居”);
邻居=邻居。过滤器(函数(邻居){
var uid=ol.getUid(邻居).toString();
如果(!(集群中的uid)){
聚集的[uid]=true;
返回true;
}否则{
返回false;
}
});
//添加以下内容
//如果一个元素的邻居太多,请将其注册为一个元素的集群
//基于大小的样式应在图层样式功能中单独处理
设阈值=3;
如果(邻居长度>阈值){
this.features_.push(this.createCluster_(邻居));
}否则{
对于(var j=0;j<0.length;j++){
this.features_uz.push(this.createCluster_uz([neights[j]]);
}
}

这在ol3中不受支持。请随意打开一个或更好的打开一个。你有这样的例子吗?我不确定我是否理解如何将其用作群集阈值。