2012-07-21 44 views
0

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

(例如,如果有5个特点我KML其聚集为1,然后我得到vector.features.length = 1。我需要在原有功能列表里面会有长度为5)获取Openlayer矢量功能与群集

以下是我的向量执行:

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

*您可以试试这个,我没有这方面的环境,现在来测试它,但它应该工作。 (注意:您*指搜索引擎用户。)

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]); 
     } 

    } 
}