在PHP中将Degree,Minute,Second(DMS)转换为Decimal并不完全正确

时间:2014-08-07 22:14:26

标签: php gps decimal latitude-longitude dms

我已经看到了这个问题的几个解决方案,但所有这些都是不正确的。 我从照片中获得了这张GPS数据:

Latitude:
47/1
5/1
33927/1000

Longitude:
17/1
54/1
44513/1000

我已使用此公式获取小数点坐标:Degrees = D + ((S/60)+M)/60

结果是:47.084722222222 , 17.915 但根据谷歌的转换器,它应该是47.092758 , 17.912365

这个小差异意味着半个城市。

在PHP中:

$exif = exif_read_data('temporary/' . $_FILES['photo']['name']);
        //LONGITUDE
        $degLong = explode('/', $exif['GPSLongitude'][0]);
        $minLong = explode('/', $exif['GPSLongitude'][1]);
        $secLong = explode('/', $exif['GPSLongitude'][2]);

        $longitude = ($degLong[0]/$degLong[1]) + (($minLong[0]/$minLong[1])/60) + (($minLong[0]/$minLong[1])/60)/60 ; 

        //LATITUDE
        $degLat = explode('/', $exif['GPSLatitude'][0]);
        $minLat = explode('/', $exif['GPSLatitude'][1]);
        $secLat = explode('/', $exif['GPSLatitude'][2]);

        $latitude = ($degLat[0]/$degLat[1]) + (($minLat[0]/$minLat[1])/60) + (($minLat[0]/$minLat[1])/60)/60 ; 

我错过了什么?

0 个答案:

没有答案