본문 바로가기
안드로이드(JAVA) 문법

[안드로이드] 위경도로 주소찾기 Geocoder

by jinu957 2020. 6. 15.
728x90

네이버클라우드 플랫폼의 MAP을 사용하는데 간혹가다 위경도 좌표로 주소를 찾을 필요가 생깁니다.

그럴때 구글의 Goecoder함수를 사용하여 간단하게 만든 함수입니다.

 

주소를 검색하기 위하여 Geocoder를 사용하는데 조회한 좌표에 대하여 두개 이상의 이름이 존재할 수도 있다네요

그런 경우 때문에 결과값은 배열로 받아오고 리턴받기 위한 최대갯수를 설정 할 수도 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public static String getAddress(Context mContext, double lat, double lng) 
{
    String nowAddr ="현재 위치를 확인 할 수 없습니다.";
    Geocoder geocoder = new Geocoder(mContext, Locale.KOREA);
    List<Address> address;
    
    try 
    {
        if (geocoder != null
        {
            // 한좌표에 대해 두개이상의 이름이 존재할수있기에 주소배열을 리턴받고
            // 세번째 파라메터인 maxResults는 리턴받을 주소의 최대 갯수를 지정함 
            // (여기서는 1개만 받는걸로...)
            address = geocoder.getFromLocation(lat, lng, 1);
 
            if (address != null && address.size() > 0
            {
                // 주소 받아오기
                nowAddr = address.get(0).getAddressLine(0).toString();
            }
        }
    } 
    catch (IOException e) 
    {
        Toast.makeText(mContext, "주소를 가져 올 수 없습니다.", Toast.LENGTH_LONG).show();
        e.printStackTrace();
    }
    return nowAddr;
}

소스는 간단합니다.

 

Geocoder로 변수를 선언하고 초기화하는데 우리나라 지역을 사용할거라서 Locale.KOREA를 지정

Geocoder geocoder = new Geocoder(mContext, Locale.KOREA);

 

다수의 주소를 리턴받기위한 Address타입의 List 선언

List<Address> address;

 

실제 주소를 받기 위해서

address = geocoder.getFromLocation(lat, lng, 1);

마지막 파라메터는 최대 주소 갯수이며 여기서는 1개로 설정.

 

 

 

PS. 매번 프로젝트만 진행하다가 개인적으로 앱을 하나 출시했습니다.

비록 허접한 앱이기는 하지만 이걸 토대로 몇몇가지 팁에 대해 포스팅을 작성하려고 하오니 아래 포스팅 글 한번 읽어봐 주시면 감사하겠습니다. ^^

andro-jinu.tistory.com/entry/todaysaying1

 

[안드로이드 스튜디오] 앱 출시 소식 - 오늘의 명언(명언, 고사성어, 속담)

아주 오랜만에 포스팅을 하게 됐네요 그동안 다른 프로젝트로 매우 바뻤던 관계로 한동안 포스팅을 못했는데 요즘 짬이 나서 간단하게 앱을 만들고 출시까지 하였습니다. 그동안은 앱을 만들긴

andro-jinu.tistory.com

 

728x90

댓글