web 2.0

PHP: GEO-Tags/GPS (exif) aus Photos extrahieren

Online Solution Int - Webentwicklung

Php in PHP: GEO-Tags/GPS (exif) aus Photos extrahierenVerfügt eine Bilddatei exif-Daten inkl. GPS bzw. GEO-Tags, so können wir diese parsen und auslesen. Wer sich nur für die Koordinaten interessiert, kann meine Funktion direkt übernehmen. Als Parameter ist lediglich der Pfad zur lokal-gespeicherten Datei erforderlich. Dadurch kann sie auch für Uploads von Bildern angewendet werden. Um die exif/GEO-Tags für anderswo gehostete Dateien, die wir über den absoluten Pfad http://… ansprechen, anzuwenden, müsste die kommentierte file_exist() Überprüfung abgestellt werden.

Hier kommt die Funktion:

function extract_exif_geotags_coordinates($local_filename)

{

	if(file_exists($local_filename))//check this only with local files

	{

		$exif=@exif_read_data($local_filename,0,true);

		if(!$exif)

			return 0;//error: unupported/no exif info found...

		if(@$exif['GPS']['GPSLongitude'][0])//check only one - should be enough

		{

			$lon=intval(($exif['GPS']['GPSLongitude'][0]+$exif['GPS']['GPSLongitude'][1]+$exif['GPS']['GPSLongitude'][2])/60);

			$lonref=$exif['GPS']['GPSLongitudeRef'];

			if($lonref=='W')

				$lon=-$lon;

			$lat=intval(($exif['GPS']['GPSLatitude'][0]+$exif['GPS']['GPSLatitude'][1]+$exif['GPS']['GPSLatitude'][2])/60);

			$latref=$exif['GPS']['GPSLatitudeRef'];

			if($latref=='S')

				$lat=-$lat;

			return $lat.','.$lon;//return coordinates

		}

	}
	else

	{

		return 0;//error: file does not exist

	}

}

Leave a Reply