fix(map): isolate bounded raster selections
This commit is contained in:
@@ -23,6 +23,10 @@
|
|||||||
- Classified both `Gemeente ...` and release-golden `... municipality` Areas
|
- Classified both `Gemeente ...` and release-golden `... municipality` Areas
|
||||||
as local scope so a full municipality analysis cannot accidentally invoke
|
as local scope so a full municipality analysis cannot accidentally invoke
|
||||||
regional raster partition assembly.
|
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
|
- Rebuilt the complete frontend presentation as the Stitch-guided GeoIntel
|
||||||
Atlas Workbench. The new shell uses one compact icon navigation rail, one
|
Atlas Workbench. The new shell uses one compact icon navigation rail, one
|
||||||
context bar and task-specific work surfaces across Map, Sources, AI
|
context bar and task-specific work surfaces across Map, Sources, AI
|
||||||
|
|||||||
@@ -10927,7 +10927,11 @@ Implemented:
|
|||||||
to the Map product catalogue;
|
to the Map product catalogue;
|
||||||
- treated both Dutch municipality names and release-golden
|
- treated both Dutch municipality names and release-golden
|
||||||
`... municipality` Areas as local scope after live verification exposed a
|
`... 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:
|
Live evidence:
|
||||||
|
|
||||||
|
|||||||
@@ -78,6 +78,10 @@ describe('map workspace selection guards', () => {
|
|||||||
geometry_clipped_to_selection: true,
|
geometry_clipped_to_selection: true,
|
||||||
bbox_epsg4326: [4.55, 50.58, 4.56, 50.59],
|
bbox_epsg4326: [4.55, 50.58, 4.56, 50.59],
|
||||||
})).toBe(true)
|
})).toBe(true)
|
||||||
|
expect(isSelectionBoundedDataset({
|
||||||
|
coverage_scope: 'bounded_selection',
|
||||||
|
bbox_epsg4326: [5.1, 51.17, 5.11, 51.18],
|
||||||
|
})).toBe(true)
|
||||||
expect(isSelectionBoundedDataset({
|
expect(isSelectionBoundedDataset({
|
||||||
geometry_clipped_to_selection: false,
|
geometry_clipped_to_selection: false,
|
||||||
bbox_epsg4326: [2.5, 49.5, 6.4, 51.6],
|
bbox_epsg4326: [2.5, 49.5, 6.4, 51.6],
|
||||||
|
|||||||
@@ -43,7 +43,9 @@ export function productCoversZones(productZones: string[], selectedZones: string
|
|||||||
export function isSelectionBoundedDataset(
|
export function isSelectionBoundedDataset(
|
||||||
sourceMetadata: Record<string, unknown> | null | undefined,
|
sourceMetadata: Record<string, unknown> | null | undefined,
|
||||||
): boolean {
|
): 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'])
|
&& Array.isArray(sourceMetadata?.['bbox_epsg4326'])
|
||||||
&& sourceMetadata['bbox_epsg4326'].length === 4
|
&& sourceMetadata['bbox_epsg4326'].length === 4
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user