mirror of
https://github.com/koala73/worldmonitor.git
synced 2026-04-25 17:14:57 +02:00
* feat(map): add NOTAM overlay + satellite imagery integration NOTAM Overlay: - Expand airport monitoring from MENA-only to 64 global airports - Add ScatterplotLayer (55km red rings) on flat map for airspace closures - Add CSS-pulsing ring markers on globe for closures - Independent of flights layer toggle (works when flights OFF) - Bump NOTAM cache key v1 to v2 Satellite Imagery: - Add Capella SAR STAC catalog proxy at /api/imagery/v1 - SSRF protection via URL allowlist + bbox/datetime validation - SatelliteImageryPanel with preview thumbnails and scene metadata - PolygonLayer footprints on flat map with viewport-triggered search - Polygon footprints on globe with "Search this area" button - Full variant only, default disabled Layer key propagation across all 23+ files including variants, harnesses, registry, URL state, and renderer channels. * fix(imagery): wire panel data flow, fix viewport race, add datetime filter P1 fixes: - Imagery scenes now flow through MapContainer.setOnImageryUpdate() callback, making data available to both renderers and panel - Add version guard to fetchImageryForViewport() preventing stale responses from overwriting newer viewport data - Wire SatelliteImageryPanel.update() and setOnSearchArea() in panel-layout.ts (panel was previously unhooked) - Globe mode "Search this area" fetches via MapContainer.getBbox() P2 fix: - search-imagery.ts now filters STAC items by datetime range when the client provides the datetime parameter Also: - Add MapContainer.getBbox() for viewport-aware imagery fetching - Add DeckGLMap.getBbox() public method - Data-loader layer toggle triggers initial imagery fetch * fix(imagery): complete source filter + fix date-only end bound - Filter STAC items by constellation when source param is provided, making the API contract match actual behavior - Date-only end bounds (YYYY-MM-DD without T) now include the full day (23:59:59.999Z) instead of only midnight