Android将地理位置存储到图片扩展信息EXIF

最近在做一个功能,需要获取图片的拍摄时的地理位置信息,经纬度
我一直想找怎样把经纬度直接存放到文件信息里面去,不然太难维护一一对应的这些信息了,最后终于被我找到了,那就是伟大的图片扩展信息

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曝光时间

你可能感兴趣的:(android开发)