GPS 정보를 String으로 변경 ( double -> stirng : 도,분,초 )

 public String ConvertTagGPSFormat(double coordinate)
 {
  String strlatitude = Location.convert(coordinate, Location.FORMAT_SECONDS);
  String[] arrlatitude = strlatitude.split(":");
  StringBuilder sb = new StringBuilder();
  sb.append(arrlatitude[0]);
  sb.append("/1,");
  sb.append(arrlatitude[1]);
  sb.append("/60,");
  sb.append(arrlatitude[2]);
  sb.append("/3600");
  return sb.toString();
   }

 

String 값을 double형으로 변경하기 (  stirng : 도,분,초 -> double )

public Float convertToDegree(String stringDMS)
 {
  Float result = null;
  try
  {
   stringDMS = stringDMS.replace("/1,", ":");
   stringDMS = stringDMS.replace("/60,", ":");
   stringDMS = stringDMS.replace("/3600", "");
   Double FloatS = Location.convert(stringDMS);
   
   result = new Float( (FloatS) );
  }
  catch (Exception e)
  {
   // TODO: handle exception
   Log.d("GPSManager ","convertToDegree :" + e.getMessage());
  }
  
  return result;
 } 

위에 두 함수를 이용하여 해당값으로 변경한 후 저장 및 읽기에 사용한다.

 

1. JPG 태그에 저장

GPSManager gpsManager = GPSManager.getInstance();
String strlatitude = gpsManager.ConvertTagGPSFormat(m_nlatitude);
String strlongtude = gpsManager.ConvertTagGPSFormat(m_nlongtitude);
   
 ExifInterface exif = new ExifInterface(strFullPath);
 exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, strlatitude );
 exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE,strlongtude );
 exif.saveAttributes();

 

저장할때는 도,분,초 형태로 구분된 String 타입을 사용한다.

 

2. JPG 태그로 부터 GPS정보 읽어오기

ExifInterface exif = new ExifInterface(file.getPath());
String strlatitude  = getTagString(ExifInterface.TAG_GPS_LATITUDE, exif);
String strlongtude  = getTagString(ExifInterface.TAG_GPS_LONGITUDE, exif);    

GPSManager gpsManager = GPSManager.getInstance();
double nlatitude  = gpsManager.convertToDegree(strlatitude);
double nlongtude = gpsManager.convertToDegree(strlongtude);

 

String으로 읽어온 후 double 형으로 변경하여 해당 GPS 정보를 사용하면 된다.

 

간단한 내용이지만, 인터넷에서 찾기 힘들어 이틀정도 헤맸다. 

신고


Posted by shinyryu09

카메라를 이용한 앱을 만들고 있었다.

9월7일 아침에 디자이어 프로요 정식롬 출시 소식을 듣고,

디자이어를 프로요로 업뎃 하였다.

 

업뎃 후 앱 api를 2.2로 변경 후 실행 하니, 카메라 프리뷰 화면이 왼쪽으로 90도 회전하여 나온다.

2.1에서는 정상적이였음.

 

인터넷 검색 결과...

갤럭시 S와 G1에서 같은 현상이 발생했던 글들이 보였다.

 

글을 보고 아래와 같이 카메라 파라미터를 수정해봤다.

parameter.set("orientation", "portrait");

 

결과는 동일... 90도 회전 되어 보인다.

 

다른 내용을 찾아 보았다.

Activity에서 화면을 전환시키는 방법을 발견 , 아래 코드를 적용해봤다.

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

LANDSCAPE 모드에서는 프리뷰 화면이 정상적으로 나온다...

 

혹시나 해서 PORTRAIT 로 바꾸면 정상적으로 나올까 하여..

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) 로 변경 해보았으나,

결과는 실패다...

 

PORTRAIT 에서 프리뷰를 정상적으로 보고 싶은데, 방법을 모르겠다.

신고


Posted by shinyryu09


티스토리 툴바