2012-07-21 45 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]); 
     } 

    } 
}