折叠Leaflet GroupedLayerControl与独家图层

时间:2014-12-28 23:43:02

标签: javascript css leaflet

Leaflet支持的插件 Leaflet.GroupedLayerControl 现在支持独占分组图层(通过类似于基础层功能的单选按钮)。

但是,由于独占分组图层的实现, BootLeaf 中的isCollapsed调用在调用独占图层组时不再按预期执行。如果未调用,则baselayers和分组图层仍然按预期执行,但只要将独占分组图层添加到代码中就会出现问题。

如果窗口为< = 767px,则代码要求分组图层控件折叠,否则如果窗口较大则完整显示分组图层控件:

       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

1 个答案:

答案 0 :(得分:1)

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

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