2016-03-07 100 views
0

我想用传单做一个自定义图层控件,但我不知道它为什么不起作用。当我点击复选框时,在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> 

回答

1

变量通过var myVarName设置并不像window对象(window[event.target.value])的性质进行访问。你必须分配你的层以类似的方式:window["mapDataLayer"] = L.geoJson(...)

注:

  • 你GeoJSON的层0功能,所以你不会看到任何新的东西。
  • 您的复选框最初被选中,但图层不在地图上。因此,当取消选中该复选框时,图层将添加到地图上,反之亦然。
+0

我做了你所建议的改变,它的工作原理。唯一的一点是,当我进行高级搜索时,我必须双击teh提交按钮才能再次使用图层控制。 –

+0

Ghybs管理员删除了重击者。感谢您的帮助。 –