maps – PHP将Exif GPS数据转换为Google友好值
发布时间:2020-12-13 17:12:15 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试将Exif经度和纬度数据转换为Google友好的十进制值.我已经阅读了很多教程,但似乎没有什么对我有用.我可能完全错了. 我成功获得Exif数据如下: $exif_data = exif_read_data($path.’/ user / images / 4.jpg’); $egeoLong = $exif_data['GPSLongit
我正在尝试将Exif经度和纬度数据转换为Google友好的十进制值.我已经阅读了很多教程,但似乎没有什么对我有用.我可能完全错了.
我成功获得Exif数据如下: $exif_data = exif_read_data($path.’/ user / images / 4.jpg’); $egeoLong = $exif_data['GPSLongitude']; $egeoLat = $exif_data['GPSLatitude']; $egeoLongR = $exif_data['GPSLongitudeRef']; $egeoLatR = $exif_data['GPSLatitudeRef']; 从那里我最终得到以下数组的值: deg Long: 118/1 min Long: 2147/100 sec Long: 0/1 Longitude Ref: W deg Lat: 34/1 min Lat: 433/100 sec Lat: 0/1 Latitude Ref: N 我通过这个函数运行它们来获得一个十进制值(我在Stackoverflow上得到了这个函数). $geoLong = gpsDecimal($egeoLong[0],$egeoLong[1],$egeoLong[2],$egeoLongR); $geoLat = gpsDecimal($egeoLat[0],$egeoLat[1],$egeoLat[2],$egeoLatR); function gpsDecimal($deg,$min,$sec,$hemi) { $d = $deg+((($min*60)+($sec))/3600); return ($hemi=='S' || $hemi=='W') ? $d*=-1 : $d; } 返回以下内容……将坐标放在海洋中间…而不是我拍摄照片的地方. 纬度:41.216666666667 任何人都可以告诉我我做错了什么,或者更好的方法来实现这一目标.任何帮助深表感谢. 解决方法
我找到了相同的公式,它对我也没有用.我最终想到的,以及对我有用的是:
function toDecimal($deg,$hem) { $d = $deg + ((($min/60) + ($sec/3600))/100); return ($hem=='S' || $hem=='W') ? $d*=-1 : $d; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |