Photo geotagué avec android
Salut,
Je travail sur une application android qui doit capturer les photos et placer les coordonnés gps du lieu de capture de la photo sur la photo.
J'arrive déja a prendre la photo et a prendre le coordonné gps. mais seulement je n'arrive pas a faire apparaitre les coordonnés gps sur la photo.
La methode pour ouvrire la camera est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| private void ouvrirCamera() {
try {
if (camera == null) {
camera = open();
camera.setDisplayOrientation(90);
Camera.Parameters parameters = camera.getParameters();
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
String focusMode = findValue(parameters.getSupportedFocusModes(),
parameters.FOCUS_MODE_AUTO,
parameters.FOCUS_MODE_MACRO);
if (focusMode != null) {
parameters.setFocusMode(focusMode);
}
Toast.makeText(CapturerPhoto.this, "latitude test dans ouvrirCamera = " + latitude + " et \nlogitude test = " + longitude, Toast.LENGTH_SHORT).show();
parameters.setGpsLatitude(latitude);
parameters.setGpsLongitude(longitude);
parameters.setRecordingHint(true);
camera.setParameters(parameters);
camera.lock();
//camera.startFaceDetection();
}
} catch (Exception e) {
int cameraId = getNumberOfCameras();
Log.w("cameraId", "" + cameraId);
camera = open(cameraId);
}
} |
et la methode qui s'execute lors de la capture de la photo est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| @Override
public void onPictureTaken(byte[] data, Camera camera) {
ContentValues values = new ContentValues();
values.put(MediaStore.Audio.Media.TITLE, "Mon image");
values.put(MediaStore.Images.Media.DESCRIPTION, "Image prise par le téléphone");
getCoord();
values.put(MediaStore.Images.ImageColumns.LATITUDE, latitude);
values.put(MediaStore.Images.ImageColumns.LONGITUDE, longitude);
Toast.makeText(CapturerPhoto.this, "latitude test = " + latitude + " et \nlogitude test = " + longitude, Toast.LENGTH_SHORT).show();
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
OutputStream os;
try {
os = getContentResolver().openOutputStream(uri);
os.write(data);
Main2Activity.instance.setImageView(uri);
os.flush();
os.close();
} catch (FileNotFoundException e) {
Log.e(getClass().getSimpleName(), "Fichier non trouvé à lécriture de limage", e);
} catch (IOException e) {
Log.e(getClass().getSimpleName(), "Erreur E/S à lenregistrement de limage", e);
}
try {
camera.startPreview();
} catch (Exception e) {
e.printStackTrace();
}
} |