安卓图片Exif中存储的经纬度的转换
来源:互联网 发布:美国博士申请条件 知乎 编辑:程序博客网 时间:2024/05/21 11:17
1、 了解系统相机中 安卓图片Exif中存储的经纬度 的格式 , exif中GPS格式 是 DMS格式
取值方式如下:
String lon = exifInterface.getAttribute(ExifInterface.TAG_GPS_LONGITUDE);
String lat = exifInterface.getAttribute(ExifInterface.TAG_GPS_LATITUDE);
结果如下: 这种度分秒格式的 经纬度 称为 DMS 格式, D(degree)为度、M(minute)为分、S(second)
lon = 114/1,23/1,538331/10000
lat = 30/1,28/1,434171/10000
DMS 与我们 通常使用的 百度地图定位 里 得到 double类型的 经纬度 如何 转换呢!
DMS 转换成 DD格式:
/** * 度分秒 格式 的经纬度 转换成 double类型的经纬度 * Created by meikai on 2017/09/19. */public class LatLonRational2FloatConverter { /** * @param rationalString 度分秒格式的经纬度字符串,形如: 114/1,23/1,538547/10000 或 30/1,28/1,432120/10000 * @param ref 东西经 或 南北纬 的标记 S南纬 W西经 * @return double格式的 经纬度 */ public float convertRationalLatLonToFloat(String rationalString, String ref) { if (StringUtils.isEmpty(rationalString) || StringUtils.isEmpty(ref)) { return 0; } try { String[] parts = rationalString.split(","); String[] pair; pair = parts[0].split("/"); double degrees = parseDouble(pair[0].trim(), 0) / parseDouble(pair[1].trim(), 1); pair = parts[1].split("/"); double minutes = parseDouble(pair[0].trim(), 0) / parseDouble(pair[1].trim(), 1); pair = parts[2].split("/"); double seconds = parseDouble(pair[0].trim(), 0) / parseDouble(pair[1].trim(), 1); double result = degrees + (minutes / 60.0) + (seconds / 3600.0); if (("S".equals(ref) || "W".equals(ref))) { return (float) -result; } return (float) result; } catch (NumberFormatException e) { return 0; } catch (ArrayIndexOutOfBoundsException e) { return 0; } catch (Throwable e) { return 0; } } private static double parseDouble(String doubleValue, double defaultValue) { try { return Double.parseDouble(doubleValue); } catch (Throwable t) { return defaultValue; } }}
DD格式转换成 DMS格式:
/** * 将gps的经纬度变成度分秒 */public static String degressToString(double digitalDegree) { double num = 60; int degree = (int) digitalDegree; double tmp = (digitalDegree - degree) * num; int minute = (int) tmp; int second = (int) (10000 * (tmp - minute) * num); return degree + "/1," + minute + "/1," + second + "/10000";}
阅读全文
0 0
- 安卓图片Exif中存储的经纬度的转换
- 安卓经纬度转换
- 如何将地图SDK中获取到的经纬度信息写入到exif中
- 获取图片的exif信息
- jpeg图片的exif信息
- 图片 EXIF 信息中旋转参数 Orientation 的理解
- 终于解决图片的exif信息在liunx下存储后乱码的问题
- PHP 取得刷么照片EXIF中GPS的经纬度,并根据GPS进行GOOGLE地图定位
- 用C#读取图片的EXIF信息
- 获取图片的EXIF信息如此困难?
- java 读取图片的 Exif 数据
- flex获取图片的EXIF信息
- C# 获取图片的EXIF 信息
- 使用ImageIO保留EXIF信息的图片
- Android读取图片当中的信息exif
- Android修改图片的Exif信息
- C#图片处理之:保存原始Exif到处理过的JPEG图片中
- 利用图片中的exif元数据批量查找图片中所包含的GPS信息
- curl
- C#学习总结
- Onvif开发之代码框架生成篇
- Dos命令初阶--文件拷贝
- android 四大组件
- 安卓图片Exif中存储的经纬度的转换
- HTTP和HTTPS详解
- iOS 11 及 iPhoneX 适配知识
- 在mac上安装Xgboost Python库
- MQ消息队列
- 努比亚,国产手机中的垃圾机
- __declspec(noreturn)使用
- Android Studio错误 (持续更新中三。关于点9图问题)
- (树)687. Longest Univalue Path