Filter & Statistik
v{{ appVersion }}
🔒 Anmelden
{{ loggingIn ? '...' : 'Login' }}
{{ loginError }}
👤 {{ currentUser }}
Abmelden
Strecke (km)
–
Suche
Startpunkt
{{ geocoding ? '...' : 'Position festlegen' }}
{{ filterRadius > 0 ? filterRadius + ' km' : 'Aus' }}
Nur im Radius
Nur nicht gefahrene Routen anzeigen
Sichtbarer Bereich
{{ Math.round(statsData.viewportTotalKm - statsData.viewportRiddenKm) }} km
offen von {{ Math.round(statsData.viewportTotalKm) }} km
Permanente Routen · {{ filtered.length }}
Alle
Keine
Gefahrene aus
{{ expandedLV.has(lvNode.lv) ? '▼' : '▶' }}
✓
{{ lvDisplayName(lvNode.lv) }}
{{ lvNode.count }}
{{ expandedVerein.has(vNode.verein) ? '▼' : '▶' }}
✓
{{ vNode.verein }}
{{ vNode.count }}
✓
{{ route.titel }}
{{ Math.max(...filterTracksbyKm(route.tracks).map(t => t.strecke_km || 0)) }} km
{{ loadingProgress > 0 ? `Lade Routen... ${loadingProgress}/${loadingTotal}` : 'Lade Routen...' }}
☰ Filter & Routen
★ {{ ridden.size }} gefahren
×
{{ selected.titel }}
{{ ridden.has(selected.id) ? '✓ Gefahren' : 'Als gefahren markieren' }}
{{ saveError }}
Verein
{{ selected.verein }}
Höhenmeter
{{ selectedElevation }} m
GPX-Strecke
⬇ {{ t.strecke_km }} km herunterladen
Nächster Einstieg
{{ nearestEntry.routedDistKm }} km Fahrrad-Route
{{ nearestEntry.distKm }} km Luftlinie
{{ approachLoading ? 'Routenberechnung...' : '➔ Anfahrt anzeigen' }}
⬇
({{ nearestEntry.routedDistKm }} km)
Nur Anfahrt GPX
⬇
({{ Math.round(parseFloat(nearestEntry.routedDistKm) + (selected.tracks.find(t => t.gpx_file)?.strecke_km || 0)) }} km)
Anfahrt + Permanente
⬇
({{ Math.round(parseFloat(nearestEntry.routedDistKm) + (selected.tracks.find(t => t.gpx_file)?.strecke_km || 0)) }} km)
Anfahrt + Permanente (umgekehrt)
⬇
({{ Math.round(parseFloat(nearestEntry.routedDistKm) * 2 + (selected.tracks.find(t => t.gpx_file)?.strecke_km || 0)) }} km)
Anfahrt + Permanente + Heimfahrt
⬇
({{ Math.round(parseFloat(nearestEntry.routedDistKm) + (t.strecke_km || 0)) }} km)
Anfahrt + Permanente ({{ t.strecke_km }} km)
⬇
({{ Math.round(parseFloat(nearestEntry.routedDistKm) + (t.strecke_km || 0)) }} km)
Anfahrt + Permanente ({{ t.strecke_km }} km, umgekehrt)
⬇
({{ Math.round(parseFloat(nearestEntry.routedDistKm) * 2 + (t.strecke_km || 0)) }} km)
Anfahrt + Permanente + Heimfahrt ({{ t.strecke_km }} km)