限制 mapbox 中的叠加层

Restrict overlays in mapbox

所以我正在使用带有多个叠加层和底图的 Leaflet 和 Mapbox 创建地图。目前我有一个图层控件,其中这些图层是分开的,您一次只能显示一个底图,但可以一次显示所有叠加层。

但是,我有两个相互干扰的叠加层,我想这样做,如果在控件中选中一个,则另一个未选中,反之亦然。有什么办法吗?

我期待这样的事情,但愿意接受任何建议。

var layer1 = L.mapbox.tileLayer('mapid1');
var layer2 = L.mapbox.tileLayer('mapid2');

var layerControl = L.control.layers(baseMaps, {"L1": layer1, "L2": layer2}).addTo(map);

map.on("overlayadd", function(e) {
  if (e.name === "L1"){
    L.layers.control.uncheck(layer2);
  } else if (e.name === "L2") {
    L.layers.control.uncheck(layer1);
  };
});

谢谢!!

Working fiddle.

不知道有没有更简单的方法。该库似乎没有提供很多选项来操作 L.control.layers 叠加层。

我正在做的是点击冲突的叠加层。为此,需要进行一些 DOM 操作。您可以在创建覆盖标签时存储一个 id 引用。