Skip to content

v1.13.0 - 3D-Karte mit Chase-Cam, Gebäudeschatten und Zeit-Slider

Choose a tag to compare

@Xunil99 Xunil99 released this 20 May 09:11

Neue Lovelace-Karte: Bosch eBike 3D-Karte

Diese Version ergänzt eine fünfte Lovelace-Karte, bosch-ebike-3d-map-card. Sie startet mit einer Liste der letzten Touren. Beim Klick auf eine Tour öffnet sich eine 3D-Verfolgerkamera-Ansicht mit MapLibre und kostenlosen OpenFreeMap-Vektor-Tiles. Die bestehenden Karten (Map, Heatmap, Calendar, Dashboard) sind unverändert.

Was die Karte zeigt

  • Tour-Liste als Einstieg, mit Datum, Titel, Distanz und Dauer
  • 3D-Map mit Gebäude-Extrusionen aus OpenStreetMap-Daten via OpenFreeMap
  • Chase-Cam: die Kamera folgt dem Bike von hinten, Pitch und Zoom konfigurierbar
  • Bike-Marker mit pulsierendem Ring, immer im unteren Drittel des Bildes mit Blick auf die Strecke voraus
  • Cast-Shadows von Gebäuden: Sonnenstand-basierte Schatten werden auf den Boden projiziert. Schatten richten sich nach Azimut und Höhe der Sonne zur jeweiligen Slider-Zeit. Tagsüber sichtbar, bei Nacht ausgeblendet.
  • Zeit-Slider scrubbbar über die ganze Tour
  • Play- und Pause-Button mit proportionaler Wiedergabegeschwindigkeit (Default 60× Echtzeit, eine 1h-Tour läuft in 1 Minute)
  • Live-Stats: kumulierte Distanz, Geschwindigkeit, Höhe, alle linear zwischen GPS-Samples interpoliert für ruckelfreien Verlauf
  • Zeit- und Sonnen-Chip im Overlay zeigt aktuelle Uhrzeit und Tageslicht-Phase
  • Map-Beleuchtung passt sich dem Sonnenstand an: warm bei Sonnenuntergang, kühl-bläulich tagsüber

Glättung gegen Schwindel

Mehrere Glättungs-Stufen sorgen dafür, dass die Kamerafahrt nicht zittert:

  1. Bearing-Glättung (Default 15-Punkt-Fenster): die Kamera-Drehung wird vorab pro Track-Punkt aus einem gleitenden Mittel der Fahrtrichtungen berechnet. Wrap-Around bei 0°/360° wird korrekt behandelt.
  2. Track-Positions-Glättung (Default 2-Punkt-Fenster): die GPS-Punkte selbst werden gemittelt, damit GPS-Rauschen nicht in den Kamerapfad durchschlägt. Die sichtbare Track-Linie auf der Karte zeigt unabhängig davon immer die echten rohen GPS-Daten.
  3. Fraktionale Interpolation zwischen GPS-Samples: bei 1 Hz GPS und 60 fps Wiedergabe werden Position, Bearing, Höhe und Distanz pro Frame linear interpoliert, so dass die Kamera nicht alle 16 Frames auf den nächsten Sample-Punkt schnappt.

Alle drei Stufen sind konfigurierbar.

Karten-Konfig-Optionen

type: custom:bosch-ebike-3d-map-card
title: Tour in 3D
height: 540
default_pitch: 55         # Chase-Cam-Neigung 20-65°
chase_zoom: 17            # Sicht-Distanz, ca. 100 m bei Zoom 17
smooth_window: 15         # Bearing-Glättung
track_smooth_window: 2    # Positions-Glättung
playback_speed: 60        # Echtzeit-Multiplikator
account_id: ""            # optional, auf Konto fixieren
bike_id: ""               # optional, auf Bike fixieren

Technologie

  • MapLibre GL 5.6 wird beim ersten Aufruf der Karte von unpkg.com nachgeladen (ca. 800 KB gzipped, danach gecacht). Lazy-Loading hält die übrigen Karten leichtgewichtig.
  • OpenFreeMap Liberty als Vektor-Tile-Quelle, ohne API-Key oder Anmeldung
  • NOAA-basierte Sonnenstands-Mathematik mit korrekter Wrap-Around-Behandlung
  • Gebäudeschatten als CPU-seitig projizierte konvexe Hüllen, gerendert als flache GeoJSON-Fill-Schicht unter den Gebäude-Extrusionen. Throttle auf 500 ms damit Performance auch in dicht bebauten Innenstädten stabil bleibt.

Bewusst nicht enthalten

  • Geländeschatten (Berge, Hügel): bräuchte DEM-Höhendaten als Tile-Source und Ray-Casting im Shader. Geplanter Folge-Schritt, wenn Interesse besteht.
  • Satelliten-Ansicht: testweise enthalten, dann wieder entfernt weil die freien Esri-Tiles für die Chase-Cam-Geschwindigkeit zu langsam laden.

Nach dem Update

Browser einmal hart neu laden (Cmd+Shift+R oder Ctrl+Shift+R). Im Card-Picker erscheint die neue Karte unter "Bosch eBike 3D-Karte". Keine Auswirkungen auf bestehende Dashboards.