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/
- roteee's blog
- Log in or register to post comments
- 220 reads
Recent comments