Convert Exif 'GPSLatitude' และ 'GPSLongitude' เป็น lat, lng เพื่อ นำไปปักหมุดใน Google Maps

ปัจจุบันภาพถ่ายจากกล้องในมือถือที่มีระบบ GPS มีอยู่จำนวนมาก และส่วนมากก็จะสามารถระบุข้อมูลพิกัด ตำแหน่งที่ถ่ายภาพมาในภาพถ่ายได้เลย (Geotagging) ซึ่งข้อมูลเหล่านี้จะเก็บอยู่ใน meta data ของภาพที่เรียกว่า "Exif - Exchangeable image file format"

วิธีการแตกเอาค่าพิกัดจาก Exif มาเพื่อใช้งาน เช่น แตกออกมาแล้ว convert ข้อมูลเป็น latitude, longitude เพื่อนำไปปักหมุดบน Google map  สามารถทำได้ประมาณนี้ครับ

<?php
	$rawExif = exif_read_data($imgName);
	
	if (isset($rawExif['GPSLatitude'])) {
		eval('$degree = $rawExif["GPSLatitude"][0];');
		eval('$mins   = $rawExif["GPSLatitude"][1];');
		eval('$secs   = $rawExif["GPSLatitude"][2];');
		$lat = $degree + ( $mins / 60 ) + ( $secs / 3600 ); 
		
		if ($rawExif['GPSLatitudeRef'] == 'S') {
			$lat = (-1) * $lat;
		}

		eval('$degree = $rawExif["GPSLongitude"][0];');
		eval('$mins   = $rawExif["GPSLongitude"][1];');
		eval('$secs   = $rawExif["GPSLongitude"][2];');
		$lng = $degree + ( $mins / 60 ) + ( $secs / 3600 ); 
		
		if ($rawExif['GPSLongitudeRef'] == 'W') {
			$lng = (-1) * $lng;
		}
		echo "$lat, $lng";
	}
	
?>

สุดท้ายจะได้ค่า lat, lng และนำไปปักหมุดใน Google Map ได้ทันที

ที่มา: http://andrew.hedges.name/experiments/convert_lat_long/