带传单的自定义图层控件

时间:2016-03-07 12:55:04

标签: javascript custom-controls leaflet layer

我想用传单制作自定义图层控件,但我不知道为什么它不起作用。单击复选框class Suggestion { private Long id; private Integer type; private float price; private List<Replacement> replacements; private class Replacement { private Integer type; private float price; // getters, setters, constructors removed } // getters, setters, constructors removed } 时,我在Firebug中收到以下错误。我将此代码添加到我的main.js脚本中:

TypeError: obj is undefined

这是我的索引文件:

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

1 个答案:

答案 0 :(得分:1)

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

注意:

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