openlayers - 单击放大(+)聚类策略

时间:2013-10-15 07:28:20

标签: openlayers

我的问题在于聚类策略。例如,如果地图在第一个缩放级别包含3个聚类,并且当单击放大(+)地图时,聚类会扩展并分成较小的聚类,并且还可能包含单个要素。我不知道点击放大聚类策略时发生的内部过程是什么。

如果有人知道在群集中发生的后台流程中帮助我,或者为我提供任何建议的链接。

2 个答案:

答案 0 :(得分:1)

答案很容易在https://github.com/openlayers/openlayers/blob/master/lib/OpenLayers/Strategy/Cluster.js找到。就像克里格所说。在第152行附近,您将看到一个名为cluster的函数。这是使用{zoomChanged:zoomChanged}等事件对象调用的。

现在,如果您有兴趣编辑它的聚类方式,您可能会对所提议的更改感兴趣 reclustering

答案 1 :(得分:0)

您必须使用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的一个小例子,其中包含一个内部函数,用于处理单个或聚类特征的笔划。 您可以添加函数来处理值,边框,颜色等。