Persist layer selection with local storage (#146)
This commit is contained in:
parent
98f80d90ca
commit
dbc7fce91d
2 changed files with 49 additions and 0 deletions
|
|
@ -18,6 +18,29 @@ BR.LayersConfig = L.Class.extend({
|
||||||
this._addLeafletProvidersLayers();
|
this._addLeafletProvidersLayers();
|
||||||
|
|
||||||
this._customizeLayers();
|
this._customizeLayers();
|
||||||
|
|
||||||
|
this.loadDefaultLayers();
|
||||||
|
},
|
||||||
|
|
||||||
|
loadDefaultLayers: function() {
|
||||||
|
if (BR.Util.localStorageAvailable()) {
|
||||||
|
var item = localStorage.getItem("map/defaultLayers");
|
||||||
|
if (item) {
|
||||||
|
var defaultLayers = JSON.parse(item);
|
||||||
|
this.defaultBaseLayers = defaultLayers.baseLayers;
|
||||||
|
this.defaultOverlays = defaultLayers.overlays;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
storeDefaultLayers: function (baseLayers, overlays) {
|
||||||
|
if (BR.Util.localStorageAvailable()) {
|
||||||
|
var defaultLayers = {
|
||||||
|
baseLayers: baseLayers,
|
||||||
|
overlays: overlays
|
||||||
|
};
|
||||||
|
localStorage.setItem("map/defaultLayers", JSON.stringify(defaultLayers));
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_addLeafletProvidersLayers: function () {
|
_addLeafletProvidersLayers: function () {
|
||||||
|
|
@ -230,6 +253,8 @@ BR.LayersConfig = L.Class.extend({
|
||||||
}
|
}
|
||||||
layer.getAttribution = getAttribution;
|
layer.getAttribution = getAttribution;
|
||||||
|
|
||||||
|
layer.id = props.id;
|
||||||
|
|
||||||
return layer;
|
return layer;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,8 @@ BR.LayersTab = L.Control.Layers.extend({
|
||||||
} else {
|
} else {
|
||||||
this.addBaseLayer(layer, name);
|
this.addBaseLayer(layer, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.storeDefaultLayers();
|
||||||
};
|
};
|
||||||
|
|
||||||
var onUncheckNode = function (e, data) {
|
var onUncheckNode = function (e, data) {
|
||||||
|
|
@ -132,6 +134,8 @@ BR.LayersTab = L.Control.Layers.extend({
|
||||||
this.addFirstLayer();
|
this.addFirstLayer();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.storeDefaultLayers();
|
||||||
};
|
};
|
||||||
|
|
||||||
$('#optional-layers-tree')
|
$('#optional-layers-tree')
|
||||||
|
|
@ -263,6 +267,26 @@ BR.LayersTab = L.Control.Layers.extend({
|
||||||
return data;
|
return data;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
storeDefaultLayers: function () {
|
||||||
|
var baseLayers = [];
|
||||||
|
var overlays = [];
|
||||||
|
|
||||||
|
for (var i = 0; i < this._layers.length; i++) {
|
||||||
|
var obj = this._layers[i];
|
||||||
|
// id set in LayersConfig.createLayer
|
||||||
|
var id = obj.layer.id;
|
||||||
|
if (id) {
|
||||||
|
if (obj.overlay) {
|
||||||
|
overlays.push(id);
|
||||||
|
} else {
|
||||||
|
baseLayers.push(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.layersConfig.storeDefaultLayers(baseLayers, overlays);
|
||||||
|
},
|
||||||
|
|
||||||
addFirstLayer: function () {
|
addFirstLayer: function () {
|
||||||
for (var i = 0; i < this._layers.length; i++) {
|
for (var i = 0; i < this._layers.length; i++) {
|
||||||
var obj = this._layers[i];
|
var obj = this._layers[i];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue