위치 아이콘

지도상에 사용자의 위치를 시각적으로 표출하는 기능으로, 필요에 따라 위치, 아이콘의 이미지, 크기, 원 등의 속성을 자유롭게 변경하여 사용할 수 있습니다.

객체 접근

LocationIcon 클래스는 위치 아이콘을 담당하는 클래스입니다. 이 클래스의 속성을 변경하여 위치 아이콘을 커스터마이징 할 수 있습니다. 위치 아이콘은 항상 지도에 등록되어 있습니다.

위치 아이콘 객체는 InaviMap 객체의 getLocationIcon() 함수 호출을 통해서만 인스턴스를 얻을 수 있습니다.

// 위치 아이콘 인스턴스 가져오기
val locationIcon = inaviMap.locationIcon

위치

position 속성으로 위치 아이콘의 위치를 가져오거나 새로 설정할 수 있습니다. 이 속성을 설정해주어야 지도에 위치 아이콘이 표출됩니다.

이 속성은 위치 추적 모드None일 때에만 정상적으로 적용됩니다. 위치 추적이 활성화 되어있으면 position 속성이 GPS상의 위치에 따라 수시로 변경되어 의도하지 않은 결과가 나올 수 있습니다.

// 위치 아이콘의 위치 설정
locationIcon.position = LatLng(37.40219, 127.11077)

구성 요소

위치 아이콘은 이미지와 그 주변에 그려지는 으로 구성되어 있습니다. 위치 추적 모드에 따른 이미지를 설정할 수 있으며, 원의 색상과 반경 또한 설정이 가능합니다.

이미지

위치 아이콘 표출에 사용하는 이미지를 의미합니다. 이미지 속성은 위치 추적 모드에 따라 각각 설정할 수 있습니다.

// 위치 추적 모드별 위치 아이콘 이미지 설정
locationIcon.image = InvImage(R.drawable.my_icon)
locationIcon.imageTracking = InvImage(R.drawable.my_icon_tracking)
locationIcon.imageTrackingCompass = InvImage(R.drawable.my_icon_tracking_compass)

위치 아이콘의 이미지 주변에 그려지는 원을 의미합니다. 위치의 정확도나 현재 위치를 시각적으로 표현하는 용도로 사용할 수 있습니다. 원의 색상과 반경을 변경하는 기능을 지원합니다.

circleColor 속성으로 위치 아이콘 주변에 그려지는 원의 색상을, circleRadius 속성으로 원의 반경을 각각 가져오거나 새로 설정할 수 있습니다.

// 위치 아이콘의 원 색상을 파랑으로, 반경을 150px로 설정
locationIcon.circleColor = Color.BLUE
locationIcon.circleRadius = 150

원을 표출하지 않으려면 circleRadius 속성의 을 0으로 설정하면 됩니다.

// 위치 아이콘의 반경을 0px로 설정 (원 표출 안 함)
locationIcon.circleRadius = 0

아이콘 크기

scale 속성으로 위치 아이콘의 크기를 가져오거나 새로 설정할 수 있습니다. 2.0으로 설정하면 아이콘의 크기가 2배로 표출됩니다.

// 위치 아이콘의 크기를 2배로 설정
locationIcon.scale = 2.0f

방향

bearing 속성으로 위치 아이콘의 방향 각도를 가져오거나 새로 설정할 수 있습니다. 0은 위쪽 방향을 의미하며, 값이 커질수록 지도를 기준으로 시계 방향으로 회전합니다. 360이 되면 다시 위쪽 방향이 됩니다.

// 위치 아이콘의 방향 각도를 45도로 설정
locationIcon.bearing = 45f

표출 및 숨김

isVisible 속성으로 위치 아이콘을 표출하거나 숨길 수 있습니다. 이 속성의 기본값은 true이지만, position 속성이 설정되지 않으면 지도에 위치 아이콘이 표출되지 않습니다. position 속성이 설정되어 있는 상태에서 위치 아이콘을 숨기고 싶다면 이 속성을 false로 설정하면 됩니다.

// 위치 속성이 설정되어 있으나, 지도에 표출하지 않음
locationIcon.position = LatLng(37.40219, 127.11077)
locationIcon.isVisible = false

클릭 이벤트

onClickListener 속성으로 위치 아이콘을 클릭했을 때의 이벤트를 감지할 수 있습니다. 리스너의 콜백 함수는 이벤트 소비 여부를 반환합니다. true를 반환하면 클릭 이벤트가 지도로 전달되지 않습니다.

locationIcon.setOnClickListener {
    Toast.makeText(this, "위치 아이콘 클릭", Toast.LENGTH_SHORT).show()
    true // 이벤트 소비 여부. true로 설정 시 클릭 이벤트가 지도로 전달되지 않는다.
}

Last updated