위치

지도를 사용하는 앱은 사용자의 위치를 추척하고 지도에 표현하는 경우가 많습니다. 네이버 지도 SDK는 이런 기능을 손쉽게 구현할 수 있도록 위치 오버레이와 위치 추적 기능을 제공합니다. 내장된 위치 추적 기능을 사용하지 않고 직접 위치 관련 기능을 구현할 수도 있습니다.

위치 오버레이

사용자의 위치를 지도에 나타내고자 할 때는 위치 오버레이를 사용하는 것이 권장됩니다. 위치 오버레이는 지도상에 단 하나만 존재하며, 좌표, 방향 등 위치 표현에 특화된 기능을 제공합니다. 위치 오버레이에 대한 자세한 내용은 위치 오버레이 문서를 참고하십시오.

내장 위치 추적 기능 사용

네이버 지도 SDK는 사용자의 위치 이벤트를 받아서 이를 지도에 표시하고 카메라를 움직이는 위치 추적 기능을 내장하고 있습니다.

위치 접근 권한

네이버 지도 SDK는 기본적으로 사용자의 위치 정보를 사용하지 않으므로 사용자에게 위치와 관련된 권한을 요구하지 않습니다. 따라서 위치 추적 기능을 사용하고자 하는 앱은 info.plistNSLocationAlwaysUsageDescription 또는 NSLocationWhenInUseUsageDescription 권한을 명시해야 합니다.

다음은 info.plistNSLocationAlwaysUsageDescription 권한을 명시하는 예제입니다.

<plist version="1.0">
<dict>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>사용자의 위치를 받습니다.</string>
</dict>
</plist>

위치 추적 모드

위치 접근을 허용하도록 지정하면 위치 추적 기능을 사용할 수 있습니다. 위치 추적 기능을 사용하는 방법은 다음의 두 가지입니다.

  • 위치 추적 모드 지정: positionMode를 지정하면 프로그램적으로 위치 추적 모드를 지정할 수 있습니다.
  • 현위치 버튼 컨트롤 사용: showLocationButton으로 현위치 버튼 컨트롤을 활성화하면 사용자의 탭에 따라 위치 추적 모드를 변경할 수 있습니다.

네이버 지도 SDK가 제공하는 위치 추적 모드는 다음의 네 가지이며, NMFMyPositionMode 열거형에 정의되어 있습니다.

  • NMFMyPositionDisabled: 위치를 추적하지 않습니다.
  • NMFMyPositionNormal: 위치 추적이 활성화되고, 현위치 오버레이가 사용자의 위치를 따라 움직입니다. 그러나 지도는 움직이지 않습니다.

NMFMyPositionNormal 모드가 적용된 모습

  • NMFMyPositionDirection: 위치 추적이 활성화되고, 현위치 오버레이와 카메라의 좌표가 사용자의 위치를 따라 움직입니다. API나 제스처를 사용해 임의로 카메라를 움직일 경우 모드가 NMFMyPositionNormal로 바뀝니다.

NMFMyPositionDirection 모드가 적용된 모습

  • NMFMyPositionCompass: 위치 추적이 활성화되고, 현위치 오버레이, 카메라의 좌표, 헤딩이 사용자의 위치 및 방향을 따라 움직입니다. API나 제스처를 사용해 임의로 카메라를 움직일 경우 모드가 NMFMyPositionNormal로 바뀝니다.

NMFMyPositionCompass 모드가 적용된 모습

다음은 positionMode를 변경해 위치 추적 모드를 NMFMyPositionDirection으로 지정하는 예제입니다.

naverMapView.positionMode = .direction

Swift

naverMapView.positionMode = .direction

Objective-C

self.naverMapView.positionMode = NMFMyPositionDirection;

results matching ""

    No results matching ""