Lokale Exif-Geo-Karte 📍
Ein leistungsstarkes, datenschutzorientiertes, browserbasiertes Tool zur Visualisierung und Analyse von GPS-Daten aus Ihren Fotos. Ziehen Sie einfach Bilder per Drag & Drop, um interaktive Karten, Heatmaps, Höhenprofile und Reiestatistiken zu generieren.

Warum?
Ich wollte schon immer ein selbst gehostetes Tool, um meine Fotos zu analysieren und in Karten zu verwandeln. Dann kam mein Kroatien-Urlaub, in dem der Wind beschloss, dass meine Hängematte sein Todfeind ist. Um 2 Uhr morgens, schlaflos und etwas windverbrannt, zog ich mich an den Strand zurück und programmierte den gesamten Kern dieser App auf meinem Handy wie ein kompletter Verrückter.
Es ist immer noch eine wunderschöne Katastrophe – angetrieben von Meeresbrise, Schlaflosigkeit und fragwürdigen Lebensentscheidungen. Aber erstaunlicherweise funktioniert das meiste tatsächlich.
Alle Übersetzungen außer Bairisch (das ich mühsam selbst gemacht habe, weil ich anscheinend diese spezielle Art von seltsam bin) wurden von KI ausgespuckt, hauptsächlich EuroLLM und Claude. Wenn Deutsch sich anhört, als hätte ein Roboter einen Schlaganfall, wissen Sie, warum.
📸 Screenshots
 |  |  |  |
|---|
| Interaktive Karte | Dunkelmodus | Höhenprofil | Overpass-Import |
✨ Funktionen
📷 Bildanalyse
- Drag & Drop-Upload: Ziehen Sie Fotos einfach in die Seitenleiste, um GPS-Daten zu extrahieren
- EXIF-GPS-Extraktion: Liest automatisch GPS-Koordinaten, Zeitstempel und Höhe aus Bildmetadaten
- Verwaiste Foto-Synchronisation: Neu! Fotos ohne GPS-Daten werden automatisch auf der Karte platziert, wenn ihr Zeitstempel mit einem hochgeladenen GPX-Track übereinstimmt (muss getestet werden)
- Stapelverarbeitung: Verarbeitung Tausender Bilder (getestet mit über 50.000+ Fotos)
- Fortschrittsverfolgung: Echtzeit-Fortschrittsbalken während der Bildverarbeitung
Interaktive Kartierung
- 12+ Kartenstile: OpenStreetMap, Esri Satellite/Terrain, CartoDB (hell/dunkel/voyager), OpenTopoMap, ÖPNV (Verkehr), OpenRailwayMap und mehr
- Track-Anpassung:
- Linienstil: Durchgezogene, gestrichelte oder gepunktete Linien
- Darstellung: Einstellbare Linienfarbe, -stärke und -deckkraft
- Track-Punkte:
- Markierungen: Benutzerdefinierte Formen (Kreis, Quadrat, Stern usw.), Farben, Größen und Ränder
- Zeitstempel: Option zum dauerhaften Einblenden von Zeitstempeln für jeden Punkt
- Richtungspfeile: Visualisierung der Bewegungsrichtung mit einstellbarer Größe/Abstand
- Auto-Follow: „Folgemodus“ hält die Karte während der Wiedergabe auf Ihre Position zentriert
📍 Points of Interest & OpenStreetMap-Daten
- POI-Editor: Klicken Sie auf eine beliebige Stelle auf der Karte, um benutzerdefinierte Wegpunkte mit Namen und Beschreibungen hinzuzufügen
- OpenStreetMap-Daten: Laden Sie nahegelegene POIs direkt von der Overpass-API (mit „Server-Busy“-Behandlung):
- Tourismus: Aussichtspunkte, Museen, Hotels, Hostels, Informationszentren, Sehenswürdigkeiten
- Essen & Trinken: Restaurants, Cafés, Fast Food, Bars, Pubs, Biergärten
- Wasser: Trinkwasser, Quellen
- Gipfel: Berggipfel (mit Höhe in Metern)
- Historisch: Burgen, Ruinen, Denkmäler, Mahnmale, archäologische Stätten
- Natur: Camping, Hütten, Naturschutzgebiete (NSG), Landschaftsschutzgebiete (LSG), Vogelschutzgebiete (VSG), FFH-Gebiete
- Verkehr: Bushaltestellen, Bahnhöfe
- Info-Boxen: Klicken Sie auf einen POI, um Details zu sehen:
- Name & Typ
- Höhe (falls vorhanden)
- Weblinks
- Wikipedia-Links (automatisch erkannte Sprachen)
🔥 Heatmap
- Dichtedarstellung: Sehen Sie, wo Sie die meiste Zeit verbracht haben
- 5 Farbschemata: Feuer, Kalt, Erde, Marine, Dämmerung
- Einstellbare Parameter: Intensität, Radius, Weichzeichnung und Deckkraft
📈 Höhenprofil
- Interaktives Diagramm: Klicken Sie auf das Diagramm, um die Position auf der Karte hervorzuheben und genaue Statistiken anzuzeigen
- Zoom & Schwenken: Chart.js-gestütztes interaktives Höhendiagramm
- Statistiken: Gesamter Höhengewinn/-verlust, min./max. Höhe
- Responsiv: Link „Zum Höhenprofil springen“ und erweiterbare Seitenleiste für detaillierte Analyse
▶️ Animation
- Wiedergabesteuerung: Starten/Pausieren Ihrer Reise über die Zeit
- Einstellbare Geschwindigkeit: 0,5x bis 5x Wiedergabegeschwindigkeit
- Folgemodus: Kamera folgt automatisch der aktuellen Position
- Spureffekt: Visueller Pfadverlauf während der Wiedergabe
📊 Statistiken
- Gesamtdistanz: Berechnete Tracklänge in km
- Dauer: Zeitraum vom ersten bis zum letzten Foto
- Durchschnittsgeschwindigkeit: Berechnung der Bewegungsgeschwindigkeit
- Punktanzahl: Anzahl der GPS-Punkte aus Bildern und Tracks
📅 Zeitleiste
- Chronologische Ansicht: Alle Trackpunkte zeitlich geordnet sehen
- Zur Position springen: Klicken Sie auf Zeitleisteneinträge, um auf der Karte zu navigieren
💾 Exportoptionen
- PNG-Export: Ein-Klick-Download der aktuellen Kartenansicht als hochwertiges PNG-Bild (einschließlich aller aktiven Ebenen, Heatmaps und Markierungen)
- GPX-Export: Exportieren Sie Ihren analysierten Fototrack als standardmäßige GPX-Datei, kompatibel mit Strava, Garmin, Komoot und Google Earth
- Backup: Speichern Sie Ihre kuratierten Kartendaten zur späteren Verwendung
🌐 Mehrsprachige Unterstützung
11 Sprachen unterstützt:
- 🇬🇧 Englisch
- 🇩🇪 Deutsch
- 🇮🇹 Italienisch
- 🇭🇷 Kroatisch
- 🇵🇱 Polnisch
- 🇪🇸 Spanisch
- 🇺🇦 Ukrainisch
- 🇳🇱 Niederländisch
- 🇸🇪 Schwedisch
- 🇳🇴 Norwegisch
Bairisch
🎨 Benutzeroberfläche/Benutzererfahrung
- Dunkelmodus: Umschalten zwischen hellem und dunklem Design (standardmäßig dunkel)
- Responsives Design: Funktioniert auf Desktop- und Mobilbrowsern
- Einklappbare Abschnitte: Organisieren Sie die Seitenleiste mit erweiterbaren Bedienfeldern
- Toast-Benachrichtigungen: Benutzerfreundliche Rückmeldungen
🔒 Datenschutz an erster Stelle
Ihre Fotos verlassen niemals Ihr Gerät!
Die gesamte GPS-Extraktion und -Verarbeitung erfolgt vollständig in Ihrem Browser. Es werden keine Bilder auf einen Server hochgeladen. Die einzigen Netzwerkanfragen sind:
- Laden von Kartenkacheln (von Kartenanbietern wie OpenStreetMap)
- Optional: Laden von OSM-POI-Daten (von der Overpass-API)
Das bedeutet, dass Ihre persönlichen Fotos und Standortdaten zu 100 % privat bleiben.
Außerdem gibt es in der App überhaupt keine Protokollierung.
🛠️ Technologien
📦 Installation & Verwendung
Voraussetzungen
- PHP 8.2 oder höher
- Ein moderner Webbrowser (Chrome, Firefox, Safari, Edge)
Installation
- Klonen Sie das Repository (oder laden Sie es als ZIP herunter und entpacken Sie es)
- Konfigurieren Sie Ihren Webserver so, dass er auf das Verzeichnis
public/ zeigt
Bereitstellung
Für den Produktionseinsatz stellen Sie es auf einem PHP-fähigen Webserver bereit (Apache, Nginx mit PHP-FPM usw.)
📁 Projektstruktur
gps-track-viewer/
├── public/ # Web-Root
│ ├── assets/
│ │ ├── js/ # Anwendungs-JavaScript
│ │ │ ├── app.js # Hauptanwendungslogik
│ │ │ └── TrackParser.js # GPX/KML-Parsing
│ │ └── styles.css # Anwendungsstyles
│ ├── lib/ # PHP-Klassen
│ │ ├── Assets/ # Asset-Verwaltung
│ │ ├── Security/ # Sitzung & Sicherheit
│ │ ├── View/ # Vorlagen-Rendering
│ │ └── Config.php # Konfiguration
│ ├── templates/ # PHP-Vorlagen
│ │ └── app.php # Hauptanwendungsvorlage
│ ├── vendor/ # Frontend-Bibliotheken (Leaflet usw.)
│ ├── index.php # Anwendungseinstiegspunkt
│ └── router.php # Entwicklungs-Server-Router
└── README.md
⚠️ Einschränkungen
- GPS-Daten erforderlich: Nur Fotos mit eingebetteten GPS-EXIF-Daten werden kartiert
- Browser-Speicher: Sehr große Stapel (50.000+ Bilder) können auf Geräten mit begrenztem RAM langsam sein
- Kartenanbieter: Manche Kartenstile haben Nutzungsbeschränkungen oder erfordern eine Quellenangabe
- OSM-Daten: Overpass-API-Abfragen sind auf ~300 POIs pro Anfrage begrenzt, um Überlastung zu vermeiden
🤝 Mitwirken
Beiträge sind willkommen! Bitte reichen Sie gerne Issues und Pull Requests ein.
🙏 Danksagungen
GPS Track Viewer steht auf den Schultern von Giganten. Wir danken den Entwicklern und Mitwirkenden dieser großartigen Open-Source-Projekte:
☕ Projekt unterstützen
Wenn Sie dies nützlich finden und unterstützen möchten:
Bitcoin (BTC): bc1q3lz8vxpk0rchqn6dq8g08rkcqts425csuvnjr2477uzdenak5n8sfds2ke
📬 Kontakt
Bei Fragen, Anregungen oder Fehlermeldungen öffnen Sie bitte ein Issue auf GitHub.