Установка выбранного слоя в Leaflet / Mapbox L.Control.Layers

У меня есть карта с несколькими базовыми слоями. Пользователи могут выбрать базовый слой, а затем сохранить карту. После сохранения карты система загружает в нее новый базовый слой. Этот базовый слой следует выбрать в элементе управления L.Control.Layers. Однако в API нет возможности для выбора базового слоя.

Кто-нибудь знает способ обойти это или другой плагин?


ОБНОВЛЕНИЕ: вот код, который я использую. MapConfigs имеет идентификаторы в MapBox и может создавать карту, которая требуется L.control.layers.

var map = L.mapbox.map( components.mapDivId , MapConfigs.idFor(baseLayerName) );    
map.addControl( L.control.layers(
    MapConfigs.toBaseLayersControlMap(map)
).setPosition("topright"));

Спасибо!


person Michael Bar-Sinai    schedule 07.05.2015    source источник


Ответы (1)


Почему бы не сохранить ссылки на все доступные базовые уровни в хеш-коде, а затем использовать addLayer или removeLayer (http://leafletjs.com/reference.html#map-addlayer) по мере необходимости для программного выбора базовых слоев ?. Что-то вроде ниже.

var tileLayers = {light: L.tileLayer('lightUrl'),dark: L.tileLayer('darkUrl')}
person snkashis    schedule 08.05.2015
comment
Спасибо, но это не включает пользовательский интерфейс и реализацию интерфейса IControl. Если доступный подключаемый модуль еще не реализован, то путь, который вы предлагаете, действительно будет правильным. - person Michael Bar-Sinai; 09.05.2015
comment
Что ж, плагин для элемента управления не нужен, он уже встроен в ядро. Запустите карту с помощью var map = L.map 'map', {zoomControl:false}, затем запустите Layer Control с помощью var layersControl = new L.Control.Layers(tileLayers), затем map.addControl(layersControl) - person snkashis; 10.05.2015
comment
спасибо @snkashis - но он не работает ... в элементе управления добавленными слоями отмечен первый слой, хотя он не является активным базовым слоем на карте. - person Michael Bar-Sinai; 10.05.2015
comment
Возможно ли, чтобы вы разместили здесь часть своего кода, чтобы мы могли видеть поток в том виде, в каком он у вас есть? - person snkashis; 11.05.2015