javascript - 开放层 : how to turn on visibility of a layer?

标签 javascript openstreetmap openlayers-3

我不明白我做错了什么?我认为我已经写得很好:

HTML 代码如下:

    <b>&nbspSelect 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);   
    }

    }

我认为问题不在于 if 或传递值,如果我设置 true == true 它仍然不会将可见性设置为 true。我认为在选择标记处触发该函数存在问题。

请检查我的外部 js 文件并告诉我问题是什么?我在 init 函数中定义了在 body load 上运行的所有层?这是问题吗? snk.to/f-cdh90xd4

最佳答案

您必须读取选择尝试的值:

var valueEpilogi_1 = document.getElementById('mySelect_1').value ;

编辑: 如果您想在 init() 函数之外使用“layer”,则必须将其定义为全局变量

示例:

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);   
}

}

关于javascript - 开放层 : how to turn on visibility of a layer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25036432/

相关文章:

javascript - 动态表单编辑页面 : Laravel 5. 2

javascript - 如何用javascript覆盖CSS?

openstreetmap - Osmosis 不适用于 mapfilewriter 插件

javascript - 如何从 openlayers3 中的矢量图层获取点坐标?

javascript - 获取给定开放层中某个特征的层3

javascript - 我可以在图片之前加载JS吗?

javascript - 使用ajax和php根据文本框更改更改查询

android - 在 Android 2.3.1 和 2.3.3 上获取 GPS

javascript - OpenRouteService Directions api 用法

javascript - 自定义控件 Openlayers 3 上的平滑缩放