带传单的自定义图层控件
Custom layer control with leaflet
我想用传单做一个自定义图层控件,但我不知道为什么它不起作用。单击复选框时,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 个特征,因此您不会看到任何新内容。
- 您的复选框最初处于选中状态,但图层不在地图上。因此,当复选框未选中时,图层会添加到地图上,反之亦然。
我想用传单做一个自定义图层控件,但我不知道为什么它不起作用。单击复选框时,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 个特征,因此您不会看到任何新内容。
- 您的复选框最初处于选中状态,但图层不在地图上。因此,当复选框未选中时,图层会添加到地图上,反之亦然。