|
All checks were successful
build-and-deploy / build (push) Successful in 1m37s
- Vendored leaflet.heat 0.2.0; fires overlay is now a real heatmap
(L.heatLayer) with intensity driven by brightness or VIIRS confidence
(color mode selector) and a since= time filter (6h/24h/48h/7d/30d/all).
- Camera markers now open popups with the live snapshot thumbnail proxied
through GET /api/cameras/{id}/snapshot (backend TTL cache) + full
metadata (vendor, device, discovery source, first/last seen, coords,
source link); missing-snapshot cams show a placeholder instead of 404.
- New collapsible Layers panel (dark neon) over the map: per-layer
visibility toggles, opacity sliders (basemap/fires/cameras), live
counts legend, and a fire heat-intensity ramp that swaps for the
confidence legend in confidence mode.
- Clamp currentBBox() to world bounds so /api/cameras doesn't 422 at low
zoom (worldCopyJump spans multiple copies).
- Skip overlay reloads on moveend while a popup is open — popup autopan
no longer rebuilds the marker group and closes the popup.
- Zoom control moved to top-right so it doesn't collide with the panel.
|
||
|---|---|---|
| .. | ||
| static | ||
| camera_config.py | ||
| camera_models.py | ||
| camera_scraper.py | ||
| config.py | ||
| database.py | ||
| docker-entrypoint.sh | ||
| fire_sources.py | ||
| gibs_map.py | ||
| ingest_cron.py | ||
| ingestor.py | ||
| keystore.py | ||
| main.py | ||
| models.py | ||
| requirements.txt | ||
| run_camera_service.py | ||
| run_ingester.py | ||
| schemas.py | ||
| sources.py | ||