栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PHP提取GPS EXIF数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PHP提取GPS EXIF数据

根据http://en.wikipedia.org/wiki/Geotagging,

([0] => 46/1 [1] => 5403/100 [2] => 0/1 )
应表示46/1度,5403/100分钟,0/1秒,即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 formatfunction 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]);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/421706.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号