remember user preference for tile layers across page reloads
This commit is contained in:
@ -1439,6 +1439,14 @@
|
|||||||
return localStorage.setItem("config_enable_map_animations", value);
|
return localStorage.setItem("config_enable_map_animations", value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getConfigMapSelectedTileLayer() {
|
||||||
|
return localStorage.getItem("config_map_selected_tile_layer") || "OpenStreetMap";
|
||||||
|
}
|
||||||
|
|
||||||
|
function setConfigMapSelectedTileLayer(layer) {
|
||||||
|
return localStorage.setItem("config_map_selected_tile_layer", layer);
|
||||||
|
}
|
||||||
|
|
||||||
function getConfigMapEnabledOverlayLayers() {
|
function getConfigMapEnabledOverlayLayers() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -2030,7 +2038,7 @@
|
|||||||
var openStreetMapTileLayer = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
var openStreetMapTileLayer = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
|
||||||
maxZoom: 22, // increase from 18 to 22
|
maxZoom: 22, // increase from 18 to 22
|
||||||
attribution: 'Tiles © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> | Data from <a target="_blank" href="https://meshtastic.org/docs/software/integrations/mqtt/">Meshtastic</a>',
|
attribution: 'Tiles © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> | Data from <a target="_blank" href="https://meshtastic.org/docs/software/integrations/mqtt/">Meshtastic</a>',
|
||||||
}).addTo(map);
|
});
|
||||||
|
|
||||||
var esriWorldImageryTileLayer = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', {
|
var esriWorldImageryTileLayer = L.tileLayer('https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', {
|
||||||
maxZoom: 21, // esri doesn't have tiles closer than this
|
maxZoom: 21, // esri doesn't have tiles closer than this
|
||||||
@ -2049,6 +2057,18 @@
|
|||||||
attribution: 'Tiles © Google | Data from <a target="_blank" href="https://meshtastic.org/docs/software/integrations/mqtt/">Meshtastic</a>'
|
attribution: 'Tiles © Google | Data from <a target="_blank" href="https://meshtastic.org/docs/software/integrations/mqtt/">Meshtastic</a>'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var tileLayers = {
|
||||||
|
"OpenStreetMap": openStreetMapTileLayer,
|
||||||
|
"Esri Satellite": esriWorldImageryTileLayer,
|
||||||
|
"Google Satellite": googleSatelliteTileLayer,
|
||||||
|
"Google Hybrid": googleHybridTileLayer,
|
||||||
|
};
|
||||||
|
|
||||||
|
// use tile layer based on config
|
||||||
|
const selectedTileLayerName = getConfigMapSelectedTileLayer();
|
||||||
|
const selectedTileLayer = tileLayers[selectedTileLayerName] || openStreetMapTileLayer;
|
||||||
|
selectedTileLayer.addTo(map);
|
||||||
|
|
||||||
// create layer groups
|
// create layer groups
|
||||||
var nodesLayerGroup = new L.LayerGroup();
|
var nodesLayerGroup = new L.LayerGroup();
|
||||||
var neighboursLayerGroup = new L.LayerGroup();
|
var neighboursLayerGroup = new L.LayerGroup();
|
||||||
@ -2089,12 +2109,10 @@
|
|||||||
return div;
|
return div;
|
||||||
};
|
};
|
||||||
|
|
||||||
var tileLayers = {
|
// handle baselayerchange to update tile layer preference
|
||||||
"OpenStreetMap": openStreetMapTileLayer,
|
map.on('baselayerchange', function(event) {
|
||||||
"Esri Satellite": esriWorldImageryTileLayer,
|
setConfigMapSelectedTileLayer(event.name);
|
||||||
"Google Satellite": googleSatelliteTileLayer,
|
});
|
||||||
"Google Hybrid": googleHybridTileLayer,
|
|
||||||
};
|
|
||||||
|
|
||||||
// handle adding/remove legend on map (can't use L.Control as an overlay, so we toggle an empty L.LayerGroup)
|
// handle adding/remove legend on map (can't use L.Control as an overlay, so we toggle an empty L.LayerGroup)
|
||||||
map.on('overlayadd overlayremove', function(event) {
|
map.on('overlayadd overlayremove', function(event) {
|
||||||
|
Reference in New Issue
Block a user