0

我正在使用带有集群策略的 openLayers Vector。当我使用 Vector.features 来获取作为列表返回的特征时,它返回一个集群数组而不是特征数组。这使得这些功能无法单独解决。有谁知道在使用聚类策略时如何获取功能列表?任何帮助表示赞赏。

(例如,如果我的 KML 中有 5 个特征被聚类为 1,那么我得到 vector.features.length=1。我需要长度为 5 的原始特征列表)

下面是我的 Vector 的实现:

var maps_layer = new OpenLayers.Layer.Vector("KML", {
                     strategies: [new OpenLayers.Strategy.Cluster()],
                     protocol: new OpenLayers.Protocol.HTTP({
                        url: "kml/maps.kml",
                        format: new OpenLayers.Format.KML({
                           extractStyles: true, 
                           extractAttributes: true,
                        })
                    })
                 })

 var my_array = maps_layer.features; //Here is the problem.

这是文档:http ://dev.openlayers.org/docs/files/OpenLayers/Layer/Vector-js.html

4

1 回答 1

1

你*可以试一试,我现在还没有环境来测试它,但它应该可以工作。(注意:你*指的是搜索引擎用户..)

function getFeatures(maps_layer) {
    var features = new Array();
    for (var i = 0; i < maps_layer.features.length; i++) {
        if (maps_layer.features[i].cluster) {
            for (var j = 0; j < maps_layer.features[i].cluster.length; j++)
            features.push(maps_layer.features[i].cluster[j]);
        } else {
            features.push(maps_layer.features[i]);
        }

    }
}
于 2013-02-01T13:35:13.880 回答