97 lines
4.2 KiB
TypeScript
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}`
|
|
}
|