aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main.js17
1 files changed, 14 insertions, 3 deletions
diff --git a/main.js b/main.js
index abb4be2..52d27da 100644
--- a/main.js
+++ b/main.js
@@ -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);