获取Openlayer Vector功能与群集

时间:2012-07-21 20:38:25

标签: openlayers

我正在使用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

1 个答案:

答案 0 :(得分: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]);
        }

    }
}