我的问题是集群策略。例如,如果地图在第一个缩放级别包含 3 个集群,并且当单击地图的放大 (+) 时,集群会扩展并划分为更小的集群,并且还可能包含单个要素。我不知道单击放大以进行聚类策略时发生的内部过程是什么。
如果有人知道在集群中发生的后台过程中帮助我,或者给我任何建议的链接。
我的问题是集群策略。例如,如果地图在第一个缩放级别包含 3 个集群,并且当单击地图的放大 (+) 时,集群会扩展并划分为更小的集群,并且还可能包含单个要素。我不知道单击放大以进行聚类策略时发生的内部过程是什么。
如果有人知道在集群中发生的后台过程中帮助我,或者给我任何建议的链接。
正如 Kryger 所说,在https://github.com/openlayers/openlayers/blob/master/lib/OpenLayers/Strategy/Cluster.js很容易找到答案。在第 152 行附近,您将看到一个名为 cluster 的函数。这通过像 {zoomChanged: zoomChanged} 这样的事件对象调用。
您必须使用 StyleMap 和上下文:
var pointStyle = new OpenLayers.Style({
strokeWidth: "${strokeFunction}",
},{
context: {
strokeFunction: function(feature) {
if(feature.attributes.count>1) {
var count = feature.attributes.count;
var stk = Math.max(0.2 * count, 3);
return stk;
} else return 2;
}
}
});
在这里,我将向您展示我的 StyleMap 的一个小示例,该示例具有一个内部函数来处理单个或集群特征的笔画。您可以添加函数来处理值、边框、颜色等。