Mercurial > gemma
view client/src/components/identify/formatter.js @ 5095:e21cbb9768a2
Prevent duplicate fairway areas
In principal, there can be only one or no fairway area at each point
on the map. Since polygons from real data will often be topologically
inexact, just disallow equal geometries. This will also help to
avoid importing duplicates with concurrent imports, once the history
of fairway dimensions will be preserved.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 25 Mar 2020 18:10:02 +0100 |
parents | 544e5a2eacb6 |
children | 3c876c65cc43 |
line wrap: on
line source
import Feature from "ol/Feature"; import app from "@/main"; import filters from "@/lib/filters"; const formatter = { all(p) { if (p.key === "objnam") p.key = app.$gettext("Name"); if (p.key === "objname") p.key = app.$gettext("Name"); if (p.key === "staging_done" || p.key === "fa_critical") p.val = p.val ? app.$gettext("yes") : app.$gettext("no"); if ( (p.key === "date_info" || p.key === "fa_date_info" || p.key === "gm_measuredate") && p.val !== null ) { p.val = filters.surveyDate(p.val); } // remove certain props let propsToRemove = ["bbox"]; if (propsToRemove.indexOf(p.key) !== -1) return null; return p; }, bottlenecks_geoserver: { label: app.$gettext("Bottleneck"), props: p => { if (p.key === "bottleneck_id") p.key = "ID"; if (p.key === "responsible_country") p.key = app.$gettext("Responsible Country"); if (p.key === "fa_date_info") p.key = app.$gettext("Fairway Date"); if (p.key === "fa_critical") p.key = app.$gettext("Fairway Critical"); if (p.key === "source_organization") p.key = app.$gettext("Source Organization"); if (p.key === "gm_measuredate") p.key = app.$gettext("Gauge Waterlevel Date"); if (p.key === "gm_waterlevel") p.key = app.$gettext("Gauge Waterlevel"); if (p.key === "gm_n_14d") p.key = app.$gettext("G.W. Count in Last 14 Days"); // remove certain props // * gauge_obj is another feature object and we want to stay flat // for display (if left in causes a // TypeError: Converting circular structure to JSON // somewhere later) if (p.val instanceof Feature) { return null; } let propsToRemove = ["nobjnm", "reference_water_levels", "fa_data"]; if (propsToRemove.indexOf(p.key) !== -1) return null; return p; } }, fairway_dimensions: { label: app.$gettext("Fairway Dimensions"), props: p => { let propsToRemove = ["id"]; if (propsToRemove.indexOf(p.key) !== -1) return null; return p; } }, waterway_area: { label: app.$gettext("Waterway Area") }, distance_marks_geoserver: { label: app.$gettext("Distance Mark") }, distance_marks_ashore_geoserver: { label: app.$gettext("Distance Mark ashore") }, waterway_axis: { label: app.$gettext("Waterway Axis") }, waterway_profiles: { label: app.$gettext("Waterway Profile") }, stretches_geoserver: { label: app.$gettext("Stretch"), props: p => { if (p.key === "gm_measuredate") p.key = app.$gettext("Min. Gauge Waterlevel Date"); if (p.key === "gm_n_14d") p.key = app.$gettext("Min. G.W. Count in Last 14 Days"); return p; } }, sections_geoserver: { label: app.$gettext("Section"), props: p => { if (p.key === "gm_measuredate") p.key = app.$gettext("Min. Gauge Waterlevel Date"); if (p.key === "gm_n_14d") p.key = app.$gettext("Min. G.W. Count in Last 14 Days"); return p; } }, gauges_geoserver: { label: app.$gettext("Gauge"), props: p => { if (p.key === "gm_measuredate") p.key = app.$gettext("Latest Waterlevel Date"); if (p.key === "gm_waterlevel") p.key = app.$gettext("Latest Waterlevel"); if (p.key === "gm_n_14d") p.key = app.$gettext("Measurement Count in Last 14 Days"); // remove certain props let propsToRemove = ["nsc_data"]; if (propsToRemove.indexOf(p.key) !== -1) return null; return p; } }, sounding_results_areas_geoserver: { label: app.$gettext("Sounding results"), props: p => { let propsToRemove = ["height"]; if (propsToRemove.indexOf(p.key) !== -1) return null; if (p.key === "surtyp") p.key = app.$gettext("Survey type"); if (p.key === "bottleneck_id") p.key = app.$gettext("Bottleneck"); return p; } } }; export { formatter };