Openlayers: come accendere la visibilità di un livello?
-
21-12-2019 - |
Domanda
Non riesco a capire cosa sto sbagliando?Penso di aver scritto tutto bene:
Il codice HTML è così:
<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>
.
E il JavaScript è questo:
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);
}
}
.
Non penso che il problema sia con il valore se o che passa il valore, se ho impostato True== true è ancora non impostare la visibilità su true.i Penso che ci sia un problema con il trigger della funzione al tag Select. Si prega di controllare il mio file JS esterno e dimmi qual è il problema ??Definisco tutti i livelli in Funzione Init che esegue il carico subody ?? è il problema?snk.to/f-cdh90xd4
Soluzione
È necessario leggere il valore della selezione Prova che:
va Valineepilogi_1= document.getelementbyID ('mySELECT_1'). Valore;
Modifica: Se si desidera utilizzare "livello" al di fuori della funzione di init (), deve essere definito come variabile globale
Esempio:
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);
}
}
.