Комбинирование наложений в элементах управления 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);