From 9e59062384c60e90e13e7b10363f963cf341bec2 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Mon, 18 Apr 2016 09:40:52 +0200 Subject: [PATCH] Syntax adjustments #518 --- php/Modules/Photo.php | 18 ++++++++++++------ php/helpers/getGPSCoordinate.php | 20 +++++++++++--------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/php/Modules/Photo.php b/php/Modules/Photo.php index e5043e2..dc4a9c7 100755 --- a/php/Modules/Photo.php +++ b/php/Modules/Photo.php @@ -789,40 +789,46 @@ final class Photo { // EXIF Metadata if ($exif!==false) { + // Orientation if (isset($exif['Orientation'])) $return['orientation'] = $exif['Orientation']; else if (isset($exif['IFD0']['Orientation'])) $return['orientation'] = $exif['IFD0']['Orientation']; + // ISO if (!empty($exif['ISOSpeedRatings'])) $return['iso'] = $exif['ISOSpeedRatings']; + // Aperture if (!empty($exif['COMPUTED']['ApertureFNumber'])) $return['aperture'] = $exif['COMPUTED']['ApertureFNumber']; + // Make if (!empty($exif['Make'])) $return['make'] = trim($exif['Make']); + // Model if (!empty($exif['Model'])) $return['model'] = trim($exif['Model']); + // Exposure if (!empty($exif['ExposureTime'])) $return['shutter'] = $exif['ExposureTime'] . ' s'; + // Focal Length if (!empty($exif['FocalLength'])) { if (strpos($exif['FocalLength'], '/')!==false) { $temp = explode('/', $exif['FocalLength'], 2); $temp = $temp[0] / $temp[1]; $temp = round($temp, 1); $return['focal'] = $temp . ' mm'; + } else { + $return['focal'] = $exif['FocalLength'] . ' mm'; } - else $return['focal'] = $exif['FocalLength'] . ' mm'; } + // Takestamp if (!empty($exif['DateTimeOriginal'])) $return['takestamp'] = strtotime($exif['DateTimeOriginal']); // Lens field from Lightroom if (!empty($exif['UndefinedTag:0xA434'])) $return['lens'] = trim($exif['UndefinedTag:0xA434']); - // Deal with GPS coordinates - if (!empty($exif['GPSLatitude']) && !empty($exif['GPSLatitudeRef'])) - $return['latitude'] = getGPSCoordinate($exif['GPSLatitude'], $exif['GPSLatitudeRef']); - if (!empty($exif['GPSLongitude']) && !empty($exif['GPSLongitudeRef'])) - $return['longitude'] = getGPSCoordinate($exif['GPSLongitude'], $exif['GPSLongitudeRef']); + if (!empty($exif['GPSLatitude']) && !empty($exif['GPSLatitudeRef'])) $return['latitude'] = getGPSCoordinate($exif['GPSLatitude'], $exif['GPSLatitudeRef']); + if (!empty($exif['GPSLongitude']) && !empty($exif['GPSLongitudeRef'])) $return['longitude'] = getGPSCoordinate($exif['GPSLongitude'], $exif['GPSLongitudeRef']); } diff --git a/php/helpers/getGPSCoordinate.php b/php/helpers/getGPSCoordinate.php index 2296725..93dab4c 100644 --- a/php/helpers/getGPSCoordinate.php +++ b/php/helpers/getGPSCoordinate.php @@ -5,24 +5,26 @@ * @return string Normalized coordinate as float number (degrees). */ function getGPSCoordinate($coordinate, $ref) { + $degrees = count($coordinate) > 0 ? formattedToFloatGPS($coordinate[0]) : 0; - $minutes = count($coordinate) > 1 ? formattedToFloatGPS($coordinate[1]) : 0; - $seconds = count($coordinate) > 2 ? formattedToFloatGPS($coordinate[2]) : 0; + $minutes = count($coordinate) > 1 ? formattedToFloatGPS($coordinate[1]) : 0; + $seconds = count($coordinate) > 2 ? formattedToFloatGPS($coordinate[2]) : 0; - $flip = ($ref == 'W' || $ref == 'S') ? -1 : 1; + $flip = ($ref == 'W' || $ref == 'S') ? -1 : 1; + + return $flip * ($degrees + (float)$minutes / 60 + (float)$seconds / 3600); - return $flip * ($degrees + (float)$minutes / 60 + (float)$seconds / 3600); } function formattedToFloatGPS($coordinate) { + $parts = explode('/', $coordinate, 2); - if (count($parts) <= 0) - return 0; - if (count($parts) == 1) - return $parts[0]; + if (count($parts) <= 0) return 0; + if (count($parts) == 1) return $parts[0]; + + return (float)$parts[0] / $parts[1]; - return (float)$parts[0] / $parts[1]; } ?> \ No newline at end of file