안드로이드/개발관련(Kotlin)

Geocoder를 사용해 주소를 좌표로 변경하는 방법(안드로이드, Koltin)

닉네임못짓는사람 2022. 1. 21. 20:42
반응형

안드로이드에서 위치를 사용해 무언가 작업을 하려고 할 때

좌표를 주소로 바꾸는 경우도 필요하지만, 반대로 주소를 좌표로 바꾸는 경우도 필요하다.

이번 글에선 후자의 작업을 Geocoder를 사용해서 해결하는 법을 알아보도록 하자.

 

    private fun searchAddress(address: String){
        lateinit var list: MutableList<Address>
        try{
            list = Geocoder(context).getFromLocationName(addr, 5)
        }catch(e: IOException){
           e.printStackTrace()
           Toast.makeText(context, "Error", Toast.LENGTH_SHORT).show()
        }

        if(list.size == 0){
            Toast.makeText(context, "일치하는 주소가 없습니다.", Toast.LENGTH_SHORT).show()
        }else{
            val address = list.get(0)
            val lat = address.latitude
            val lng = address.longitude
        }
    }

위와 같이 address를 location으로 바꾸는 함수를 하나 작성해보도록 하자.

 

해당 함수의 매개변수로는 주소가 들어오게 된다.

list를 하나 생성하고, 입력받은 주소를 가지고 Geocoder를 통해 주소들을 검색한다.

getFromLocationName을 통해 주소들을 검색할 수 있는데, 두번째 인자는 가져올 주소의 개수이다.

 

이렇게 가져온 주소들을 list에 넣어준 뒤,

if문을 통해 list가 비어있으면 검색된 주소가 없다고 사용자에게 말해준다.

list가 비어있지 않으면 가장 앞에 있는 주소를 꺼내 위도와 경도를 저장해주도록 한다.

반응형