OpenLayers: Comment allumer la visibilité d'une couche?
-
21-12-2019 - |
Question
Je ne peux pas comprendre ce que je fais mal?Je pense que j'ai tout vraiment écrit:
Le code HTML va comme ceci:
<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>
Et le JavaScript est-ce:
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);
}
}
Je ne pense pas que le problème est avec la valeur IF ou qui passe la valeur, si je définis true== vrai, il ne peut toujours pas définir la visibilité à True.Je pense qu'il y a un problème de déclenchement de la fonction sur la balise Select.
Veuillez vérifier mon fichier JS externe et dites-moi quel est le problème ??Je définis toutes les couches de la fonction init qui fonctionne à la charge de la volonté ?? Est-ce que tha thte problème?snk.to/f-cdh90xd4
La solution
Vous devez lire la valeur de la sélection d'essayer:
var valgeoisilogi_1= document.getelementByID ('mysect_1'). valeur;
EDIT: Si vous souhaitez utiliser «La couche 'en dehors de votre fonction Init (), il doit être défini comme une variable globale
Exemple:
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);
}
}