Hauptmenü

Werkzeuge

Kategorien

Archiv

Längen und Breitengrad als FLOAT Werte aus EXIF Daten

Erstellt in PHP am 2. Januar 2015 vom Daschmi

Um mittels PHP die Längen- und Breitengrade aus einer Datei mit EXIF Metadaten zu extrahieren, können folgende Funktionen verwendet werden:

    function ds_gps2Num($coord)
{

$arParts = explode(‚/‘, $coord);

if (sizeof($arParts) <= 0) return 0;
else if (sizeof($arParts) == 1) return $arParts[0];
else return (floatval($arParts[0]) / floatval($arParts[1]));

}

function ds_getGps($exifCoord, $h)
{

$deg = ((sizeof($exifCoord) > 0)?ds_gps2Num($exifCoord[0]):0);
$min = ((sizeof($exifCoord) > 1)?ds_gps2Num($exifCoord[1]):0);
$sec = ((sizeof($exifCoord) > 2)?ds_gps2Num($exifCoord[2]):0);

return (($h == ‚W‘ || $h == ‚S‘)?-1:1) * ($deg + $min / 60 + $seconds / 3600);

}

Der Aufruf erfolgt dann beispielsweise so:

$exif = exif_read_data($filepath, ‚ANY_TAG‘);
$image_longitude = ds_getGps($exif["GPSLongitude"], $exif[‚GPSLongitudeRef‘]);
$image_latitude = ds_getGps($exif["GPSLatitude"], $exif[‚GPSLatitudeRef‘]);