# 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.