2016-04-08 1 views
0

Вот моя скрипка: http://jsfiddle.net/anton9ov/twxx4up8/Как сделать флажки в листовке слоях управления ведут себя как кнопки радио

У меня есть два baseLayers и два overLayers с наборами маркеров на моей карте. Я хочу, чтобы переключатели checkboxes overLayers вели себя как переключатели. То есть Я хочу добиться выбора только одного из них одновременно.

L.control.layers({ 
    "Map 1": basemap1, 
    "Map 2": basemap2 
}, { 
    "Marker 1": markerLayer1, 
    "Marker 2": markerLayer2 
}).addTo(map); 
+1

См. [Этот вопрос] (http://gis.stackexchange.com/q/180644/56906) на GIS.SE. В основном, вы слушаете событие «overlayadd» и проверяете, какой слой добавляется, а затем удаляйте другие. По какой-то причине для этого требуется тайм-аут, но он работает. Пример: http://jsfiddle.net/gwulo/5euduuun/1/ – nathansnider

ответ

0

Вы можете переписать L.Control.Layers и заменить

input = document.createElement('input'); 
input.type = 'checkbox'; 
input.className = 'leaflet-control-layers-selector'; 
input.defaultChecked = checked; 

с

input = this._createRadioElement('leaflet-control-layers-selector', checked); 

Проверьте это example

Этот пример, основанный на вашем jsfiddle быстро и грязно, но он получает вниз написав свой собственный контроль.

-1

Вы можете непосредственно отредактировать файл sheetlet.js (строка 4388), как показано ниже, для желаемого вывода.

Заменить

t.overlay ? (i = e.createElement("input"), i.type = "checkbox", i.className = "leaflet-control-layers-selector", i.defaultChecked = s) : i = this._createRadioElement("leaflet-base-layers", s), i.layerId = o.stamp(t.layer), o.DomEvent.on(i, "click", this._onInputClick, this); 

с

t.overlay ? (i = this._createRadioElement('leaflet-control-layers-selector', s)) : i = this._createRadioElement("leaflet-base-layers", s), i.layerId = o.stamp(t.layer), o.DomEvent.on(i, "click", this._onInputClick, this); 

Надеется, что это помогает!

+0

Я не уверен, почему этот ответ получил downvote, должен был быть комментарий, чтобы объяснить, если это не полезно – shahryar

Смежные вопросы