OpenLayers: Как включить видимость слоя?
-
21-12-2019 - |
Вопрос
Я не могу понять, что я делаю не так?Я думаю, что я написал все очень хорошо:
HTML-код идет так:
<b> Select Area</b>
<select id="mySelect_1" onchange="showSelectedArea();" >
<option selected disabled hidden value=''></option>"
<option value="1">Center</option>
<option value="2">New jersey</option>
</select>
.
и JavaScript это:
layer1.setVisibility(false);
layer2.setVisibility(false);
layer3.setVisibility(false);
layer4.setVisibility(false);
}
function showSelectedArea() {
var e = document.getElementById("mySelect_1");
var valueEpilogi_1 = e.options[e.selectedIndex].value;
if (valueEpilogi_1 == "1") {
layer3.setVisibility(true);
}
}
.
Я не думаю, что проблема состоит в том, что если бы или передавать значение, если я устанавливаю true== true, он все еще не будет установить видимость true.i думаю, что есть проблема с запуском функции в теге выбора.
Пожалуйста, проверьте мой внешний файл JS и скажите, что такое проблема ??Я определяю все слои в функции init, которая запускает нагрузку на кого-нибудь?snk.to/f-cdh90xd4
Решение
Вы должны прочитать значение выбора, попробуйте:
var valueepileogi_1= document.getelementbyId ('myselect_1'). Значение;
Редактировать: Если вы хотите использовать «слой» вне функции init (), она должна быть определена как глобальная переменная
Пример:
function init(){
/* this variable is global, declaration without 'var' before, so it can be used out of the function*/
perioxes = new OpenLayers.Layer.Vector("Polygon Layer");
...
map.addLayer(perioxes);
..
perioxes.setVisibility(false);
...
}
function showSelectedArea() {
var valueEpilogi_1 = document.getElementById('mySelect_1').value ;
if (valueEpilogi_1 == "1") {
layer.setVisibility(true);
}
}
.