Ограничить наложения в 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 ответ

Решение

Рабочая скрипка.

Я не знаю, есть ли более простой способ. Кажется, что библиотека не предлагает много опций для манипулирования L.control.layers накладки.

Что я делаю, так это нажимаю на конфликтующий оверлей. Чтобы достичь этого, нужно немного манипулировать DOM. Вы можете сохранить идентификатор ссылки при создании метки наложения.

Другие вопросы по тегам