TrackingManager

KakaoMapsSDK의 객체의 위치를 카메라가 추적하도록 하는 방법.

TrackingManager는 KakaoMap 오브젝트의 tracking을 관리하는 클래스입니다. trackingManager를 통해 특정 object의 position과 orientation을 카메라가 따라가도록 설정할 수 있습니다. 예를 들어서, 현위치 마커의 위치를 카메라가 항상 따라가도록 설정하여 화면상 가운데에 항상 현위치마커가 있도록 유지할 수 있습니다.

한번에 하나의 객체만 트래킹이 가능하고, 트래킹중에 다른 객체를 트래킹하고자 하는 경우 stop을 호출하여 기존의 트래킹을 중단한 뒤 다른 객체를 트래킹할 수 있습니다.

현재 TrackingManager는 Poi Tracking만 구현되어있습니다.

Tracking 시작하기


KakaoMap 내부 trackingManager를 이용하여 tracking을 시작할 수 있습니다.

let mapView = mapController?.getView("mapview") as! KakaoMap
let trackingManager = mapView.getTrackingManager()

// TrackingManager에서 _currentDirectionArraPoi의 tracking을 시작한다.
trackingManager.startTrackingPoi(_currentDirectionArrowPoi!)

또한, trackingManager 내부 Property를 통해 현재 tracking에 대한 상태를 알 수 있고, 설정할 수 있습니다. trackingManager Property는 아래와 같습니다.

Property Description
isTracking 현재 trackingManager가 특정 객체를 tracking하는중인지 상태를 리턴합니다.
isTrackingRoll tracking중인 obejct가 회전할 때 카메라 roll도 같이 회전하는지에 대한 여부를 세팅할 수 있습니다.

tracking을 시작하면 객체의 position 혹은 orientation이 변경될때마다 지도가 따라가게 됩니다.

Tracking 멈추기


trackingManager의 stop을 호출해서 tracking 모드를 멈출 수 있습니다. trackingManager는 한번에 하나의 객체만 따라갈 수 있으므로, 다른 객체를 tracking하기 위해서는 반드시 기존의 객체 트래킹을 stop해야합니다.

let mapView = mapController?.getView("mapview") as! KakaoMap
let trackingManager = mapView.getTrackingManager()                
trackingManager.stopTracking()