NMFMapView


@interface NMFMapView : UIView

지도 뷰 클래스.

  • 기본 밝은 배경 이미지.

    Declaration

    Objective-C

    @property (class, nonatomic, readonly, nullable) UIImage *defaultBackgroundLightImage;

    Swift

    class var defaultBackgroundLightImage: UIImage? { get }
  • 기본 어두운 배경 이미지.

    Declaration

    Objective-C

    @property (class, nonatomic, readonly, nullable) UIImage *defaultBackgroundDarkImage;

    Swift

    class var defaultBackgroundDarkImage: UIImage? { get }
  • 지도 인증 요청. 네트워크 오류 등의 이유로 인증을 재시도할 때 호출합니다.

    Declaration

    Objective-C

    - (void)authorize;

    Swift

    func authorize()
  • 프레임 크기로 지도 뷰의 인스턴스를 생성합니다.

    Declaration

    Objective-C

    - (nonnull instancetype)initWithFrame:(CGRect)frame;

    Swift

    init(frame: CGRect)

    Parameters

    frame

    뷰의 프레임.

    Return Value

    NMFMapView 인스턴스.

  • 라이트 모드를 활성화할지 여부를 지정합니다. 라이트 모드가 활성화되면 지도의 로딩이 빨라지고 메모리 소모가 감소합니다. 그러나 다음과 같은 제약이 생깁니다.

    • 지도의 전반적인 화질이 하락합니다.
    • 카메라가 회전하거나 기울어지면 지도 심벌도 함께 회전하거나 기울어집니다.
    • 줌 레벨이 커지거나 작아지면 지도 심벌도 일정 정도 함께 커지거나 작아집니다.
    • `mapType` 지도 유형을 사용할 수 없습니다.
    • `setLayerGroup:isEnabled:`, `getLayerGroupEnabled:`, `indoorMapEnabled`, `nightModeEnabled`, `lightness`, `buildingHeight`, `symbolScale`, `symbolPerspectiveRatio`가 동작하지 않습니다.
    • `NMFMapViewTouchDelegate.mapView:didTapSymbol:`이 호출되지 않습니다.
    • `NMFMarker.isHideCollidedSymbols`가 동작하지 않습니다.

    기본값은 NO입니다.

    Declaration

    Objective-C

    @property (nonatomic) BOOL liteModeEnabled;

    Swift

    var liteModeEnabled: Bool { get set }
  • 지도의 배경색. 배경은 해당 지역의 지도 데이터가 없거나 로딩 중일 때 나타납니다.

    Declaration

    Objective-C

    @property (nonatomic) UIColor *_Nonnull backgroundColor;

    Swift

    var backgroundColor: UIColor { get set }
  • 지도의 배경 이미지. 배경은 해당 지역의 지도 데이터가 없거나 로딩 중일 때 나타납니다.

    Declaration

    Objective-C

    @property (nonatomic, nullable) UIImage *backgroundImage;

    Swift

    var backgroundImage: UIImage? { get set }
  • 지도의 패딩. 패딩에 해당하는 부분은 지도의 콘텐츠 영역에서 제외됩니다. 이 속성을 변경하여 패딩을 지정하면 카메라의 좌표가 변경됩니다. 즉, setContentInset:contentInset keepCamera:NO와 동일합니다.

    Declaration

    Objective-C

    @property (nonatomic) UIEdgeInsets contentInset;

    Swift

    var contentInset: UIEdgeInsets { get set }
  • 지도의 패딩. 패딩에 해당하는 부분은 지도의 콘텐츠 영역에서 제외됩니다.

    keepCamera에 따라 카메라의 좌표 또는 지도의 영역이 유지됩니다.

    • YES인 경우: 카메라의 좌표를 유지하며 콘텐츠 영역을 변경합니다. 따라서 화면에 나타나는 지도의 전체 영역이 변경됩니다. 카메라에 변화가 없으므로 NMFMapViewCameraDelegate의 메서드가 호출되지 않습니다.
    • NO인 경우: 화면에 나타나는 지도의 전체 영역을 유지하며 콘텐츠 영역을 변경합니다. 카메라의 좌표는 새로운 콘텐츠 영역의 중심을 가리키도록 변경되며, NMFMapViewCameraDelegate의 메서드가 호출됩니다.

    Declaration

    Objective-C

    - (void)setContentInset:(UIEdgeInsets)contentInset keepCamera:(BOOL)keepCamera;

    Swift

    func setContentInset(_ contentInset: UIEdgeInsets, keepCamera: Bool)

    Parameters

    contentInset

    패딩.

    keepCamera

    카메라의 좌표를 유지할지 여부. 유지할 경우 YES, 그렇지 않을 경우 NO.

  • 지도 뷰의 화면상 너비. pt 단위.

    Declaration

    Objective-C

    @property (nonatomic, readonly) double mapWidth;

    Swift

    var mapWidth: Double { get }
  • 지도 뷰의 화면상 높이. pt 단위.

    Declaration

    Objective-C

    @property (nonatomic, readonly) double mapHeight;

    Swift

    var mapHeight: Double { get }
  • 지도 유형.

    기본값은 NMFMapTypeBasic입니다.

    Declaration

    Objective-C

    @property (nonatomic) NMFMapType mapType;

    Swift

    var mapType: NMFMapType { get set }
  • 지도가 어두운지 여부를 반환합니다. 야간 모드가 활성화되어 있거나 지도의 유형이 NMFMapTypeSatellite 또는 NMFMapTypeHybrid일 경우 어두운 것으로 간주됩니다.

    Declaration

    Objective-C

    - (BOOL)isDark;

    Swift

    func isDark() -> Bool

    Return Value

    어두울 경우 YES, 그렇지 않을 경우 NO.

  • 레이어 그룹을 활성화할지 여부를 지정합니다.

    Declaration

    Objective-C

    - (void)setLayerGroup:(nonnull NSString *)group isEnabled:(BOOL)enabled;

    Swift

    func setLayerGroup(_ group: String, isEnabled enabled: Bool)

    Parameters

    group

    레이어 그룹의 이름.

    enabled

    활성화할 경우 YES, 그렇지 않을 경우 NO입니다.

  • 레이어 그룹이 활성화되어 있는지 여부를 반환합니다.

    Declaration

    Objective-C

    - (BOOL)getLayerGroupEnabled:(nonnull NSString *)group;

    Swift

    func getLayerGroupEnabled(_ group: String) -> Bool

    Parameters

    group

    레이어 그룹의 이름.

    Return Value

    활성화된 경우 YES, 그렇지 않을 경우 NO

  • 배경의 명도 계수. 값의 범위는 -1~1. 계수가 -1일 경우 명도 최소치인 검정색으로, 1일 경우 명도 최대치인 흰색으로 표시됩니다. 오버레이에는 적용되지 않습니다.

    기본값 0입니다.

    Declaration

    Objective-C

    @property (nonatomic) CGFloat lightness;

    Swift

    var lightness: CGFloat { get set }
  • 건물의 3D 높이 배율. 값의 범위는 0~1. 배율이 0일 경우 지도를 기울이더라도 건물이 2D로 나타납니다.

    기본값은 1입니다.

    Declaration

    Objective-C

    @property (nonatomic) float buildingHeight;

    Swift

    var buildingHeight: Float { get set }
  • 야간 모드를 활성화할지 여부. 야간 모드가 활성화되면 지도 스타일이 어둡게 바뀝니다. 지도 유형이 야간 모드를 지원하지 않으면 활성화하더라도 아무 변화가 일어나지 않습니다.

    기본값은 NO입니다.

    Declaration

    Objective-C

    @property (nonatomic, assign, unsafe_unretained, readwrite,
              getter=isNightModeEnabled) BOOL nightModeEnabled;

    Swift

    var isNightModeEnabled: Bool { get set }
  • 이 지도의 NMFLocationOverlay 객체. 항상 같은 객체를 가리킵니다.

    Declaration

    Objective-C

    @property (nonatomic, strong, readonly) NMFLocationOverlay *_Nonnull locationOverlay;

    Swift

    var locationOverlay: NMFLocationOverlay { get }
  • 지도의 로캘.

    기본값은 시스템 로캘을 의미하는 nil입니다.

    Declaration

    Objective-C

    @property (nonatomic, nullable) NSString *locale;

    Swift

    var locale: String? { get set }
  • 네이버 로고의 위치를 지정합니다.

    기본값은 NMFLogoAlignLeftBottom.

    Declaration

    Objective-C

    @property (nonatomic) NMFLogoAlign logoAlign;

    Swift

    var logoAlign: NMFLogoAlign { get set }
  • 네이버 로고의 마진을 지정합니다.

    Declaration

    Objective-C

    @property (nonatomic) UIEdgeInsets logoMargin;

    Swift

    var logoMargin: UIEdgeInsets { get set }
  • 네이버 로고 클릭을 활성화할지 여부를 지정합니다. 활성화하면 네이버 로고 클릭시 범례, 법적 공지, 오픈소스 라이선스를 보여주는 알림창이 열립니다.

    이 옵션을 NO로 지정하는 앱은 반드시 앱 내에 네이버 지도 SDK의 법적 공지 (-showLegalNotice) 및 오픈소스 라이선스(-showOpenSourceLicense)뷰 컨트롤러를 호출하는 메뉴를 만들어야 합니다.

    기본값은 YES입니다.

    Declaration

    Objective-C

    @property (nonatomic) BOOL logoInteractionEnabled;

    Swift

    var logoInteractionEnabled: Bool { get set }
  • 법적 공지를 보여주는 뷰컨트롤러를 호출합니다.

    Declaration

    Objective-C

    - (void)showLegalNotice;

    Swift

    func showLegalNotice()
  • 오픈소스 라이선스를 보여주는 뷰컨트롤러를 호출합니다.

    Declaration

    Objective-C

    - (void)showOpenSourceLicense;

    Swift

    func showOpenSourceLicense()
  • 지도 화면을 강제로 새로고침합니다. 실시간 교통정보 등 지도 화면에 나타나는 실시간성 데이터는 적시에 자동으로 새로고침되므로 이 메서드를 별도로 호출할 필요가 없습니다.

    Declaration

    Objective-C

    - (void)forceRefresh;

    Swift

    func forceRefresh()
  • 지도가 렌더링되는 속도(fps, frames per second)를 설정합니다.

    기본값은 60입니다.

    See

    CADisplayLink.preferredFramesPerSecond

    Declaration

    Objective-C

    @property (nonatomic) double preferredFramesPerSecond;

    Swift

    var preferredFramesPerSecond: Double { get set }
  • 카메라 이동 애니메이션의 기본 지속 시간. 초 단위.

    기본값은 0.2입니다.

    Declaration

    Objective-C

    @property (nonatomic) NSTimeInterval animationDuration;

    Swift

    var animationDuration: TimeInterval { get set }
  • 줌 제스처가 활성화되어 있는지 여부를 나타내는 속성. 활성화하면 지도를 더블 탭, 두 손가락 탭, 핀치해 카메라의 줌 레벨을 변경할 수 있습니다.

    기본값은 YES입니다.

    Declaration

    Objective-C

    @property (nonatomic, assign, unsafe_unretained, readwrite,
              getter=isZoomGestureEnabled) BOOL zoomGestureEnabled;

    Swift

    var isZoomGestureEnabled: Bool { get set }
  • 스크롤 제스처가 활성화되어 있는지 여부를 나타내는 속성. 활성화하면 지도를 스와이프해 카메라의 좌표를 변경할 수 있습니다.

    기본값은 YES입니다.

    Declaration

    Objective-C

    @property (nonatomic, assign, unsafe_unretained, readwrite,
              getter=isScrollGestureEnabled) BOOL scrollGestureEnabled;

    Swift

    var isScrollGestureEnabled: Bool { get set }
  • 로테이트 제스처가 활성화되어 있는지 여부를 나타내는 속성. 활성화되면 두 손가락으로 지도를 돌려 카메라의 베어링 각도를 변경할 수 있습니다.

    기본값은 YES입니다.

    Declaration

    Objective-C

    @property (nonatomic, assign, unsafe_unretained, readwrite,
              getter=isRotateGestureEnabled) BOOL rotateGestureEnabled;

    Swift

    var isRotateGestureEnabled: Bool { get set }
  • 틸트 제스처가 활성화되어 있는지 여부를 나타내는 속성. 활성화되면 지도를 두 손가락으로 세로 스와이프해 카메라의 틸트 각도를 변경할 수 있습니다.

    기본값은 YES입니다.

    Declaration

    Objective-C

    @property (nonatomic, assign, unsafe_unretained, readwrite,
              getter=isTiltGestureEnabled) BOOL tiltGestureEnabled;

    Swift

    var isTiltGestureEnabled: Bool { get set }
  • 스톱 제스처가 활성화되어 있는지 여부를 나타내는 속성. 활성화되면 지도 애니메이션 진행 중 탭으로 지도 애니메이션을 중지할 수 있습니다.

    기본값은 YES입니다.

    Declaration

    Objective-C

    @property (nonatomic, assign, unsafe_unretained, readwrite,
              getter=isStopGestureEnabled) BOOL stopGestureEnabled;

    Swift

    var isStopGestureEnabled: Bool { get set }
  • 스크롤 제스처 마찰 계수. 값의 범위는 0~1이며, 계수가 클수록 마찰이 강해집니다.

    기본값은 0.088입니다.

    Declaration

    Objective-C

    @property (nonatomic) CGFloat scrollFriction;

    Swift

    var scrollFriction: CGFloat { get set }
  • 줌 제스처 마찰 계수. 값의 범위는 0~1이며, 계수가 클수록 마찰이 강해집니다.

    기본값은 0.12375입니다.

    Declaration

    Objective-C

    @property (nonatomic) CGFloat zoomFriction;

    Swift

    var zoomFriction: CGFloat { get set }
  • 회전 제스처 마찰 계수. 값의 범위는 0~1이며, 계수가 클수록 마찰이 강해집니다.

    기본값은 0.19333입니다.

    Declaration

    Objective-C

    @property (nonatomic) CGFloat rotateFriction;

    Swift

    var rotateFriction: CGFloat { get set }
  • 지도 클릭 시 피킹되는 NMFPickable의 클릭 허용 반경. pt 단위. 사용자가 지도를 클릭했을 때, 클릭된 지점이 NMFPickable의 영역 내에 존재하지 않더라도 허용 반경 내에 있다면 해당 요소가 클릭된 것으로 간주됩니다.

    기본값은 2입니다.

    Declaration

    Objective-C

    @property (nonatomic) NSInteger pickTolerance;

    Swift

    var pickTolerance: Int { get set }
  • 실내지도 활성화 여부. 활성화하면 카메라가 일정 크기 이상 확대되고 실내지도가 있는 영역에 포커스될 경우 자동으로 해당 영역의 실내지도가 나타납니다.

    기본값은 NO입니다.

    Declaration

    Objective-C

    @property (nonatomic, assign, unsafe_unretained, readwrite,
              getter=isIndoorMapEnabled) BOOL indoorMapEnabled;

    Swift

    var isIndoorMapEnabled: Bool { get set }
  • 실내지도 영역의 포커스 유지 반경. pt 단위. 지정할 경우 카메라의 위치가 포커스 유지 반경을 완전히 벗어날 때까지 영역에 대한 포커스가 유지됩니다.

    기본값은 20입니다.

    Declaration

    Objective-C

    @property (nonatomic) double indoorFocusRadius;

    Swift

    var indoorFocusRadius: Double { get set }
  • 실내 지도에 대한 위임자를 등록합니다.

    Declaration

    Objective-C

    - (void)addIndoorSelectionDelegate:
        (id<NMFIndoorSelectionDelegate> _Nonnull)delegate;

    Parameters

    delegate
  • 실내 지도에 대한 위임자를 해제합니다.

    Declaration

    Objective-C

    - (void)removeIndoorSelectionDelegate:
        (id<NMFIndoorSelectionDelegate> _Nonnull)delegate;

    Parameters

    delegate
  • 실내지도 뷰를 나타내도록 요청합니다. 이 메서드를 호출하더라도 실내지도 뷰가 즉시 나타나는 것이 보장되지 않으며, 요청된 실내지도 뷰를 포함하는 영역이 포커스되어야 그 뷰가 나타납니다. 단, 요청된 실내지도 뷰를 포함하는 영역이 이미 포커스되어 있을 경우 즉시 그 뷰가 나타납니다.

    Declaration

    Objective-C

    - (void)requestIndoorView:(NMFIndoorView *_Nullable)indoorView;

    Swift

    func request(_ indoorView: NMFIndoorView?)

    Parameters

    indoorView

    실내지도 뷰. 요청을 취소할 경우 nil.

  • 지도의 최소 줌 레벨.

    기본값은 0입니다.

    Declaration

    Objective-C

    @property (nonatomic) double minZoomLevel;

    Swift

    var minZoomLevel: Double { get set }
  • 지도의 최대 줌 레벨.

    기본값은 20입니다.

    Declaration

    Objective-C

    @property (nonatomic) double maxZoomLevel;

    Swift

    var maxZoomLevel: Double { get set }
  • 지도의 최대 기울기 각도.

    기본값은 60입니다.

    Declaration

    Objective-C

    @property (nonatomic) double maxTilt;

    Swift

    var maxTilt: Double { get set }
  • 지도의 제한 영역.

    기본값은 제한이 없음을 의미하는 nil입니다.

    Declaration

    Objective-C

    @property (nonatomic, nullable) NMGLatLngBounds *extent;

    Swift

    var extent: NMGLatLngBounds? { get set }
  • 지도의 콘텐츠 영역 중심에 대한 카메라 위치.

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NMFCameraPosition *_Nonnull cameraPosition;

    Swift

    @NSCopying var cameraPosition: NMFCameraPosition { get }
  • 지도의 콘텐츠 영역에 대한 NMGLatLngBounds. 콘텐츠 패딩이 모두 0이면 coveringBounds와 동일한 영역이, 콘텐츠 패딩이 지정되어 있으면 coveringBounds에서 콘텐츠 패딩을 제외한 영역이 반환됩니다.

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NMGLatLngBounds *_Nonnull contentBounds;

    Swift

    @NSCopying var contentBounds: NMGLatLngBounds { get }
  • 지도의 콘텐츠 영역에 대한 폴리곤 객체. 콘텐츠 패딩이 모두 0이면 coveringRegion과 동일한 폴리곤이, 콘텐츠 패딩이 지정되어 있으면 coveringRegion에서 콘텐츠 패딩을 제외한 폴리곤이 반환됩니다.

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NMGPolygon *_Nonnull contentRegion;

    Swift

    @NSCopying var contentRegion: NMGPolygon<AnyObject> { get }
  • 콘텐츠 패딩을 포함한 지도의 뷰 전체 영역에 대한 NMGLatLngBounds.

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NMGLatLngBounds *_Nonnull coveringBounds;

    Swift

    @NSCopying var coveringBounds: NMGLatLngBounds { get }
  • 콘텐츠 패딩을 포함한 지도의 뷰 전체 영역에 대한 폴리곤 객체.

    Declaration

    Objective-C

    @property (nonatomic, copy, readonly) NMGPolygon *_Nonnull coveringRegion;

    Swift

    @NSCopying var coveringRegion: NMGPolygon<AnyObject> { get }
  • 콘텐츠 패딩을 포함한 지도의 뷰 전체를 완전히 덮는 타일 ID의 목록을 반환합니다.

    See

    NMFTileId

    Declaration

    Objective-C

    - (nonnull NSArray<NSNumber *> *)getCoveringTileIds;

    Swift

    func getCoveringTileIds() -> [NSNumber]

    Return Value

    타일 ID의 목록.

  • 콘텐츠 패딩을 포함한 지도의 뷰 전체를 완전히 덮는 zoom 레벨 타일 ID의 목록을 반환합니다.

    See

    NMFTileId

    Declaration

    Objective-C

    - (nonnull NSArray<NSNumber *> *)getCoveringTileIdsAtZoom:(NSInteger)zoom;

    Swift

    func getCoveringTileIds(atZoom zoom: Int) -> [NSNumber]

    Parameters

    zoom

    줌 레벨.

    Return Value

    타일 ID의 목록.

  • 이 지도에 대한 NMFProjection 객체. 항상 같은 객체가 반환됩니다.

    Declaration

    Objective-C

    @property (nonatomic, readonly) NMFProjection *_Nonnull projection;

    Swift

    var projection: NMFProjection { get }
  • 카메라를 이동합니다. 만약 지도 이동 애니메이션이 진행 중이었다면 취소되고, 진행 중인 NMFCameraUpdate의 취소 콜백 블록이 호출됩니다.

    Declaration

    Objective-C

    - (void)moveCamera:(nonnull NMFCameraUpdate *)cameraUpdate;

    Swift

    func moveCamera(_ cameraUpdate: NMFCameraUpdate)

    Parameters

    cameraUpdate

    NMFCameraUpdate 객체.

  • 카메라를 이동합니다. 만약 지도 이동 애니메이션이 진행 중이었다면 취소되고, 진행 중인 NMFCameraUpdate의 취소 콜백 블록이 호출됩니다. 카메라 이동이 완료되거나 취소되었을 경우 completion 블록이 호출됩니다.

    Declaration

    Objective-C

    - (void)moveCamera:(nonnull NMFCameraUpdate *)cameraUpdate
            completion:(nullable void (^)(_Bool))completion;

    Swift

    func moveCamera(_ cameraUpdate: NMFCameraUpdate) async -> Bool

    Parameters

    cameraUpdate

    NMFCameraUpdate 객체.

    completion

    카메라 이동이 완료되었을 때 호출되는 콜백 블록. 애니메이션이 있으면 완전히 끝난 후에 호출됩니다. isCancelled는 카메라 이동이 완료되기 전에 다른 카메라 이동이 호출되거나 사용자가 제스처로 지도를 조작한 경우 YES입니다.

  • 현재 진행 중인 지도 이동 애니메이션을 취소합니다.

    Declaration

    Objective-C

    - (void)cancelTransitions;

    Swift

    func cancelTransitions()
  • 현재 진행 중인 지도 이동 애니메이션을 취소합니다.

    Declaration

    Objective-C

    - (void)cancelTransitions:(NSInteger)reason;

    Swift

    func cancelTransitions(_ reason: Int)

    Parameters

    reason

    취소의 원인.

  • 위치 추적 모드.

    NMFMyPositionMode 객체.

    Declaration

    Objective-C

    @property (nonatomic) NMFMyPositionMode positionMode;

    Swift

    var positionMode: NMFMyPositionMode { get set }
  • 지도를 기울일 때 적용되는 심벌의 원근 계수. 계수가 1일 경우 배경 지도와 동일한 비율로 멀리 있는 심벌은 작아지고 가까이 있는 심벌은 커지며, 0에 가까울수록 원근 효과가 감소합니다.

    기본값은 1입니다.

    Declaration

    Objective-C

    @property (nonatomic) CGFloat symbolPerspectiveRatio;

    Swift

    var symbolPerspectiveRatio: CGFloat { get set }
  • 심벌의 크기 배율. 배율이 0.5일 경우 절반, 2일 경우 두 배의 크기로 표시됩니다.

    기본값은 1입니다.

    Declaration

    Objective-C

    @property (nonatomic) CGFloat symbolScale;

    Swift

    var symbolScale: CGFloat { get set }
  • 특정 화면 좌표 주변 tolerance 내에 나타난 모든 오버레이 및 심벌을 가져옵니다. 목록은 가장 위에 그려진 요소부터 가장 아래에 그려진 요소의 순으로 정렬됩니다.

    Declaration

    Objective-C

    - (nonnull NSArray<id<NMFPickable>> *)pickAll:(CGPoint)point
                                    withTolerance:(NSInteger)tolerance;

    Parameters

    point

    화면 좌표.

    tolerance

    point를 기준으로 한 반경. pt 단위.

    Return Value

    오버레이 및 심벌의 목록. point 주변 tolerance pt 내에 존재하는 오버레이 또는 심벌이 없을 경우 빈 목록.

  • 특정 화면 좌표에 나타난 모든 오버레이 및 심벌을 가져옵니다. 목록은 가장 위에 그려진 요소부터 가장 아래에 그려진 요소의 순으로 정렬됩니다. pickAll(point, 0)과 동일합니다.

    Declaration

    Objective-C

    - (nullable id<NMFPickable>)pick:(CGPoint)point;

    Parameters

    point

    화면 좌표.

    Return Value

    오버레이 또는 심벌. point에 존재하는 오버레이 또는 심벌이 없을 경우 nil.