Offline-Karten Runde 7: 'Alles loeschen' selektiv — Standort + Routen-Korridore bleiben

Idee Rene (spart Vorladezeit + Daten): statt loeschen-und-neu-laden bleiben
- Standort-Gebiete (Regionen type 'standort')
- Korridore der gespeicherten Routen (clear({keepTracks}) aus preview_track)
- 5-km-Umkreis der aktuellen Position + Basis-Zooms 0-9
- Marker/Warnungen (p/) + Glyphs (f/)
Geloescht: manuelle Gebiete/Ausschnitte + Funkloch-Kacheln (Zonen bleiben
gemerkt, Nahe laden automatisch neu). Ohne Keep-Kandidaten: Komplett-Wipe.
Batch-Delete in einer Transaktion. Tests r7 neu, r6 angepasst, Regression gruen.
Bump v1235
This commit is contained in:
rene 2026-06-06 13:35:18 +02:00
parent 94a6ce49ba
commit 29cd489287
11 changed files with 193 additions and 39 deletions

View file

@ -2308,13 +2308,22 @@ window.Page_map = (() => {
btn.innerHTML = `${UI.icon('trash')} Wirklich alles löschen?`;
return;
}
await MapOffline.clear().catch(() => {});
// SELEKTIV löschen (René 2026-06-08, spart Vorladezeit): Standort-Gebiet + Korridore
// der gespeicherten Routen bleiben einfach stehen statt löschen-und-neu-laden.
let keepTracks = [];
try {
keepTracks = ((await API.routes.list()) || [])
.map(r => r.preview_track).filter(t => (t || []).length >= 2);
} catch (e) {}
await MapOffline.clear({
center: _userPos ? { lat: _userPos.lat, lon: _userPos.lon } : null,
keepTracks,
}).catch(() => {});
_setCoverage(false);
UI.modal.close();
UI.toast.success('Offline-Karten gelöscht. Funkloch-Gebiete werden beim nächsten Start automatisch neu geladen.');
// Standort-Grundversorgung sofort wiederherstellen (René 2026-06-08: das Gebiet am
// aktuellen Standort muss bleiben — es würde sonst nicht automatisch vorgeladen
// und die Offline-Funktionalität wäre genau hier weg).
UI.toast.success('Offline-Karten gelöscht — Standort-Gebiet und Routen-Korridore bleiben erhalten.');
// Sicherheitsnetz: falls am Standort nichts zu behalten war (z.B. nie geladen),
// Grundversorgung jetzt herstellen.
if (_userPos && navigator.onLine) {
try {
const r = await MapOffline.ensureHomeArea(_userPos.lat, _userPos.lon);