fix(map): isolate bounded raster selections
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

This commit is contained in:
Codex
2026-07-19 18:27:10 +02:00
parent 1f5a2f0ea7
commit 80631607f7
4 changed files with 16 additions and 2 deletions
+4
View File
@@ -23,6 +23,10 @@
- Classified both `Gemeente ...` and release-golden `... municipality` Areas
as local scope so a full municipality analysis cannot accidentally invoke
regional raster partition assembly.
- Prevented rasters marked `coverage_scope=bounded_selection` from being
reused outside their acquired bbox. A small selection can therefore no
longer masquerade as a full-municipality space, forest, terrain or flood
measurement.
- Rebuilt the complete frontend presentation as the Stitch-guided GeoIntel
Atlas Workbench. The new shell uses one compact icon navigation rail, one
context bar and task-specific work surfaces across Map, Sources, AI
+5 -1
View File
@@ -10927,7 +10927,11 @@ Implemented:
to the Map product catalogue;
- treated both Dutch municipality names and release-golden
`... municipality` Areas as local scope after live verification exposed a
false regional flood-raster partition path.
false regional flood-raster partition path;
- extended the shared bounded-dataset guard to raster
`coverage_scope=bounded_selection` metadata after live full-Mol verification
proved that a previously acquired small raster could otherwise be
misrepresented as municipality-wide evidence.
Live evidence:
@@ -78,6 +78,10 @@ describe('map workspace selection guards', () => {
geometry_clipped_to_selection: true,
bbox_epsg4326: [4.55, 50.58, 4.56, 50.59],
})).toBe(true)
expect(isSelectionBoundedDataset({
coverage_scope: 'bounded_selection',
bbox_epsg4326: [5.1, 51.17, 5.11, 51.18],
})).toBe(true)
expect(isSelectionBoundedDataset({
geometry_clipped_to_selection: false,
bbox_epsg4326: [2.5, 49.5, 6.4, 51.6],
@@ -43,7 +43,9 @@ export function productCoversZones(productZones: string[], selectedZones: string
export function isSelectionBoundedDataset(
sourceMetadata: Record<string, unknown> | null | undefined,
): boolean {
return sourceMetadata?.['geometry_clipped_to_selection'] === true
const boundedScope = sourceMetadata?.['geometry_clipped_to_selection'] === true
|| sourceMetadata?.['coverage_scope'] === 'bounded_selection'
return boundedScope
&& Array.isArray(sourceMetadata?.['bbox_epsg4326'])
&& sourceMetadata['bbox_epsg4326'].length === 4
}