0

카메라로 촬영 한 이미지의 위도와 경도를 픽업해야합니다.이미지 카메라에서 위도와 경도를 얻으십시오. Android

@Override 
     public void onClick(View v) { 

      Intent i= new Intent("android.media.action.IMAGE_CAPTURE"); 
      startActivityForResult(i,TAKE_PHOTO); 
     } 

@Override 

protected void onActivityResult(int requestCode, int resultCode,Intent data){ 
super.onActivityResult(requestCode,resultCode,data); 

switch(requestCode){ 
case TAKE_PHOTO: 

    Bitmap imagen =(Bitmap) data.getExtras().get("data"); 
    Uri seleccion = (Uri) data.getExtras().get("uri"); 
    TextView jjj = (TextView) findViewById(R.id.comentarios); 
    String [] fotoProyeccion ={MediaStore.Images.ImageColumns.LATITUDE,MediaStore.Images.ImageColumns.LONGITUDE}; 

    fotoDatos =Media.query(getBaseContext().getContentResolver(), seleccion, fotoProyeccion); 

    int latt = fotoDatos.getColumnIndex (MediaStore.Images.ImageColumns.LATITUDE); 
    int longi= fotoDatos.getColumnIndex(MediaStore.Images.ImageColumns.LONGITUDE); 
    String resultado = String.valueOf(latt)+"---"+String.valueOf(longi); 

    jjj.setText(resultado); 
} 
} 

이 코드는 작동하지 않습니다. 내가 뭘 찾고 있는지도 모르는 경우가 있습니다. 내가 노력할 가능성이 있니?. 고맙습니다.

답변

1

코드에 retred 값이 아닌 열 인덱스가 표시됩니다. 그래서 항상 0과 1을 얻습니다. 또한 좌표는 int가 아닙니다.

// Query MediaStore 
fotoDatos =Media.query(getBaseContext().getContentResolver(), seleccion, fotoProyeccion); 

// Get the columns 
int latcol = fotoDatos.getColumnIndex (MediaStore.Images.ImageColumns.LATITUDE); 
int loncol = fotoDatos.getColumnIndex(MediaStore.Images.ImageColumns.LONGITUDE); 

// Fetch first row 
fotoDatos.moveToFirst(); 

// Get the actual values returned 
double latval = fotoDatos.getDouble(latcol); 
double lonval = fotoDatos.getDouble(loncol); 

String resultado = String.valueOf(latval)+"---"+String.valueOf(lonval); 
:

올바른 코드는 다음과 같이 보입니다

관련 문제