Prevent unnecessary tile loading for default base layer

by only setting it if no layer activated by hash URL
This commit is contained in:
Norbert Renner 2019-04-03 11:54:52 +02:00
parent d60b1ad15f
commit 282edbbc01
5 changed files with 40 additions and 6 deletions

View file

@ -63,11 +63,6 @@ BR.Map = {
overlays[i] = L.tileLayer(BR.conf.overlays[i]);
}
}
// after applying custom base layer configurations, add configured base layer to map
var defaultLayer = baseLayers[Object.keys(baseLayers)[BR.conf.defaultBaseLayerIndex || 0]];
if (defaultLayer) {
map.addLayer(defaultLayer);
}
layersControl = BR.layersTab(layersConfig, baseLayers, overlays).addTo(map);

View file

@ -17,6 +17,18 @@ BR.ControlLayers = L.Control.Layers.extend({
return result;
},
getActiveBaseLayer: function () {
var activeLayers = this.getActiveLayers();
for (var i = 0; i < activeLayers.length; i++) {
var obj = activeLayers[i];
if (!obj.overlay) {
return obj;
}
}
return null;
},
removeActiveLayers: function () {
var removed = [];
@ -42,6 +54,12 @@ BR.ControlLayers = L.Control.Layers.extend({
return null;
},
getBaseLayers: function () {
return this._layers.filter(function (obj) {
return !obj.overlay;
});
},
activateLayer: function (layer) {
this._map.addLayer(layer);
},
@ -54,6 +72,13 @@ BR.ControlLayers = L.Control.Layers.extend({
break;
}
}
},
activateBaseLayerIndex: function (index) {
var baseLayers = this.getBaseLayers();
var obj = baseLayers[index];
this.activateLayer(obj.layer);
}
});

View file

@ -315,6 +315,14 @@ BR.LayersTab = BR.ControlLayers.extend({
return obj;
},
activateDefaultBaseLayer: function () {
var index = BR.conf.defaultBaseLayerIndex || 0;
var activeBaseLayer = this.getActiveBaseLayer();
if (!activeBaseLayer) {
this.activateBaseLayerIndex(index);
}
},
saveRemoveActiveLayers: function () {
this.saveLayers = this.removeActiveLayers();
},

View file

@ -314,6 +314,12 @@
layersControl: layersControl
});
// activate configured default base layer or first if no hash,
// only after hash init, by using the same delay
setTimeout(function () {
layersControl.activateDefaultBaseLayer();
}, urlHash.changeDefer);
routingOptions.on('update', urlHash.onMapMove, urlHash);
nogos.on('update', urlHash.onMapMove, urlHash);
// waypoint add, move, delete (but last)

View file

@ -141,7 +141,7 @@
if (!added) {
// if we couldn't add layers (removed or invalid name), add the default one
layersControl.activateFirstLayer();
layersControl.activateDefaultBaseLayer();
}
},