Я хочу создать несколько слоев с именами, взятыми из базы данных. «Деревья» в базе данных становятся слоем открытых слоев «Layer_Trees». Я пробовал много вещей с eval Функция, но без успеха. Похоже, что он совершенно неспособен определить новые переменные.Динамически созданные имена слоев, проблемы с eval()
function addLayer_ImageWMS(SourceName,SourceLayerName) {
LayerName="Layer_" + SourceLayerName;
eval(LayerName) = new ol.layer.Image({
title: LayerName,
source: new ol.source.ImageWMS({
url: SourceName,
params: {
'LAYERS': SourceLayerName,
'TRANSPARENT': 'true'
}
})
})
LayersArray.push(LayerName);
}
Если я удалю «eval()« все работает, но слои недоступны снаружи. Openlayers 3. Мне нужно адресовать эти слои из-за пределов этой функции, потому что они включены и выключены через меню. Есть ли простой способ сделать это?
Я планировал превратить их включения и выключения с таким кодом:
SourceName = "Layer_" + $(layer).children("#SourceName").val();
IsChecked = $(layer).children(".Style_LayerList_Radiobutton").prop("checked");
eval(SourceName).setVisible(IsChecked);