mapserver/public/js/map/CustomOverlay.js
2021-04-12 13:03:10 +02:00

49 lines
936 B
JavaScript

var customOverlays = {};
try {
customOverlays = JSON.parse(localStorage["mapserver-customOverlays"]);
} catch (e){}
function save(){
localStorage["mapserver-customOverlays"] = JSON.stringify(customOverlays);
}
function onAddLayer(e){
customOverlays[e.name] = true;
save();
}
function onRemoveLayer(e){
customOverlays[e.name] = false;
save();
}
export default function(map, overlays){
Object.keys(customOverlays)
.filter(name => overlays[name])
.forEach(name => {
const layer = overlays[name];
if (customOverlays[name] && !map.hasLayer(layer)){
//Add
map.addLayer(layer);
}
if (!customOverlays[name] && map.hasLayer(layer)){
//Remove
map.removeLayer(layer);
}
});
map.on('unload', () => {
map.off('overlayadd', onAddLayer);
map.off('overlayremove', onRemoveLayer);
});
map.on('overlayadd', onAddLayer);
map.on('overlayremove', onRemoveLayer);
}