我有一个由3个图层组成的图层组,例如:group1
。
我想生成一个包含此组中图层名称的数组。我实际上是这样做的:
group1.getLayers().getArray()
我达到ol.layer.vector
的水平,但我似乎无法找到如何访问名称属性的值。
我的猜测是在getArray()之后添加.get("name")
,但它不起作用(我猜你不能调用2种以上的方法)。我也尝试在变量中存储getArray()的结果,但是我不能对变量进行get(" name")。
如何访问我的图层名称?
修改:看起来我也可以使用getLayersArray()
方法,但我遇到了同样的问题。
答案 0 :(得分: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;
};