【问题标题】:combining overlays in mapbox / leaflet layers control在 mapbox / 传单图层控件中组合叠加层
【发布时间】:2014-07-25 08:48:40
【问题描述】:
我正在尝试将 2 个或多个叠加层组合到一个叠加层复选框中。我正在使用带有 mapbox.js 1.6 的传单layers control 来切换我的叠加层。如果我在 mapbox.com 上将它们组合成一个数据层,或者如果我将 JS 代码中的单独数据层组合成一个覆盖复选框,对我来说并不重要,但我似乎也做不到。我正在将 MBTiles 从 Tilemill 导出到我的 Mapbox 帐户。
请注意,这不是一个选项:
- 在 Tilemill 中组合它们(单个缩放级别和方形边界框不适用于所有图层)
- 将各种数据层添加到 Mapbox.com 上的单个地图项目中(我希望它由用户切换)
【问题讨论】:
标签:
javascript
leaflet
mapbox
tilemill
【解决方案1】:
你可以使用 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
【解决方案2】:
您可以将 L.control.layers 与 L.layerGroup 一起使用。这是我为此写的JSFiddle。您可以添加任意数量的基础层或覆盖层。
创建 L.layerGroups 后,定义基础层和覆盖层并将它们添加到控件中,如下所示:
var controlLayers = L.control.layers(baseLayers, overlayMaps).addTo(map);