最近在做一个功能,需要获取图片的拍摄时的地理位置信息,经纬度 我一直想找怎样把经纬度直接存放到文件信息里面去,不然太难维护一一对应的这些信息了,最后终于被我找到了,那就是伟大的图片扩展信息
EXIF
设置EXIF
ExifInterface exif=new ExifInterface(path);
//设置经纬度,TAG是可以自定义的
if(droneLatitude!=0||droneLongitude!=0) {
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, droneLongitude + "");
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, droneLatitude + "");
}
exif.saveAttributes();
以上是设置GPS 经度和纬度的值,path为图片的地址信息
获取EXIF
String longitude = exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE);
String latitude= exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE);
<font color=#0099ff>注意此时获取到的字符串跟我们设置时有些不一样,经纬度可能已经被封装到一个字符串中,可以debug查看该字符串然后提取经纬度值</font>
String time=exif.getAttribute(ExifInterface.TAG_DATETIME);
String model=exif.getAttribute(ExifInterface.TAG_MODEL);
String iso=exif.getAttribute(ExifInterface.TAG_ISO);
目前封装好的TAG有以下几种
-
TAG_DATETIME 时间日期
-
TAG_FLASH 闪光灯
-
TAG_GPS_LATITUDE 纬度
-
TAG_GPS_LATITUDE_REF 纬度参考
-
TAG_GPS_LONGITUDE 经度
-
TAG_GPS_LONGITUDE_REF 经度参考
-
TAG_IMAGE_LENGTH 图片长
-
TAG_IMAGE_WIDTH 图片宽
-
TAG_MAKE 设备制造商
-
TAG_MODEL 设备型号
-
TAG_ORIENTATION 方向
-
TAG_WHITE_BALANCE 白平衡
-
TAG_ISO 感光度
-
TAG_EXPOSURE_TIME曝光时间