javascript - 带传单的自定义图层控制

标签 javascript custom-controls leaflet layer

我想用传单制作一个自定义图层控件,但我不知道为什么它不起作用。当我单击复选框时,Firebug 中出现以下错误:TypeError: obj is undefined。我将此代码添加到我的 main.js 脚本中:

// Custom layerpanel -- WORK IN PROGRESS!

    $( "input" ).click(function( event ) {
        layerClicked = window[event.target.value];

            if (map.hasLayer(layerClicked)) {
                map.removeLayer(layerClicked);
            }
            else{
                map.addLayer(layerClicked);
            } ;
    });

并将其添加到我的索引文件中:

<div class="checkbox">
   <label><input type="checkbox" value="mapDataLayer" checked>
   Option 1</label>
</div>

最佳答案

通过 var myVarName 设置的变量无法作为 window 对象 (window[event.target.value]) 的属性进行访问。您必须以类似的方式分配图层:window["mapDataLayer"] = L.geoJson(...)

注释:

  • 您的 GeoJSON 图层有 0 个功能,因此您不会看到任何新内容。
  • 您的复选框最初已选中,但该图层不在 map 上。因此,当取消选中该复选框时,图层会添加到 map 上,反之亦然。

关于javascript - 带传单的自定义图层控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35844313/

相关文章:

javascript - 如何从 View (cshtml 文件)调用 JS 函数以转到 Bootstrap 轮播控件中的特定幻灯片?

javascript - 如何从子窗口调用父的父javascript函数

installation - 设置在 nsis 安装程序的自定义对话框页面上添加的自定义标签的字体

c# - 自定义控件的 Controls.Count 零

r - 在传单簇选项中定义函数

javascript - 如何扩展 L.Control.Layers 以添加自定义过滤器,这是一个好方法吗?

javascript - 如何将特殊字符转换为html?

ios - iOS 中导航栏下的选项卡

javascript - 如何防止 dynamicMapLayer 在每次缩放或平移 map 时刷新?

javascript - 我正在寻找一个支持视频文件中的多个音轨/流的 web/html5/javascript 视频播放器