사용자 위치 확인
사용자의 위치를 찾고, 변경된 위치 정보를 기반으로 지도에 표현할 수 있는 기능에 대해 설명합니다.
위치 데이터 사용
위치 권한 설정
위치 기능을 사용하기 위해서는 아래와 같이 AndroidManifest.xml에 ACCESS_FINE_LOCATION
, ACCESS_COARSE_LOCATION
권한을 명시해야 합니다.
LocationProvider
LocationProvider
는 사용자의 위치를 제공하는 인터페이스입니다. InaviMap
객체의 locationProvider
속성을 설정하여 사용자의 위치를 제공받을 수 있습니다. 설정된 LocationProvider
의 activate()
, deactivate()
함수는 InaviMap
내부에서 상황에 따라 호출합니다.
FusedLocationProvider
FusedLocationProvider
는 저전력으로 GPS 외에 센서 등을 활용하여 정확도가 높은 위치를 제공합니다. FusedLocationProvider
는 내부에서 위치 권한을 요청하도록 구현되어 있기 때문에 생성자에 Activity
또는 Fragment
객체를 전달하고, OnPermissionResultCallback 콜백으로 권한 요청에 대한 결과를 받을 수 있습니다.
위치 추적 모드
InaviMap
객체에 locationProvider
속성을 설정한 다음, 사용자가 위치 권한 사용을 승인하면 위치 추적 기능을 사용할 수 있습니다. userTrackingMode
속성을 설정하거나 현위치 버튼을 클릭하여 위치 추적 모드를 변경할 수 있습니다.
위치 추적 모드의 종류는 아래와 같으며, UserTrackingMode
열거형에 정의되어 있습니다.
위치 추적을 비활성화 합니다.
위치 추적이 활성화 되며, 사용자의 위치에 맞춰 위치 아이콘의 위치가 변경됩니다.
위치 추적이 활성화 되며, 사용자의 위치에 맞춰 위치 아이콘의 위치와 카메라의 좌표가 변경됩니다.
API 호출 또는 제스처 사용으로 카메라가 변경되면
NoTracking
으로 변경됩니다.
위치 추적이 활성화 되며, 사용자의 위치와 방향에 맞춰 위치 아이콘의 위치와 카메라의 좌표, 베어링 각도가 변경됩니다. API 호출 또는 제스처 사용으로 카메라가 변경되면
NoTracking
으로 변경됩니다.
위치 변경 이벤트
InaviMap#addOnLocationChangedListener()
메서드를 호출하여 위치 변경 리스너를 추가하면 위치 변경에 대한 이벤트를 감지할 수 있습니다. 위치 추적이 활성화된 다음, 사용자의 위치가 변경되면 onLocationChanged()
콜백 함수로 변경된 사용자의 위치가 전달됩니다.
Last updated