1.8 KiB
1.8 KiB
M9 Geospatial Edge Cases
Codex must account for these cases early to avoid later rewrites.
Invalid polygon
Examples:
- self-intersection,
- unclosed ring,
- empty coordinates,
- wrong coordinate nesting.
Required behavior:
- reject with validation error,
- return specific message,
- do not persist.
MultiPolygon
Required behavior:
- accept for areas and vector features,
- compute total area across all parts,
- display as a single layer.
CRS mismatch
Scenario:
- reference data is EPSG:31370,
- API uses EPSG:4326,
- raster processing may use native CRS.
Required behavior:
- store original CRS in dataset metadata,
- transform API geometries to EPSG:4326 for frontend,
- use projected CRS for area/length calculations when needed,
- document transformations.
Very large file
Required behavior:
- reject files above configured limit with clear error,
- do not load huge files into memory at once,
- expose future chunking/tile strategy.
Raster without georeference
Required behavior:
- accept only as non-georeferenced image if supported,
- mark geospatial operations unavailable,
- do not pretend map alignment exists.
Feature outside selected area
Required behavior:
- clip if operation requested,
- otherwise keep original and display warning if used for area analysis.
Geometry collection
Required behavior:
- reject for V1 unless explicitly converted,
- explain supported geometry types.
Zero-area feature
Required behavior:
- keep for line/point layers,
- reject or ignore for polygon-area metrics,
- record warning in analysis result.
Duplicate features
Required behavior:
- do not automatically delete without audit trail,
- expose duplicate count in data quality metadata.
Antimeridian/global edge cases
Not relevant for Kempen V1. Document as out of scope.