Openlayers 获取Openlayer矢量功能与群集

Openlayers 获取Openlayer矢量功能与群集,openlayers,Openlayers,我使用openLayers Vector和集群策略。当我使用Vector.features获取作为列表返回的特征时,它返回一个集群数组,而不是特征数组。这使得功能无法单独处理。有人知道在使用集群策略时如何获取功能列表吗?感谢您的帮助。 (例如,如果我的KML中有5个特征被聚集为1,那么我得到vector.features.length=1。我需要长度为5的原始特征列表) 下面是my Vector的实现: var maps_layer = new OpenLayers.Layer.Vector("

我使用openLayers Vector和集群策略。当我使用Vector.features获取作为列表返回的特征时,它返回一个集群数组,而不是特征数组。这使得功能无法单独处理。有人知道在使用集群策略时如何获取功能列表吗?感谢您的帮助。

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

下面是my 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.

这里是文档:

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

function-getFeatures(映射层){
var features=新数组();
对于(var i=0;i
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]);
        }

    }
}