remember which map layers are enabled or disabled across page reloads
This commit is contained in:
@ -933,6 +933,24 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
function getConfigMapEnabledOverlayLayers() {
|
||||||
|
|
||||||
|
try {
|
||||||
|
const value = localStorage.getItem("config_map_enabled_overlay_layers");
|
||||||
|
if(value){
|
||||||
|
return JSON.parse(value);
|
||||||
|
}
|
||||||
|
} catch(e) {}
|
||||||
|
|
||||||
|
// no overlays enabled by default
|
||||||
|
return [];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function setConfigMapEnabledOverlayLayers(layers) {
|
||||||
|
return localStorage.setItem("config_map_enabled_overlay_layers", JSON.stringify(layers));
|
||||||
|
}
|
||||||
|
|
||||||
function getConfigNodesMaxAgeInSeconds() {
|
function getConfigNodesMaxAgeInSeconds() {
|
||||||
const value = localStorage.getItem("config_nodes_max_age_in_seconds");
|
const value = localStorage.getItem("config_nodes_max_age_in_seconds");
|
||||||
return value != null ? parseInt(value) : null;
|
return value != null ? parseInt(value) : null;
|
||||||
@ -1447,11 +1465,36 @@
|
|||||||
// add layers to control ui
|
// add layers to control ui
|
||||||
L.control.layers(baseLayers, overlays).addTo(map);
|
L.control.layers(baseLayers, overlays).addTo(map);
|
||||||
|
|
||||||
// add layers to map that should be enabled by default
|
// enable base layers
|
||||||
// nodesLayerGroup.addTo(map);
|
|
||||||
nodesClusteredLayerGroup.addTo(map);
|
nodesClusteredLayerGroup.addTo(map);
|
||||||
// neighboursLayerGroup.addTo(map);
|
|
||||||
// legend.addTo(map);
|
// enable overlay layers based on config
|
||||||
|
const enabledOverlayLayers = getConfigMapEnabledOverlayLayers();
|
||||||
|
if(enabledOverlayLayers.includes("Neighbours")){
|
||||||
|
neighboursLayerGroup.addTo(map);
|
||||||
|
}
|
||||||
|
if(enabledOverlayLayers.includes("Waypoints")){
|
||||||
|
waypointsLayerGroup.addTo(map);
|
||||||
|
}
|
||||||
|
|
||||||
|
// update config when map overlay is added
|
||||||
|
map.on('overlayadd', function(event) {
|
||||||
|
const layerName = event.name;
|
||||||
|
const enabledOverlayLayers = getConfigMapEnabledOverlayLayers();
|
||||||
|
if(!enabledOverlayLayers.includes(layerName)){
|
||||||
|
enabledOverlayLayers.push(layerName);
|
||||||
|
}
|
||||||
|
setConfigMapEnabledOverlayLayers(enabledOverlayLayers);
|
||||||
|
});
|
||||||
|
|
||||||
|
// update config when map overlay is removed
|
||||||
|
map.on('overlayremove', function(event) {
|
||||||
|
const layerName = event.name;
|
||||||
|
const enabledOverlayLayers = getConfigMapEnabledOverlayLayers().filter(function(enabledOverlayLayer) {
|
||||||
|
return enabledOverlayLayer !== layerName;
|
||||||
|
});
|
||||||
|
setConfigMapEnabledOverlayLayers(enabledOverlayLayers);
|
||||||
|
});
|
||||||
|
|
||||||
// handle map clicks
|
// handle map clicks
|
||||||
map.on('click', function() {
|
map.on('click', function() {
|
||||||
|
Reference in New Issue
Block a user