Review story 2.3: home marker and airspace outlines passes all ACs
All 10 review criteria pass without any code fixes required. Two tech-debt items added to deferred-work: non-Polygon geometry types silently skipped (intentional for MVP) and null-geometry GeoJSON features would raise AttributeError (acceptable for controlled OpenAIP input). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -106,3 +106,17 @@ Description: The equirectangular projection corrects only for longitude converge
|
||||
Story: `2-2-coordinate-projection-and-base-map-loading`
|
||||
Category: Technical debt
|
||||
Description: `basemap.load()` opens and returns whatever image is at `BACKGROUND_PATH` without asserting it is 800×480. A mismatched tile composite (e.g. from a re-provisioning at a different zoom level) will be silently accepted and the rendered output will be corrupted. Future hardening: add a dimension assertion and raise `ValueError` if the image does not match `DISPLAY_WIDTH × DISPLAY_HEIGHT`.
|
||||
|
||||
---
|
||||
|
||||
## Story 2.3: Home Marker & Airspace Outlines
|
||||
|
||||
### [2-3] draw_airspace() silently skips non-Polygon geometry types
|
||||
Story: `2-3-home-marker-and-airspace-outlines`
|
||||
Category: Technical debt
|
||||
Description: `draw_airspace()` skips any GeoJSON feature whose `geometry.type` is not `"Polygon"` (e.g. Point, LineString, MultiPolygon). This is intentional for MVP per spec, but MultiPolygon airspace features from OpenAIP will be silently ignored. Future hardening: add support for MultiPolygon by iterating each ring, and log a debug message when an unsupported geometry type is encountered.
|
||||
|
||||
### [2-3] draw_airspace() does not handle null geometry features
|
||||
Story: `2-3-home-marker-and-airspace-outlines`
|
||||
Category: Technical debt
|
||||
Description: If a GeoJSON feature has `"geometry": null` (valid per GeoJSON spec for featureless features), `feature.get("geometry", {})` returns `None` rather than `{}`, and the subsequent `.get("type")` call raises `AttributeError`. Acceptable for MVP given controlled OpenAIP input, but real-world GeoJSON files can contain null geometry. Future hardening: guard with `if not geom or not isinstance(geom, dict): continue`.
|
||||
|
||||
Reference in New Issue
Block a user