2

我正在尝试将 2 个或多个叠加层组合到一个叠加层复选框中。我正在使用带有 mapbox.js 1.6 的传单图层控件来切换我的叠加层。如果我在 mapbox.com 上将它们组合成一个数据层,或者如果我将 JS 代码中的单独数据层组合成一个覆盖复选框,对我来说并不重要,但我似乎也做不到。我正在将 MBTiles 从 Tilemill 导出到我的 Mapbox 帐户。

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

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

2 回答 2

4

您可以使用 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);

您可能对此线程感兴趣底图组图层的传单图层控制

于 2014-07-25T10:18:36.347 回答
1

您可以将 L.control.layers 与 L.layerGroup 一起使用。这是我为此编写的JSFiddle。您可以添加任意数量的基础或覆盖层。

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

var controlLayers = L.control.layers(baseLayers, overlayMaps).addTo(map);
于 2014-07-25T14:47:41.450 回答