Reputation: 4232
I am trying to add geo tag to an Image after I captured it from camera by using the following code, but the location is tagging to the image after restarting the device.
What did I do wrong?
Can some on help me please.
private void onCaptureImageResult(Intent data) {
try {
File selectedFile = new File(Utilities.getRealPathFromURI(imageUri,getActivity()));
geoTag(selectedFile.getAbsolutePath(), latitude,longitude);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
public void geoTag(String filename, double latitude, double longitude){
ExifInterface exif;
try {
exif = new ExifInterface(filename);
int num1Lat = (int)Math.floor(latitude);
int num2Lat = (int)Math.floor((latitude - num1Lat) * 60);
double num3Lat = (latitude - ((double)num1Lat+((double)num2Lat/60))) * 3600000;
int num1Lon = (int)Math.floor(longitude);
int num2Lon = (int)Math.floor((longitude - num1Lon) * 60);
double num3Lon = (longitude - ((double)num1Lon+((double)num2Lon/60))) * 3600000;
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, num1Lat+"/1,"+num2Lat+"/1,"+num3Lat+"/1000");
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, num1Lon+"/1,"+num2Lon+"/1,"+num3Lon+"/1000");
if (latitude > 0) {
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE_REF, "N");
} else {
exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE_REF, "S");
}
if (longitude > 0) {
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF, "E");
} else {
exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE_REF, "W");
}
exif.saveAttributes();
} catch (IOException e) {
Log.e("PictureActivity", e.getLocalizedMessage());
}
}
Upvotes: 2
Views: 36