With this function I get the LayerGroup list that I can parse and identify the Group "Runs" I want.
Until this point it is working.
But var length = layers.getLength
always returns 0
.
function getActiveLayer(layerName, picID) {
// get layerGroups
var layers = map.getLayers();
var length = layers.getLength(),
l;
for (var i = 0; i < length; i++) {
l = layers.item(i);
var lt = l.get('title');
// check for layers within groups
if (lt === 'Runs') { // Title of Group
// get layers from Runs
var layers = l.getLayers();
//get length
var length = layers.getLength(),
l;
if (length > 0) {
for (var i = 0; i < length; i++) {
l = layers.item(i);
var lt = l.get('title');
// check for Layer Title
if (lt === layerName) { // Title if Layer
var innerLayers = l.getSource().getFeatureById(picID).getGeometry().getCoordinates();
return innerLayers;
}
}
}
}
}
};
getLayers from map and LayerGroup
The Upper one is the getLayers from map. The lower one is the getLauers from "Runs".
Can somebody explain why length is actual 0?l
Edit:
I updated the code:
function getActiveLayer(layerName, picID) {
// get layerGroups
var layers = map.getLayers();
var length = layers.getLength();
for (var i = 0; i < length; i++) {
l = layers.item(i);
var lt = l.get('title');
// check for layers within groups
if (lt === 'Runs') { // Title of Group
// get layers from Runs
var layers = l.getLayers().getArray();
//get length
var length2 = layers.getLength();
console.log(length2);
if (length > 0) {
for (var i = 0; i < length2; i++) {
l = layers.item(i);
var lt = l.get('title');
// check for Layer Title
if (lt === layerName) { // Title if Layer
var innerLayers = l.getSource().getFeatureById(picID).getGeometry().getCoordinates();
return innerLayers;
}
}
}
}
}
};
console.log(length2); is still 0.