最近在做一个功能,需要获取图片的拍摄时的地理位置信息,经纬度 我一直想找怎样把经纬度直接存放到文件信息里面去,不然太难维护一一对应的这些信息了,最后终于被我找到了,那就是伟大的图片扩展信息
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);
注意此时获取到的字符串跟我们设置时有些不一样,经纬度可能已经被封装到一个字符串中,可以debug查看该字符串然后提取经纬度值
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曝光时间