限制地图框中的叠加层

时间:2015-08-07 18:57:42

标签: javascript dictionary overlay leaflet 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);
  };
});

谢谢!

1 个答案:

答案 0 :(得分:1)

Working fiddle

我不知道是否有更简单的方法。似乎图书馆没有提供很多选项来操纵L.control.layers叠加层。

我正在做的是点击冲突的叠加层。要实现这一点,需要进行一些DOM操作。您可以在创建叠加标签时存储ID引用。