Комбинирование наложений в элементах управления mapbox / листовкой

Я пытаюсь объединить 2 или более оверлеев в один флажок оверлея. Я использую управление слоями листовок с mapbox.js 1.6 для переключения моих оверлеев. Для меня не имеет значения, объединяю ли я их на mapbox.com в один слой данных или объединяю отдельные слои данных в моем коде JS в один флажок наложения, но, похоже, я тоже не могу. Я экспортирую MBTiles из Tilemill в свою учетную запись Mapbox.

Обратите внимание, что это не вариант:

  • объединить их в Tilemill (один уровень масштабирования и квадратная ограничительная рамка не будут работать для меня во всех слоях)
  • добавить различные слои данных в один проект карты на Mapbox.com (я бы хотел, чтобы пользователь переключался на него)

2 ответа

Решение

Вы можете использовать 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);

Вы можете быть заинтересованы в этой теме Элемент управления слоями листов для слоев группы базовой карты

Вы можете использовать L.control.layers с L.layerGroup. Вот JSFiddle, который я написал для этого. Вы можете добавить столько базовых или наложенных слоев, сколько захотите.

После создания L.layerGroups определите базовый и оверлейный слои и добавьте их в элемент управления следующим образом:

var controlLayers = L.control.layers(baseLayers, overlayMaps).addTo(map);
Другие вопросы по тегам