[TIL-230718] 주소 텍스트로 위치 마킹하기

반응형

안녕하세요

오늘은 주소 평문으로 위도, 경도를 가져와 Map에 위치를 마킹하는 코드를 구현해보겠습니다.

 


지도 출력

기본적인 지도 출력하는 예제는 이전에 작성한 코드를 토대로 사용하였습니다.

https://weirddev.tistory.com/39

 

 

주소 텍스트로 위도, 경도 가져오기

주소 텍스트를 파라미터로 위도, 경도를 가져오는 API는 아래와 같습니다.

val geoCoder = Geocoder(context)

val addressList: List<Address>? =
        geoCoder.getFromLocationName(address, 1)

위의 예제는 Geocoder 클래스를 사용하여  getFromLocationName의 파라미터로
실제 주소 텍스트 (ex) "서울특별시 송파구 올림픽로 300")와 주소의 갯수를 전달합니다.
(주소의 갯수는 1 ~ 5 중 값으로 전달하는것을 권장합니다.)

 

 

위도, 경도를 기반으로 지도에 Marker 출력하기

if (addressList != null && !addressList.equals(" ")) {

        val address = addressList[0]
        val latLng = LatLng(address.latitude, address.longitude)       

        val markerState = rememberMarkerState(position = latLng)

        Marker(
            state = markerState,
            title = name,
            icon = BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED),
        )
 }

첫 번째 예제 코드의 addressList의 0번째 객체에서 해당 주소의 위도, 경도를 얻을 수 있습니다.

위도, 경도를 이용해서, LatLng 클래스의 객체를 생성하여 Marker Component에 각각의 파라미터 들을 설정합니다.

 

 

결과

위의 코드 실행시 위와 같은 화면을 볼 수 있습니다.


오늘은 Jetpack Compose의 Component Focusing에 대해 포스팅해보았습니다.
잘못된 내용이 있다면 댓글 부탁드리고, 내용이 좋았다면 공감, 구독 부탁드려요

반응형