49 lines
935 B
JavaScript
49 lines
935 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);
|
|
|
|
}
|