php 取得图片gps,PHP提取GPS EXIF数据

根据

http://en.wikipedia.org/wiki/Geotagging,([0] => 46/1 [1] => 5403/100 [2] => 0/1)应该表示46/1度,5403/100分钟,0 /即46°54.03’0“N。归一化秒给出46°54’1.8“N。

下面的代码应该工作,只要你没有得到负坐标(假设你得到N / S和E / W作为一个单独的坐标,你不应该有负坐标)。让我知道如果有一个错误(我目前没有一个PHP环境方便)。

//Pass in GPS.GPSLatitude or GPS.GPSLongitude or something in that format

function getGps($exifCoord)

{

$degrees = count($exifCoord) > 0 ? gps2Num($exifCoord[0]) : 0;

$minutes = count($exifCoord) > 1 ? gps2Num($exifCoord[1]) : 0;

$seconds = count($exifCoord) > 2 ? gps2Num($exifCoord[2]) : 0;

//normalize

$minutes += 60 * ($degrees - floor($degrees));

$degrees = floor($degrees);

$seconds += 60 * ($minutes - floor($minutes));

$minutes = floor($minutes);

//extra normalization, probably not necessary unless you get weird data

if($seconds >= 60)

{

$minutes += floor($seconds/60.0);

$seconds -= 60*floor($seconds/60.0);

}

if($minutes >= 60)

{

$degrees += floor($minutes/60.0);

$minutes -= 60*floor($minutes/60.0);

}

return array('degrees' => $degrees, 'minutes' => $minutes, 'seconds' => $seconds);

}

function gps2Num($coordPart)

{

$parts = explode('/', $coordPart);

if(count($parts) <= 0)// jic

return 0;

if(count($parts) == 1)

return $parts[0];

return floatval($parts[0]) / floatval($parts[1]);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值