Prevent unnecessary tile loading for default base layer
by only setting it if no layer activated by hash URL
This commit is contained in:
parent
d60b1ad15f
commit
282edbbc01
5 changed files with 40 additions and 6 deletions
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
});
|
||||
|
|
@ -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();
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@
|
|||
|
||||
if (!added) {
|
||||
// if we couldn't add layers (removed or invalid name), add the default one
|
||||
layersControl.activateFirstLayer();
|
||||
layersControl.activateDefaultBaseLayer();
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue