0

カメラで撮影した画像の経度と緯度を取得する必要があります。

@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);
}
}

このコードは機能しません。また、探しているものの例も見つかりません。私がしようとしている可能性はありますか?ありがとうございました。

4

1 に答える 1

1

コードは、返される実際の値ではなく、列のインデックスを取得しています。そのため、常に 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);
于 2012-10-15T23:07:31.280 に答える