2016-02-09 24 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; 
    }; 
相关问题