如何知道图像的地理位置(十进制格式)

How to know the Geo Location(decimal degree format) of an Image

有没有以十进制格式获取图像经纬度的最简单方法?

$exif = exif_read_data($photos['file_path'],0, true, false);
                        print_r($exif); 

我得到了什么:

   [GPS] => Array
        (
            [GPSLatitudeRef] => N
            [GPSLatitude] => Array
                (
                    [0] => 13/1
                    [1] => 57/1
                    [2] => 1032/100
                )

            [GPSLongitudeRef] => E
            [GPSLongitude] => Array
                (
                    [0] => 121/1
                    [1] => 9/1
                    [2] => 5137/100
                )

            [GPSAltitudeRef] => 
            [GPSAltitude] => 344/1
            [GPSTimeStamp] => Array
                (
                    [0] => 10/1
                    [1] => 12/1
                    [2] => 5292/100
                )

            [GPSSpeedRef] => K
            [GPSSpeed] => 0/1
            [GPSImgDirectionRef] => T
            [GPSImgDirection] => 32993/102
            [GPSDestBearingRef] => T
            [GPSDestBearing] => 75030/523
            [GPSDateStamp] => 2015:07:28
        )

这里有人可以帮我把这些东西转换成十进制格式吗?

看起来 GPSLatitude[0] 是度数,GPSLatitude[1] 是分钟,GPSLatitude[2] 是秒等等,但编码为 'whole number' / 'denominator'

下面是一些进行计算的代码:

$exif = exif_read_data("your-image-file-with-GPS-exif-data.JPG",0, true, false);
if (isset($exif['GPS'])) {
    $longitude_array = $exif['GPS']['GPSLongitude'];
    $latitude_array = $exif['GPS']['GPSLatitude'];
} else {
    die("no exif GPS");
}

function GPScalc($string) { // function to calculate the EXIF encoded string
    $GPSparts = explode("/",$string);
    return $GPSparts[0] / $GPSparts[1];
}

function GPSdec($GPSarray) { // function to put the exif parts together to decimal degrees
    return GPScalc($GPSarray[0]) + 
           GPScalc($GPSarray[1])/60 + 
           GPScalc($GPSarray[2])/3600;
}

$longitude_decimal_degree=GPSdec($longitude_array);
$latitude_decimal_degree=GPSdec($latitude_array);

print "Longitude = $longitude_decimal_degree , Latitude = $latitude_decimal_degree";

这将输出如下内容:

Longitude = 1.632425 , Latitude = 53.297658333333