public class Main extends AppCompatActivity {
GeoVariable geovariable = new GeoVariable(); // 클래스 변수 사용 위해
Geocoder geocoder; // 역지오코딩 하기 위해
double latitude, longitube; // 위도, 경도 전역변수
TextView onWhere; // 현재위치 출력위해
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
latitude = geovariable.getLatitude(); // 위도 경도 클래스변수에서 가져옴
longitube = geovariable.getLongitube();
geocoder = new Geocoder(this); // 역지오코딩 하기 위해
onWhere = (TextView)findViewById(R.id.onWhere);
reverseCoding(); // 역지오코딩 주소값 onWhere 텍스트뷰에 대입
}
public void reverseCoding(){ // 위도 경도 넣어가지구 역지오코딩 주소값 뽑아낸다
List<Address> list = null;
try {
list = geocoder.getFromLocation(latitude, longitube, 10); // 위도, 경도, 얻어올 값의 개수
} catch (IOException e) {
e.printStackTrace();
Log.e("test", "입출력 오류 - 서버에서 주소변환시 에러발생");
}
if (list != null) {
if (list.size()==0) {
onWhere.setText("해당되는 주소 정보는 없습니다");
} else {
// onWhere.setText(list.get(0).toString()); 원래 통으로 나오는 주소값 문자열
// 문자열을 자르자!
String cut[] = list.get(0).toString().split(" ");
for(int i=0; i<cut.length; i++){
System.out.println("cut["+i+"] : " + cut[i]);
} // cut[0] : Address[addressLines=[0:"대한민국
// cut[1] : 서울특별시 cut[2] : 송파구 cut[3] : 오금동
// cut[4] : cut[4] : 41-26"],feature=41-26,admin=null ~~~~
onWhere.setText(cut[1] + " " + cut[2] + " " + cut[3]); // 내가 원하는 구의 값을 뽑아내 출력
}
}
}
}