diff options
-rw-r--r-- | main.js | 17 |
1 files changed, 14 insertions, 3 deletions
@@ -4501,6 +4501,7 @@ const [mapLayers, featureOverlayLayer] = (function() { * misc at the end so they show up on top of suface features */ const rasterLayers = ['kskog']; const vectorLayers = ['nv', 'mrr', 'skydd', 'ren', 'ri', 'avverk', 'vbk', 'svk', 'misc']; + const canFilterByAge = ['avverk', 'mrr', 'vbk']; /* layers for which features are dated */ const ret = {}; if (!canWebGL2) { @@ -4528,6 +4529,7 @@ const [mapLayers, featureOverlayLayer] = (function() { } vectorLayers.forEach(function(k) { + const canFilterByAge0 = canFilterByAge.includes(k); ret[k] = new VectorTileLayer({ source: new VectorTile({ url: baseurl + 'tiles/' + k + xyz, @@ -4549,7 +4551,7 @@ const [mapLayers, featureOverlayLayer] = (function() { * different style function if age_filter_settings.active */ const ts = properties.ts; if (ts == null) { - if (!age_filter_settings.show_unknown) { + if (canFilterByAge0 && !age_filter_settings.show_unknown) { return null; } } else if ((age_filter_settings._min_ts !== null && ts < age_filter_settings._min_ts) || @@ -4571,6 +4573,7 @@ const [mapLayers, featureOverlayLayer] = (function() { } }); ret[k].set('layerGroup', k, true); + ret[k].set('canFilterByAge', canFilterByAge0, true); map.addLayer(ret[k]); }); @@ -5382,7 +5385,11 @@ const infoMetadataAccordions = []; btn_cancel.onclick = function(event) { /* deactivate deactivate the filter but preserve its settings */ age_filter_settings.active = false; - ['avverk', 'mrr', 'vbk'].forEach((l) => mapLayers[l]?.changed()); + Object.values(mapLayers).forEach(function(lyr) { + if (lyr?.get('canFilterByAge')) { + lyr.changed(); + } + }); const params = new URLSearchParams(window.location.hash.substring(1)); params.delete('age-filter'); @@ -5422,7 +5429,11 @@ const infoMetadataAccordions = []; age_filter_settings.setup_minmax(); age_filter_settings.active = true; /* TODO auto update the filter passed midnight (if active) */ - ['avverk', 'mrr', 'vbk'].forEach((l) => mapLayers[l]?.changed()); + Object.values(mapLayers).forEach(function(lyr) { + if (lyr?.get('canFilterByAge')) { + lyr.changed(); + } + }); const params = new URLSearchParams(window.location.hash.substring(1)); params.set('age-filter', param); |