我有以下代码从图像中提取和显示 EXIF 信息。
<?
// +++++++++++++++++++++++++ //
// +++++++ GPS EXIF +++++++ //
// +++++++++++++++++++++++++ //
// --- Change the image1.jpg value below to the path of your file. --- //
$Image = image1.jpg ;
// --- The EXIF read command --- //
$ReadEXIFData = read_exif_data($Image, 0, true);
// +++++++++++++++++ //
// +++ FILE INFO +++ //
// +++++++++++++++++ //
// --- Get the filename --- //
$Filename = $ReadEXIFData[ FILE ][ FileName ];
// --- Get the file size --- //
$FileSize = $ReadEXIFData[ FILE ][ FileSize ];
// --- Converts to user-friendly kb, mb and gb sizes --- //
if ($FileSize >= 1024) { $ImageFileSize = number_format($FileSize / 1024, 2). kb ; }
elseif ($FileSize >= 1048576) { $ImageFileSize = number_format($FileSize / 1048576, 2). mb ; }
elseif ($FileSize >= 1073741824) { $ImageFileSize = number_format($FileSize / 1073741824, 2). gb ; }
// --- Get the file height --- //
$FileHeight = $ReadEXIFData[ COMPUTED ][ Height ]. px ;
// --- Get the file height --- //
$FileWidth = $ReadEXIFData[ COMPUTED ][ Width ]. px ;
// +++++++++++++++++++++++ //
// +++ GPS COORDINATES +++ //
// +++++++++++++++++++++++ //
// --- Get GPS hemisphire --- //
$GPSHemisphire = $ReadEXIFData["GPS"]["GPSLatitudeRef"];
// --- Get GPS degrees latitude --- //
$GPSDegreesLat = intval($ReadEXIFData["GPS"]["GPSLatitude"][0]);
// --- Get GPS minutes latitude --- //
$GPSMinutesLat = intval($ReadEXIFData["GPS"]["GPSLatitude"][1]);
// --- Get GPS seconds latitude --- //
$GPSSecondsLat = intval($ReadEXIFData["GPS"]["GPSLatitude"][2]);
// --- Get GPS Hemisphere latitude --- //
$GPSSecondsLat2 = ($ReadEXIFData["GPS"]["GPSLatitudeRef"]);
// --- Decimal Latitude goes here --- //
// --- Get GPS degrees longitude --- //
$GPSDegreesLon = intval($ReadEXIFData["GPS"]["GPSLongitude"][0]);
// --- Get GPS minutes longitude --- //
$GPSMinutesLon = intval($ReadEXIFData["GPS"]["GPSLongitude"][1]);
// --- Get GPS seconds longitude --- //
$GPSSecondsLon = intval($ReadEXIFData["GPS"]["GPSLongitude"][2]);
// --- Get GPS Hemisphere longitude --- //
$GPSSecondsLon2 = ($ReadEXIFData["GPS"]["GPSLongitudeRef"]);
// --- Decimal Longitude goes here --- //
// --- Get GPS altitude --- //
$GPSAltitude = $ReadEXIFData["GPS"]["GPSAltitude"][0];
?>
信息然后印在html页面上,请看http://ukf.com/siaexif/seaexif3.php 。
问题在于,返回的全球定位系统坐标在度/分/秒之间。
要将它们转换为十进制, 我有这个脚本 :
function toDecimal($deg, $min, $sec, $hemi) {
$d = $deg + $min/60 + $sec/3600;
return ($hemi== S || $hemi== W ) ? $d*=-1 : $d;
}
function divide($a) {
$e = explode( / , $a);
if (!$e[0] || !$e[1]) {
return 0;
} else {
return $e[0] / $e[1];
}
}
function getGPS() {
global $exif;
if ($exif) { $lat = $exif[ GPS ][ GPSLatitude ];
$log = $exif[ GPS ][ GPSLongitude ];
if (!$lat || !$log) return null;
$lat_degrees = divide($lat[0]);
$lat_minutes = divide($lat[1]);
$lat_seconds = divide($lat[2]);
$lat_hemi = $exif[ GPS ][ GPSLatitudeRef ];
$log_degrees = divide($log[0]);
$log_minutes = divide($log[1]);
$log_seconds = divide($log[2]);
$log_hemi = $exif[ GPS ][ GPSLongitudeRef ];
$lat_decimal = toDecimal($lat_degrees, $lat_minutes, $lat_seconds, $lat_hemi);
$log_decimal = toDecimal($log_degrees, $log_minutes, $log_seconds, $log_hemi);
return array($lat_decimal, $log_decimal);
} else{
return null;
}
}
我需要的是十进制的逻辑和纬度
$GPSDECLON
$GPSDECLAT
这样我就可以把以上信息 放到我的 html 页面上。
我的PHP知识目前非常有限, 我不知道该如何将我现有的脚本转换成我现有的脚本。
有人能帮忙吗?