Control the tilelayer change, instead of letting iconLayers do it
We want to control min/max zoom and such.
This commit is contained in:
parent
fe9f4b4a48
commit
afd57d6806
1 changed files with 10 additions and 5 deletions
|
@ -1178,21 +1178,26 @@ L.U.Map.include({
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
/* Used in view mode to define the current tilelayer */
|
||||||
L.U.TileLayerControl = L.Control.IconLayers.extend({
|
L.U.TileLayerControl = L.Control.IconLayers.extend({
|
||||||
initialize: function (map, options) {
|
initialize: function (map, options) {
|
||||||
const layers = []
|
const layers = []
|
||||||
for (const layer of map.tilelayers) {
|
map.eachTileLayer((layer) => {
|
||||||
layers.push({
|
layers.push({
|
||||||
title: layer.options.name,
|
title: layer.options.name,
|
||||||
layer: layer,
|
layer: layer,
|
||||||
icon: L.Util.template(layer.options.url_template, map.demoTileInfos),
|
icon: L.Util.template(layer.options.url_template, map.demoTileInfos),
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
L.Control.IconLayers.prototype.initialize.call(this, layers, {position: 'topleft'})
|
L.Control.IconLayers.prototype.initialize.call(this, layers.slice(0, 10), {
|
||||||
}
|
position: 'topleft',
|
||||||
|
manageLayers: false
|
||||||
|
})
|
||||||
|
this.on('activelayerchange', (e) => map.selectTileLayer(e.layer))
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
/* Used in edit mode to define the default tilelayer */
|
||||||
L.U.TileLayerChooser = L.Control.extend({
|
L.U.TileLayerChooser = L.Control.extend({
|
||||||
options: {
|
options: {
|
||||||
position: 'topleft',
|
position: 'topleft',
|
||||||
|
|
Loading…
Reference in a new issue