Federate official Belgium data sources
This commit is contained in:
@@ -32,6 +32,59 @@ function countReferenceDatasets(datasets: DatasetCreateResponse[]): number {
|
||||
return datasets.filter((dataset) => dataset.dataset_role === 'reference').length
|
||||
}
|
||||
|
||||
const ANALYTICAL_SOURCE_NAMES = new Set([
|
||||
'ngi_adminvector',
|
||||
'rbins_marine_reporting_units',
|
||||
'rbins_msp_2026',
|
||||
'grb',
|
||||
'department_omgeving_land_use',
|
||||
'historical_landuse',
|
||||
'department_omgeving_thematic_raster',
|
||||
'statbel',
|
||||
'inbo_bwk_natura2000',
|
||||
'agentschap_landbouw_zeevisserij_agricultural_parcels',
|
||||
'dov_soil_map',
|
||||
'digitaal_vlaanderen_dhmv',
|
||||
'vmm_flood_hazard',
|
||||
'vmm_vha_bathymetry_profiles',
|
||||
])
|
||||
|
||||
const ANALYTICAL_LAYER_NAMES = new Set([
|
||||
'administrative',
|
||||
'belgium_land_boundary',
|
||||
'belgium_regions',
|
||||
'belgium_provinces',
|
||||
'belgium_municipalities',
|
||||
'buildings',
|
||||
'roads',
|
||||
'water',
|
||||
'parcels',
|
||||
'population',
|
||||
'forest',
|
||||
'nature_value',
|
||||
'agriculture',
|
||||
'soil',
|
||||
'bathymetry',
|
||||
'flood_hazard',
|
||||
'elevation',
|
||||
'maritime_planning',
|
||||
'marine_environment',
|
||||
'marine_legal_scopes',
|
||||
'marine_spatial_plan_2026',
|
||||
])
|
||||
|
||||
function isAnalyzableDataset(dataset: DatasetCreateResponse): boolean {
|
||||
if (dataset.status !== 'ready') return false
|
||||
const sourceName = String(dataset.source_name ?? dataset.source ?? '').toLowerCase()
|
||||
const layerName = String(
|
||||
dataset.source_metadata?.['theme']
|
||||
?? dataset.reference_layer_name
|
||||
?? dataset.source_metadata?.['layer_type']
|
||||
?? '',
|
||||
).toLowerCase()
|
||||
return ANALYTICAL_SOURCE_NAMES.has(sourceName) || ANALYTICAL_LAYER_NAMES.has(layerName)
|
||||
}
|
||||
|
||||
function statusLabel(state: StatusItem['state']): string {
|
||||
if (state === 'ready') return 'gereed'
|
||||
if (state === 'warning') return 'aandacht'
|
||||
@@ -73,6 +126,7 @@ export function WorkbenchStatusStrip({
|
||||
selectedAreaHasGeometry,
|
||||
}: WorkbenchStatusStripProps): JSX.Element {
|
||||
const readyDatasets = datasets.filter((dataset) => dataset.status === 'ready').length
|
||||
const analyzableDatasets = datasets.filter(isAnalyzableDataset).length
|
||||
const vectorDatasets = countByDatasetType(datasets, 'vector') + countByDatasetType(datasets, 'geojson')
|
||||
const rasterDatasets = countByDatasetType(datasets, 'raster')
|
||||
const referenceDatasets = countReferenceDatasets(datasets)
|
||||
@@ -97,9 +151,12 @@ export function WorkbenchStatusStrip({
|
||||
{
|
||||
key: 'datasets',
|
||||
label: 'Bronnen',
|
||||
value: `${readyDatasets}/${datasets.length} beschikbaar`,
|
||||
detail: `${vectorDatasets} kaartlagen, ${rasterDatasets} luchtbeelden, ${referenceDatasets} officiële referenties`,
|
||||
state: datasets.length === 0 ? 'waiting' : readyDatasets === datasets.length ? 'ready' : 'warning',
|
||||
value: `${analyzableDatasets} analysethema${analyzableDatasets === 1 ? '' : "'s"}`,
|
||||
detail: (
|
||||
`${readyDatasets}/${datasets.length} bronnen gereed · `
|
||||
+ `${vectorDatasets} kaartlagen, ${rasterDatasets} rasters, ${referenceDatasets} officiële referenties`
|
||||
),
|
||||
state: analyzableDatasets === 0 ? 'waiting' : readyDatasets === datasets.length ? 'ready' : 'warning',
|
||||
},
|
||||
{
|
||||
key: 'map',
|
||||
|
||||
Reference in New Issue
Block a user