LeafletJS - 图层的默认选择

7

我正在使用leaflet-groupedlayercontrol将我的分组图层添加到地图上,但是我遇到了一个问题:

所有图层都没有被选择,但我想默认情况下全选。我正在使用复选框而不是单选按钮。

var groupedOverlays = {
    "Select": {}
};

groupedOverlays["Select"]["Group 1"] = groups[0];
groupedOverlays["Select"]["Group 2"] = groups[1];
groupedOverlays["Select"]["Group 3"] = groups[2];

// Use the custom grouped layer control, not "L.control.layers"
L.control.groupedLayers(null, groupedOverlays, {collapsed:false}).addTo(map);

我尝试使用JS选择它们,但是没有成功。

如果你知道一个适用于LeafletJS问题解决方案,但不适用于这个特定的插件,也可以。


我正在使用 https://leafletjs.com/examples/layers-control/ ... 这是同样的东西还是需要其他问题? - Peter Krauss
1个回答

13

Leaflet图层在内置的L.Control.Layers中是否处于“选中”状态取决于该图层是否已添加到地图中。

例如,以下代码将显示一个关闭复选框的L.Control.Layers

L.control.layers({}, { 
    Foo: L.marker([0,0]) 
}).addTo(map)

...而这将显示带有复选框的内容:

L.control.layers({}, { 
    Foo: L.marker([0,0]).addTo(map)
}).addTo(map)

我希望群组图层控件的行为类似。只需仔细检查是否将图层添加到地图中即可。还要注意,复选框的状态会随着任何方式任何时间添加/删除图层到/从地图上而更新。


确实,如果我将这些组添加到地图中,它就能正常工作。谢谢! - Bacchus
这...有点丑...在常规对象配置中,如何在baseMaps中表达“这是默认值”?https://leafletjs.com/examples/layers-control/ - Peter Krauss
如何在每一层更改 marker(x) 中的 x? - Peter Krauss

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接