>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Kotlin

So wandeln Sie Ihren Google Standortverlauf in flüssige Routenvideos um

Neulich bin ich auf ein interessantes Repository gestoßen: google-timeline-visualizer. Das Projekt nimmt rohe Standortverlaufsexporte aus Google Maps (Timeline.json) und setzt sie zu einem animierten MP4-Video mit einer Karte Ihrer Reisen für den ausgewählten Zeitraum zusammen.

Videos library

Vor ein paar Jahren begann Google damit, den Standortverlauf schrittweise von der Cloud auf die Geräte der Nutzer zu verlagern. Jetzt befinden sich diese Daten lokal in umfangreichen JSON-Dateien mit einer komplexen Struktur aus Koordinaten, Segmenten und Aktivitätsmarkern. Der Projektautor schrieb zunächst ein Python-Skript für den persönlichen Gebrauch und portierte die Logik dann in eine native Kotlin-App für Android und eine Web-Version für iOS.

New video

Was das Tool kann

Der Hauptzweck des Tools ist einfach: trockene Standortpunkte in eine ansprechende Animation umwandeln, die Sie nicht peinlich finden, wenn Sie sie in den sozialen Medien teilen oder als Erinnerung an Ihren Urlaub aufbewahren möchten.

Hier sind einige interessante Lösungen:

  • GPS-Rauschfilterung. Wenn Ihr Telefon für eine Sekunde den Satellitenempfang verliert und Sie in die Nachbarstadt versetzt, schneidet der Algorithmus solche scharfen Hin- und Hersprünge heraus und unterbricht nicht die gesamte Routenlinie.
  • Fluginterpolation. Lange interkontinentale Flüge werden entlang eines Großkreis Bogens geglättet. Die Kamera fliegt sanft entlang der Geodäte dem Marker folgend, anstatt von Punkt A nach Punkt B zu teleportieren.
  • Flüssige Kamerasteuerung. Bei täglichen Stadtfahrten kann der Marker leicht innerhalb einer festen Bildschirmzone wandern, und erst dann beginnt die Karte sanft dahinter zu gleiten. Dies eliminiert unangenehmes Ruckeln an Ampeln und im Stau.
  • Flexible Render-Einstellungen. Sie können die Dauer von 10 bis 300 Sekunden einstellen, das vertikale Format 1080×1920 für mobile Stories oder das klassische horizontale 1080p wählen.

So führen Sie es auf dem Desktop aus

Ursprünglich entwickelte sich das Projekt als Python-Skript, das FFmpeg zum Zusammenfügen von Kacheln und Frames verwendete. Die Desktop-Version funktioniert immer noch.

Sie benötigen Python 3.9+ und FFmpeg, installiert auf Ihrem System:

python -m pip install -r requirements.txt
python visualizer.py --input Timeline.json --year 2025 --camera-movement steady \
  --long-trip-compression balanced --output my_trip_2025.mp4

Das Skript unterstützt verschiedene Koordinatenformate: Standard-Arrays, semanticSegments-Struktur, E7-Koordinaten und Strings mit Präfixen geo:.

Mobile Clients und Web-Version

Wenn Sie sich nicht mit dem Terminal herumschlagen möchten, gibt es zwei fertige Optionen:

  1. Android. Ein fertiges APK ist in den Repository-Releases verfügbar. Die App ist in Kotlin geschrieben, rendert das Video direkt auf dem Prozessor des Telefons und speichert fertige Clips in den Systemordner Movies.
  2. iPhone. Funktioniert über eine Web-Oberfläche in Safari. Der hardwarebasierte H.264-Encoder im Browser wird für die Kodierung verwendet.

Um das Android-Projekt von Grund auf zu erstellen, benötigen Sie JDK 17 und Android SDK 36:

./gradlew test lint assembleGithubDebug assemblePlayDebug
python -m pip install -r requirements-dev.txt
python -m pytest

Datenschutzüberlegungen

Standortdaten sind sensibel, daher hat der Autor das Rendering strikt lokal gehalten. Es gibt keine Google-Konto-Autorisierung oder das Senden von JSON an Drittanbieter-Server.

Die einzige Netzwerkinteraktion ist das Laden von Raster-Kartenkacheln vom CARTO-Dienst basierend auf OpenStreetMap. Vor dem Laden der ersten Karte warnt die App direkt vor diesen Netzwerkanfragen.

Für wen es nützlich ist

Das Projekt ist für diejenigen interessant, die das Jahr gerne Revue passieren lassen und ihre Reisen visualisieren möchten. Der Quellcode ist auch für Mobile-Entwickler einen Blick wert: Die Codebasis zeigt deutlich, wie man Kachelkarten und Video-Stream-Rendering ohne schwere externe Bibliotheken organisiert.

Ähnliche Projekte