Files
geointel/frontend/src/lib/datasetDisplay.ts
T
Jens ec6f2d9061
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s
Add governed Wallonia and Brussels orthophotos
2026-07-26 22:02:10 +02:00

97 lines
4.2 KiB
TypeScript

import type { DatasetCreateResponse } from '../types'
const DATASET_LABEL_BY_LAYER: Record<string, string> = {
buildings: 'Bebouwing',
roads: 'Wegen',
water: 'Water',
bathymetry_profiles: 'Dwarsprofielen waterbodem',
parcels: 'Percelen',
population: 'Bevolking',
forest: 'Bos en groen',
nature_value: 'Natuurwaarde',
agriculture: 'Landbouwgebruikspercelen',
soil: 'Digitale bodemkaart',
flood_hazard: 'Overstromingsgevaar',
elevation: 'Hoogte en reliëf',
space_occupation: 'Ruimtebeslag',
open_space: 'Open ruimte',
accessibility: 'Knooppuntwaarde',
services: 'Voorzieningenniveau',
land_cover: 'Landbedekking',
building_registry: 'Gebouwenregister',
regional_boundary: 'Grens vervoerregio Kempen',
municipality_boundaries: 'Gemeentegrenzen Kempen',
}
const DATASET_SOURCE_LABELS: Record<string, string> = {
department_omgeving_land_use: 'Departement Omgeving',
agentschap_landbouw_zeevisserij_agricultural_parcels: 'Agentschap Landbouw en Zeevisserij',
digitaal_vlaanderen_orthophoto: 'Digitaal Vlaanderen',
spw_orthophoto: 'SPW Orthofoto',
urbis_orthophoto: 'Paradigm UrbIS',
digitaal_vlaanderen_buildings_addresses_register: 'Digitaal Vlaanderen',
digitaal_vlaanderen_dhmv: 'Digitaal Vlaanderen',
spw_terrain: 'Service public de Wallonie',
grb: 'GRB',
historical_landuse: 'Digitaal Vlaanderen',
inbo_bwk_natura2000: 'INBO',
statbel: 'Statbel',
vrbg: 'Digitaal Vlaanderen',
waterinfo: 'Waterinfo Vlaanderen',
vmm_flood_hazard: 'Vlaamse Milieumaatschappij',
vmm_vha_bathymetry_profiles: 'VMM / Vlaamse Hydrografische Atlas',
spw_bathymetry: 'Service public de Wallonie',
spw_walous_land_cover: 'Service public de Wallonie',
spw_flood_hazard: 'Service public de Wallonie',
department_omgeving_thematic_raster: 'Departement Omgeving',
dov_soil_map: 'Databank Ondergrond Vlaanderen',
}
export function getDatasetSourceDisplayName(dataset: DatasetCreateResponse): string {
const source = (dataset.source_name ?? dataset.source).toLowerCase()
return DATASET_SOURCE_LABELS[source] ?? dataset.source_name ?? dataset.source
}
export function getDatasetDisplayName(dataset: DatasetCreateResponse): string {
if (dataset.source_name === 'digitaal_vlaanderen_dhmv') {
const productName = dataset.source_metadata?.['product_display_name']
return typeof productName === 'string' && productName.trim() ? productName : 'DHMV II hoogtemodel'
}
if (dataset.source_name === 'spw_terrain') {
const productName = dataset.source_metadata?.['product_display_name']
return typeof productName === 'string' && productName.trim() ? productName : 'SPW terreinmodel 2021-2022'
}
if (dataset.source_name === 'vmm_flood_hazard') {
const productName = dataset.source_metadata?.['product_display_name']
return typeof productName === 'string' && productName.trim() ? productName : 'VMM-overstromingsscenario'
}
if (dataset.source_name === 'vmm_vha_bathymetry_profiles') {
return 'VHA-dwarsprofielen waterbodem'
}
if (dataset.source_name === 'spw_bathymetry') {
return 'SPW waterbodemhoogte 0,5 m'
}
if (dataset.source_name === 'department_omgeving_thematic_raster') {
const productName = dataset.source_metadata?.['product_display_name']
return typeof productName === 'string' && productName.trim() ? productName : 'Officieel Vlaams themaraster'
}
if (dataset.source_name === 'spw_walous_land_cover') {
const productName = dataset.source_metadata?.['product_display_name']
return typeof productName === 'string' && productName.trim() ? productName : 'WALOUS landbedekking'
}
const layer = (dataset.reference_layer_name ?? dataset.source_metadata?.layer_name ?? dataset.source_metadata?.layer_type ?? '')
.toString()
.toLowerCase()
const coverageScope = String(dataset.source_metadata?.coverage_scope ?? '').toLowerCase()
const label = coverageScope === 'flanders' && layer === 'regional_boundary'
? 'Grens Vlaanderen'
: coverageScope === 'flanders' && layer === 'municipality_boundaries'
? 'Gemeentegrenzen Vlaanderen'
: DATASET_LABEL_BY_LAYER[layer]
if (!label) {
return dataset.name
}
const source = getDatasetSourceDisplayName(dataset)
return `${label} · ${source}`
}