Dieses Dokument analysiert eine leichtgewichtige, lokal ausführbare GIS-Webanwendung zur interaktiven Kartierung und zeitlichen Filterung von geografisch referenzierten Bilddaten (Geotags). Die softwareseitige Architektur basiert auf einer serverunabhängigen Single-Page-Application (HTML5/JavaScript), die unter direkter Entwickleraufsicht mittels iterativer Prompts über das LLM Google Gemini implementiert wurde.
Die Applikation löst das Problem der visuellen Überlagerung dichter Datenpunkte durch ein volumenbasiertes Skalierungsverfahren (Kubikwurzel der Fotoanzahl) sowie einen automatisierten Jitter-Algorithmus bei identischen Koordinaten. Ein integriertes, interaktives Histogramm ermöglicht eine granulare zeitliche Filterung bis auf Stundenbasis. Die technische Evaluation beleuchtet zudem signifikante Qualitätsunterschiede bei der GPS-Datenerfassung zwischen Android- und iOS-Endgeräten, Methoden zur Aufrechterhaltung des GPS-Fixes im Hintergrund sowie den systematischen Verlust von EXIF-Metadaten durch Kompressions- und Kommunikationsprotokolle von Drittanbietern.
Key Highlights & Timestamps
0:00 Lokale Client-Architektur: Die GIS-Anwendung ist als serverlose Single-Page-Application (HTML/JavaScript) konzipiert. Sie erfordert keine lokale Installation, läuft plattformunabhängig in gängigen Webbrowsern direkt vom lokalen Dateisystem und visualisiert lokal gespeicherte Bilddateien datenschutzkonform auf einer interaktiven Karte.
0:36 Visuelle Aggregation und Skalierung: Zur Vermeidung von visuellem Rauschen werden überlappende Bildkoordinaten dynamisch aggregiert. Einzelne Bilder werden als transparente Punkte dargestellt. Bis zu drei überlagernde Fotos erhöhen die Helligkeit des Punktes; ab dem vierten Foto skaliert der Radius des Datenpunkts proportional zur Kubikwurzel der Bildanzahl, um ein dreidimensionales Volumen (Sphäre) zu simulieren. Ein "Blur-Modus" maskiert sensible Bildinhalte.
1:36 Temporale Analyse via Histogramm: Ein integriertes Timeline-Histogramm visualisiert die zeitliche Verteilung der Aufnahmen. Benutzer können durch Verschieben von Intervallgrenzen Filter anwenden und über eine Time-Zoom-Funktion tief in spezifische Zeiträume (bis auf Stunden- und Minutenebene eines Tages) hinabsteigen.
3:56 Koordinaten-Jittering bei Identität: Bei identischen GPS-Koordinaten (z. B. durch geräteseitige Rundung) wendet die App ab einem Zoom-Maßstab von unter 2 Metern einen Jitter-Algorithmus an. Dieser fächert die exakt übereinanderliegenden Punkte in einer raster- oder blütenförmigen Anordnung auf, um die Selektion von Einzelbildern zu ermöglichen.
5:04 GPS-Präzision und Android-Akkuranzprobleme: Der Entwickler dokumentiert systematische Koordinatenfehler von bis zu 5 Kilometern bei Android-Geräten (speziell Motorola Moto G Play 2023). Ohne aktiven Satelliten-Lock (GPS-Fix) schätzen diese Geräte die Position ungenau anhand von Mobilfunkzellen (Cell Tower Triangulation). iOS-Geräte weisen im Vergleich eine höhere native GPS-Präzision auf.
6:39 Workaround für GPS-Fix: Um den GPS-Empfänger des Android-Smartphones aktiv zu halten, wird das Ausführen einer stummen Routenführung im Hintergrund über Google Maps empfohlen. Dies erzwingt die kontinuierliche Satellitengeolokalisierung und verhindert fehlerhafte Funkzellen-Metadaten bei der Fotoaufnahme.
7:06 Hybrid-Kartenkopplung über APIs: Als Basis-Layer nutzt die Anwendung performante, aber detailarme OpenStreetMap-Kacheln (OSM). Über eine API-Schnittstelle lässt sich die exakte Kartenposition mit einem Klick in Google Maps (inklusive Satellitenbild- und Street-View-Modus) synchronisieren, um visuelle Verifizierungen vorzunehmen.
9:47 EXIF-Metadaten-Verlust: Das Einlesen der Geokoordinaten setzt intakte Metadaten voraus. Beim Filesharing über Social-Media-Plattformen oder E-Mail-Dienste werden die sensiblen EXIF-GPS-Header aus Datenschutz- und Kompressionsgründen standardmäßig unwiderruflich gelöscht. Der physische Direktimport oder Cloud-Dienste wie Dropbox erhalten die Metadaten.
10:19 Generierung des lokalen Datenindex: Der Indexierungsprozess erfolgt über eine webbasierte Utility (woodgeears.ca/gbspix). Über den Webbrowser (optimiert für Google Chrome aufgrund erweiterter lokaler Dateisystem-Berechtigungen) wird ein lokaler Ordner eingelesen. Das Skript generiert die Indexdatei GPS_tag.js sowie die lokalen Steuerungsdateien GPS.html und gather_GPS.html.
12:20 KI-gestütztes Software-Engineering: Der Code wurde mittels sequenziellem Prompting über das LLM Google Gemini generiert. Durch Beibehaltung des Kontextfensters über mehrere Revisionszyklen hinweg wurde ein stabiler Prototyp erzeugt. Der Entwickler empfiehlt einen manuellen Integrationsprozess (Copy-and-paste von Teilfunktionen) statt autonomer Agenten, um die kognitive Kontrolle und das vollständige Code-Verständnis zu wahren.
Glossar
API (Application Programming Interface): Eine Programmierschnittstelle, die es verschiedenen Softwareanwendungen ermöglicht, standardisiert Daten auszutauschen und Funktionen des jeweils anderen Systems zu nutzen (hier die Kopplung an Google Maps).
Cell Tower Triangulation (Mobilfunktriangulation): Ein Ortungsverfahren, bei dem die Position eines Endgeräts näherungsweise durch die Signalstärke und Distanz zu den umliegenden Mobilfunkmasten (Funkzellen) berechnet wird. Dies ist deutlich ungenauer als GPS.
EXIF-Metadaten (Exchangeable Image File Format): Standardisierte Metadaten, die direkt in Bilddateien (wie JPEGs) eingebettet sind. Sie enthalten technische Parameter wie Kameramodell, Belichtungszeit, Erstellungsdatum und optionale GPS-Koordinaten.
GIS (Geoinformationssystem): Ein System zur Erfassung, Bearbeitung, Organisation, Analyse und Präsentation geografischer Daten.
GPS-Fix: Der Zustand, in dem ein GPS-Empfänger erfolgreich Signale von mindestens vier Satelliten empfängt und daraus eine präzise dreidimensionale Position (Längengrad, Breitengrad, Höhe) berechnen kann.
Jitter-Algorithmus: Ein mathematisches Verfahren in der Datenvisualisierung, bei dem exakt übereinanderliegende Datenpunkte durch das minimale, künstliche Hinzufügen von Rauschen (Verschiebung) räumlich getrennt werden, um sie einzeln sichtbar zu machen.
Kubikwurzel-Skalierung (Cube Root Scaling): Eine mathematische Methode zur Volumenreduktion in der Visualisierung. Da das Volumen einer Kugel mit der dritten Potenz des Radius wächst, sorgt die Skalierung des Kreisradius mit der Kubikwurzel der Datenmenge dafür, dass die Kreisfläche auch bei extrem großen Werten visuell nicht die Karte dominiert.
LLM (Large Language Model): Ein großes, auf künstlicher Intelligenz basierendes Sprachmodell (wie Google Gemini), das darauf trainiert ist, menschenähnlichen Text und Programmcode zu verstehen, zu generieren und zu modifizieren.
OpenStreetMap (OSM): Ein freies Projekt, das für jedermann nutzbare geografische Daten sammelt, strukturiert und in Form von kostenfreien Landkarten-Kacheln (Tiles) zur Verfügung stellt.
Single-Page-Application (SPA): Eine Webanwendung, die aus einem einzigen HTML-Dokument besteht. Sie lädt beim Start alle notwendigen Ressourcen (HTML, CSS, JavaScript) und reagiert auf Benutzerinteraktionen dynamisch, ohne dass die Seite neu vom Server geladen werden muss.