Geodaten

GPS Koordinaten eines Fotos auf Webseite anzeigen

Orchidee
Geographische Breite: 52 Grad, 25 Minuten, 48 Sekunden und 699 Millisekunden N.
Geographische Länge: 13 Grad, 15 Minuten, 48 Sekunden und 711 Millisekunden E.

Geodaten

Dieses Foto wurde mit einem Samsung Smartphone aufgenommen, bei dem unter den Kamera-Einstellungen "Geotagging" aktiviert wurde. Somit werden diese Metadaten im 
"Exchangeable Image File Format" (Exif) mit eingetragen. 

Vielen Dank für dieses Skript an:

Werner-Zenk.de

Guckt Euch auch dieses Skript von CodexWorld an, bei dem zusätzlich eine Anzeige der Koordinaten mittels Google Maps erklärt wird. Ich habe hier lediglich die ausgelesenen Koordinaten in einem für Google gültigen Format in die Karte eingegeben:
52°25'48.6"N 13°15'48.7"E


Hier das PHP-Script zum Auslesen der Geodaten eines Fotos:

Bitte passt noch den Pfad zum Foto an, das bei mir hier in einem Verzeichnis "images" liegt, welches seinerseits im gleichen Verzeichnis wie diese Seite hier liegt. Das Foto der Orchidee habe ich mit meinem FTP-Programm in dieses Verzeichnis auf den Server kopiert, da die Exif-Daten durch die Bild-Optimierung von Mobirise verloren gehen. Die Seite müsst Ihr natürlich in den Seiteneinstellungen bei "URL der Seite" auf die Dateierweiterung .php stellen, damit PHP überhaupt am Server ausgeführt werden kann. Lokal kann PHP nicht dargestellt werden, wenn Ihr keinen lokalen Host wie z.B. XAMPP installiert habt. Dann habe ich dieses gesamte Script in einen <div> Bereich </div> unter das Foto kopiert. Die Popup Box, beim Klick auf das Foto, habe ich mit dem Popup Builder von Mobirise erstellt.


<div>
  <?php
    // Script von Werner-Zenk.de vom 02.02.2020
    $bild = "./images/Orchidee.jpg";
    if (exif_read_data($bild, 'IFD0')) {
        $exif = exif_read_data($bild, 0, true);
        // Geographische Breite
        $lat = $exif['GPS']['GPSLatitudeRef'];
        $latDegrees = $exif['GPS']['GPSLatitude'][0];
        $latMinutes = $exif['GPS']['GPSLatitude'][1];
        $latSec = $exif['GPS']['GPSLatitude'][2];
        list($latDegrees) = explode("/", $latDegrees);
        list($latMinutes) = explode("/", $latMinutes);
        $latSeconds = substr($latSec , 0, 2);
        $latMilliseconds = substr($latSec , 2, 3);
        echo 'Geographische Breite: ' . $latDegrees . ' Grad, ' . $latMinutes . ' Minuten, ' . $latSeconds . ' Sekunden und ' . $latMilliseconds . ' Millisekunden ' . $lat . '.<br>';
        // Geographische Länge
        $long = $exif['GPS']['GPSLongitudeRef'];
        $longDegrees = $exif['GPS']['GPSLongitude'][0];
        $longMinutes = $exif['GPS']['GPSLongitude'][1];
        $longSec = $exif['GPS']['GPSLongitude'][2];
        list($longDegrees) = explode("/", $longDegrees);
        list($longMinutes) = explode("/", $longMinutes);
        $longSeconds = substr($longSec , 0, 2);
        $longMilliseconds = substr($longSec , 2, 3);
        echo 'Geographische Länge: ' . $longDegrees . ' Grad, ' . $longMinutes . ' Minuten, ' . $longSeconds . ' Sekunden und ' . $longMilliseconds . ' Millisekunden ' . $long . '.<br>';
    }
  ?>
</div>