Leaflet支持的插件Leaflet.GroupedLayerControl现在支持排他的分组图层(通过类似于基本图层功能的单选按钮)。
但是,由于实现了排他分组的层,因此BootLeaf中的isCollapsed调用在调用排他层组时不再按预期执行。如果未调用,则基础层和分组层仍会按预期执行,但是一旦将排他的分组层添加到代码中就会出现问题。
如果窗口
if (document.body.clientWidth <= 767) {
var isCollapsed = true;
} else {
var isCollapsed = false;
}
var layerControl = L.control.groupedLayers(baseLayers, groupedOverlays, options, {
collapsed: isCollapsed
}).addTo(map);
根据我最初的尝试和错误,似乎无法修改现有更改以使分组图层控件在宽度超过767px的窗口中打开,并且Leaflet.GroupedLayerControl中仅有的代码更改包括基本的排他组代码。我猜想需要额外的代码来确保排他图层包含在分组图层控件中。
有关故障排除,请参阅:working JS fiddle WITHOUT exclusive layers和non-working JS fiddle WITH exclusive layers。
最佳答案
尝试将collapsed: isCollapsed
移动到选项对象,如下所示:var options = {exclusiveGroups: ["Landmarks"], collapsed: isCollapsed};