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 layersnon-working JS fiddle WITH exclusive layers

最佳答案

尝试将collapsed: isCollapsed移动到选项对象,如下所示:

var options = {exclusiveGroups: ["Landmarks"], collapsed: isCollapsed};

07-25 20:48