2016-02-09 23 views
1

我有一個由3層組成的圖層組,並命名爲例如:group1。我想生成這個組中的圖層名稱的數組。實際上,我這樣做:從OpenLayers3中的圖層組到達圖層名稱屬性

group1.getLayers().getArray()

我到達ol.layer.vector的水平,但我似乎無法找到如何訪問名字propertie的價值。我的猜測是在getArray()之後添加.get("name"),但它不起作用(我猜你不能調用2個以上的方法)。我也嘗試在變量中放入getArray()的結果,但後來我無法對變量執行get(「name」)。

如何訪問我的圖層名稱?

編輯:看起來我也可以使用getLayersArray()方法,但我堅持着同樣的問題。

+1

如果你能在一個變量得到的getArray()的結果,你能不只是直接訪問變量?或者遍歷它來訪問它的內容? – 1saac

+0

@ 1saac變量中存放的是ol.layer.vector結構。我不能迭代它,因爲它的長度爲1.或者我可能不知道如何遍歷這樣的結構 – kaycee

+0

找到獲取名稱併發布答案的方式,這要感謝@ @saac! – kaycee

回答

2

好的,我找到了我的答案。

function getNames(dom){ 
    var stock = []; 
    var layer_names = []; 
    stock = dom.getLayersArray(); 

    for(i=0;i<stock.length;i++){ 
     layer_names[i] = stock[i].get("name"); 
    }; 
    return layer_names; 
} 

感謝@ 1saac。

編輯:推它一點添加屬性每一層的按鍵:

function getNames(domaine){ 
     var r_stock = []; 
     var r_layers = []; 
     r_stock = domaine.getLayersArray(); 

     for(i=0;i<r_stock.length;i++){ 

      feat_source = r_stock[i].getSource(); 
      feat_get = feat_source.getFeatures(); 
      prop_feature[i] = feat_get[0].getKeys(); 

      r_layers[i] = ["name", r_stock[i].get("name")]; 

      for(j=0;j<prop_feature[i].length;j++){ 
       r_layers[i].push("id" + j, prop_feature[i][j]) 
      }; 

     }; 

     return r_layers; 
    }; 
相關問題