Offline-Karten Runde 3: Puls-Icon, rollendes Vorausladen, Ausschnitt-Download, Speicher-Cap
- Offline-Indikator: pulsierendes 32px-Icon oben rechts (unter Kopfzeilen-Hoehe) statt Leiste ueber die volle Breite — verdeckte '<- Zurueck' in der Routennavigation (Geraetetest Rene) - Rollendes Vorausladen: setGps laedt alle ~400m still fehlende z14+-2-Kacheln um die Position — deckt den Weg schon beim ERSTEN Funkloch-Besuch ab - Bereichsauswahl light: 'Sichtbaren Ausschnitt speichern' im Offline-Modal (downloadBbox, Cap 40 MB, Zu-gross-Schutz) - Speicher-Cap 250 MB als Soft-Guard fuer automatische Pfade + totalBytes-Zaehler + navigator.storage.persist() best-effort; echte LRU vertagt (Refcounting noetig) - Auto-OSM-Raster-Prefetch entfernt (manueller Leaflet-Pfad bleibt) - Logik-Tests (Node-Stubs) fuer Bbox/Cap/Throttle/persist bestanden Bump v1229
This commit is contained in:
parent
3426d2b7c8
commit
763108fa7c
10 changed files with 214 additions and 40 deletions
|
|
@ -67,17 +67,30 @@ nach bestandenen Gerätetests Runde 1+2). localhost = Leaflet/AUS.
|
|||
bestanden) — er lag im bereits gespeicherten Gebiet. Nach dem Speichern werden die
|
||||
gespeicherten Bereiche jetzt blau auf der Routen-Detailkarte eingeblendet (`_detailMap._gl`).
|
||||
|
||||
**🔲 Offen (Runde 3):**
|
||||
- **Gerätetest Runde 2** (Budget-Download, Funkloch-Lernen auf echter Gassi-Runde, Korridor,
|
||||
Coverage-Layer) → dann Prod-Freigabe-Entscheidung (BY.offlineTiles-Default erweitern analog `by_map_gl`).
|
||||
- **Rollendes Vorausladen beim Aufzeichnen** (fortlaufend um die aktuelle Position cachen, solange
|
||||
Empfang da — deckt den Weg schon beim ersten Mal ab; Akku-/Datensparsamkeit beachten).
|
||||
- **Bereichsauswahl** (Karten-Ausschnitt/Rechteck als Download-Gebiet) — Korridor deckt den
|
||||
Hauptfall ab, Rest nach Bedarf.
|
||||
- **Speicher-Cap + LRU** über alles (alte Gebiete fliegen automatisch raus) + optional
|
||||
`navigator.storage.persist()`.
|
||||
- Alten OSM-Raster-Prefetch (`offline-indicator.js _prefetchTiles` + `map.js _cacheTiles`) komplett
|
||||
entfernen, wenn Flag dauerhaft AN (auch Prod).
|
||||
**✅ Runde 3 (2026-06-07):**
|
||||
- **Offline-Indikator = pulsierendes Icon** oben rechts (32 px, unterhalb der Kopfzeilen-Höhe) statt
|
||||
Banner über die volle Breite — verdeckte Nav-Elemente, z.B. „← Zurück" in der Routennavigation
|
||||
(Gerätetest René). Vollbanner weiterhin 5 s beim Offline-Gang, dann Icon.
|
||||
- **Rollendes Vorausladen beim Aufzeichnen:** `setGps()` lädt alle ~400 m still die FEHLENDEN
|
||||
z14±2-Kacheln (+Eltern) um die Position, solange online — deckt Weg + Anfahrt schon beim ERSTEN
|
||||
Besuch ab (das Funkloch-Gedächtnis greift erst ab dem 2.). Kein Region-Eintrag, kein UI.
|
||||
- **Bereichsauswahl light:** Modal-Button „Sichtbaren Ausschnitt speichern" → `downloadBbox(viewport,
|
||||
{capMB:40})` mit Zu-groß-Schutz (>4000 z14-Kacheln → „bitte reinzoomen").
|
||||
- **Speicher-Cap 250 MB (Soft-Guard):** `totalBytes`-Zähler in Meta; AUTOMATISCHE Pfade (Vorausladen,
|
||||
Funkloch-Autofill) stoppen über dem Cap, manuelle bleiben; `navigator.storage.persist()` best-effort.
|
||||
Echte LRU-Eviction bewusst vertagt (Kacheln werden regionsübergreifend geteilt → Eviction braucht
|
||||
Refcounting; bei ~8 MB/Gebiet kein Druck).
|
||||
- **Auto-OSM-Raster-Prefetch entfernt** (offline-indicator init); `_prefetchTiles`/`_cacheTiles`
|
||||
bleiben nur für den manuellen Leaflet-Pfad (localhost / by_map_gl=0).
|
||||
- Logik per Node-Stub-Tests verifiziert (Bbox, Zu-groß, Cap, Prefetch-Throttle, persist).
|
||||
Achtung Node 21+: eingebautes `navigator`-Global schluckt `global.navigator=`-Stubs —
|
||||
`Object.defineProperty(globalThis, 'navigator', …)` verwenden.
|
||||
|
||||
**🔲 Offen (Backlog):**
|
||||
- Echte LRU-Eviction (Refcounting/Region-Zuordnung der Kacheln), wenn Nutzer real ans Cap kommen.
|
||||
- Rechteck-Zeichnen als präzisere Bereichsauswahl (Viewport-Variante deckt den Hauptfall ab).
|
||||
- POIs auch beim rollenden Vorausladen (aktuell nur Kacheln; Giftköder kommen aus dem
|
||||
localStorage-Fallback der letzten Online-Position).
|
||||
|
||||
## Ziel
|
||||
GL-Vektorkarten offline-tauglich machen — Kernszenario **Gassi/Wandern im Funkloch**.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue