In my own case; I have no digital camera with GPS, but I have a GPS logger. The GPS info can be added into JPG file using GPicSync. But it's in the format of degree, minute, second, not GeoPoint form, as I used in my Mapper exercise. So I have to convert it by myself.

Here I create a class geoDegree to handle the conversion from degree, minute, second form to GeoPoint form.
package com.AndroidExplorer;
import android.media.ExifInterface;
public class geoDegree {
private boolean valid = false;
Float Latitude, Longitude;
geoDegree(ExifInterface exif){
 String attrLATITUDE = exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE);
 String attrLATITUDE_REF = exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE_REF);
 String attrLONGITUDE = exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE);
 String attrLONGITUDE_REF = exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF);
 if((attrLATITUDE !=null)
   && (attrLATITUDE_REF !=null)
   && (attrLONGITUDE != null)
   && (attrLONGITUDE_REF !=null))
 {
  valid = true;
 
  if(attrLATITUDE_REF.equals("N")){
   Latitude = convertToDegree(attrLATITUDE);
  }
  else{
   Latitude = 0 - convertToDegree(attrLATITUDE);
  }
 
  if(attrLONGITUDE_REF.equals("E")){
   Longitude = convertToDegree(attrLONGITUDE);
  }
  else{
   Longitude = 0 - convertToDegree(attrLONGITUDE);
  }
 
 }
};
private Float convertToDegree(String stringDMS){
 Float result = null;
 String[] DMS = stringDMS.split(",", 3);
 String[] stringD = DMS[0].split("/", 2);
    Double D0 = new Double(stringD[0]);
    Double D1 = new Double(stringD[1]);
    Double FloatD = D0/D1;
 String[] stringM = DMS[1].split("/", 2);
 Double M0 = new Double(stringM[0]);
 Double M1 = new Double(stringM[1]);
 Double FloatM = M0/M1;
  
 String[] stringS = DMS[2].split("/", 2);
 Double S0 = new Double(stringS[0]);
 Double S1 = new Double(stringS[1]);
 Double FloatS = S0/S1;
  
    result = new Float(FloatD + (FloatM/60) + (FloatS/3600));
  
 return result;
};
public boolean isValid()
{
 return valid;
}
@Override
public String toString() {
 // TODO Auto-generated method stub
 return (String.valueOf(Latitude)
   + ", "
   + String.valueOf(Longitude));
}
public int getLatitudeE6(){
 return (int)(Latitude*1000000);
}
public int getLongitudeE6(){
 return (int)(Longitude*1000000);
}
}
In a short comming, I will have a exercise to open a MapView locate the GPS location of a photo.
Thank you for reading this article Convert Exif GPS info to Degree format With URL https://x-tutorials.blogspot.com/2010/01/convert-exif-gps-info-to-degree-format.html. Also a time to read the other articles.
0 comments:
Write your comment for this article Convert Exif GPS info to Degree format above!