在mapbox / leaflet图层控件中组合叠加层

时间:2014-07-25 08:48:41

标签: javascript leaflet mapbox tilemill

我正在尝试将2个或更多叠加层组合到一个叠加层复选框中。我正在使用传单layers control和mapbox.js 1.6来切换我的叠加层。如果我将它们在mapbox.com上组合到一个数据层中,或者如果我将JS代码中的单独数据层组合到一个叠加复选框中,对我来说无关紧要,但我似乎也无法做到。我将MBTiles从Tilemill导出到我的Mapbox帐户。

请注意,它不是一个选项:

  • 将它们组合在Tilemill中(单个缩放级别和方形边框对我来说不适用于所有图层)
  • 将各种数据图层添加到Mapbox.com上的单个地图项目中(我希望用户可以进行切换)

2 个答案:

答案 0 :(得分:3)

您可以使用L.layerGroup来组合图层

var group = L.LayerGroup([layer1, layer2];

// add default layers to map
map.addLayer(layer1);

// switcher
var baseLayers = {
    "My Group": group,
    // more layers
};

// add layer groups to layer switcher control
var controlLayers = L.control.layers(baseLayers).addTo(map);

您可能对此主题Leaflet layer control for basemap group layers

感兴趣

答案 1 :(得分:0)

您可以将L.control.layers与L.layerGroup一起使用。这是我为此写的JSFiddle。您可以添加所需数量的基础或叠加层。

创建L.layerGroups后,定义基础层和叠加层,并将它们添加到控件中,如下所示:

var controlLayers = L.control.layers(baseLayers, overlayMaps).addTo(map);