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]); 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); layersControl = BR.layersTab(layersConfig, baseLayers, overlays).addTo(map);

View file

@ -17,6 +17,18 @@ BR.ControlLayers = L.Control.Layers.extend({
return result; 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 () { removeActiveLayers: function () {
var removed = []; var removed = [];
@ -42,6 +54,12 @@ BR.ControlLayers = L.Control.Layers.extend({
return null; return null;
}, },
getBaseLayers: function () {
return this._layers.filter(function (obj) {
return !obj.overlay;
});
},
activateLayer: function (layer) { activateLayer: function (layer) {
this._map.addLayer(layer); this._map.addLayer(layer);
}, },
@ -54,6 +72,13 @@ BR.ControlLayers = L.Control.Layers.extend({
break; 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; return obj;
}, },
activateDefaultBaseLayer: function () {
var index = BR.conf.defaultBaseLayerIndex || 0;
var activeBaseLayer = this.getActiveBaseLayer();
if (!activeBaseLayer) {
this.activateBaseLayerIndex(index);
}
},
saveRemoveActiveLayers: function () { saveRemoveActiveLayers: function () {
this.saveLayers = this.removeActiveLayers(); this.saveLayers = this.removeActiveLayers();
}, },

View file

@ -314,6 +314,12 @@
layersControl: layersControl 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); routingOptions.on('update', urlHash.onMapMove, urlHash);
nogos.on('update', urlHash.onMapMove, urlHash); nogos.on('update', urlHash.onMapMove, urlHash);
// waypoint add, move, delete (but last) // waypoint add, move, delete (but last)

View file

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