본문 바로가기
Android 개발/지도 Api

Geocoder 클래스 이용해서 위치값으로 주소 얻어오기

by Developer88 2017. 7. 21.
반응형

안드로이드 앱을 개발하면서, 핸드폰의 위치를 얻어왔다면, 

그것의 주소도 알아야 할 때가 있는데요.

이 때, Geocoder클래스를 사용하면, 그것이 가능해집니다.

이것을 GeoCoding이라고 하는데요. 

반대로 주소를 가지고 위도경도를 알아내는 것을 ReverseGeocoding이라고 합니다.


오늘은 이 GeoCoding과 ReverseGeoCoding 대해서 정리해 보겠습니다.



1. Geocoder 클래스


제일 먼저 할일은 GeoCoder클래스의 객체를 얻어오는 일인데요.

아래와 같이, context를 인자로 넣어주면 됩니다.





2. 위도, 경도 값으로 주소 얻어오기(GeoCoding)


먼저, 위도와 경도 값으로 주소를 얻어오는 것부터 알아보겠습니다.
위치를 얻어오는 것은 아래링크를 참조해주시구요.


주소를 얻어오는 메소드는 getFromLocation()입니다.
인자로 위도와 경도, 그리고 결과를 몇개 받을 것인지를 넘겨주면 됩니다.

result로 넘어온 값의 getAddressLine을 해주면, 주소를 얻어올 수 있습니다.
참고로, 에러처리를 해줘야 하므로, try, catch를 넣어주어야 합니다.




이 밖에도 아래와 같이 정보를 얻어올 수 있도록 해주는 get 메소드들이 아주 많습니다.

주소, 국가번호나 이름 등등 매우 많네요.




3. 주소로 위도 경도 값 얻어오기(ReverseGeoCoding)


주소로 위도경도값을 얻어오는 것을 ReverseGeoCoding이라고 하는데요.

방법은 매우 심플합니다. GeoCoder객체에 getFromLocationName메소드를 사용해 주면되는데요.

인자로는 파란색으로 표시된 부분과 같이,

주소String과 결과로 몇개의 아이템을 받을 것인지의 int값을 넣어주면 됩니다.




실행하면 아래와 같이 결과를 볼 수 있습니다.
주소로 부터 가져온 위도와 경도 값을 볼 수 있습니다.
한가지 안타까운 점은, 구글지도가 최신화가 좀 늦은편입니다.
특히 신도시가 심한데, 예를 들어, 세종시같은 경우, 아직도 면이나 리단위의 행정단위가 보이고 있네요.


728x90

댓글