KakaoMap

open class KakaoMap : ViewBase, OnViewResized

지도 뷰를 위한 클래스

MapView Controls

  • 여백을 지정한다.

    여백을 지정하면, 지도 중심점 계산이나 애니메이션 기능과 같이 뷰 영역 계산이 필요한 부분에 반영된다.

    예를들어, 좌측 여백을 지정하면 화면의 중심점에 대한 위치 계산시 (좌측여백 / 2)만큼 우측으로 밀린 지점에 대한 위치로 계산한다.

    Declaration

    Swift

    @objc
    open func setMargins(_ insets: UIEdgeInsets)

    Parameters

    insets

    상하좌우 여백

  • 여백을 0으로 초기화한다.

    Declaration

    Swift

    @objc
    open func resetMargins()
  • 지도 Poi 표시 여부를 설정한다.

    Declaration

    Swift

    @objc
    open func setPoiEnabled(_ enable: Bool)

    Parameters

    enable

    true인경우, 지도판의 Poi가 표시되고, false인 경우 지도판의 Poi가 표시되지 않는다.

  • 지도 기본 Poi(API를 통해 추가된 POI가 아닌 POI) 들의 클릭가능 여부

    Declaration

    Swift

    @objc
    open var poiClickable: Bool { get set }
  • 지도 최소 레벨.

    KakaoMap의 지도 구성상 최소 레벨을 가져온다.

    Declaration

    Swift

    @objc
    public var minLevel: Int { get }
  • 지도 최대 레벨.

    KakaoMap의 지도 구성상 최대 레벨을 가져온다.

    Declaration

    Swift

    @objc
    public var maxLevel: Int { get }
  • 카메라 이동 최소 레벨

    카메라가 이동할 수 있는 최소 레벨. 새 값을 지정할 때, minLevel~maxLevel 사이의 값이 아닐 경우 무시된다. cameraMinLevel은 cameraMaxLevel 보다 같거나 작아야 한다.

    Declaration

    Swift

    @objc
    open var cameraMinLevel: Int { get set }
  • 카메라 이동 최대 레벨

    카메라가 이동할 수 있는 최대 레벨. 새 값을 지정할 때, minLevel~maxLevel 사이의 값이 아닐 경우 무시된다. cameraMaxLevel은 cameraMinLevel보다 크거나 같아야 한다.

    Declaration

    Swift

    @objc
    open var cameraMaxLevel: Int { get set }
  • 현재 줌 레벨.

    현재 KakaoMap의 줌 레벨을 가져온다.

    Declaration

    Swift

    @objc
    open var zoomLevel: Int { get }
  • 현재 포커스 상태

    KakaoMap의 현재 Focus 여부를 가져온다.

    Declaration

    Swift

    @objc
    open var isFocused: Bool { get }
  • 현재 지도의 상하좌우 여백 값.

    KakaoMap의 현재 상하좌우 여백값을 가져온다.

    Declaration

    Swift

    @objc
    open var margins: UIEdgeInsets { get }

Camera

  • 카메라를 cameraUpdate로 정의된 대로 즉시 이동한다.

    진행중이던 카메라 이동 애니메이션은 모두 종료된다.

    See also

    CameraUpdate

    Declaration

    Swift

    @objc
    open func moveCamera(_ cameraUpdate: CameraUpdate, callback: (() -> Void)? = nil)

    Parameters

    cameraUpdate

    카메라 이동을 정의한 CameraUpdate.

    callback

    이동 완료시 호출될 callback

  • 카메라를 cameraUpdate로 정의된 대로 animationOption 에 따라 이동한다.

    See also

    CameraUpdate

    See also

    CameraAnimationOptions

    Declaration

    Swift

    @objc
    open func animateCamera(cameraUpdate: CameraUpdate, options: CameraAnimationOptions, callback: (() -> Void)? = nil)

    Parameters

    cameraUpdate

    카메라 이동을 정의한 CameraUpdate.

    options

    이동 애니메이션 옵션.

    callback

    이동 애니메이션 종료시 호출될 callback

  • 카메라의 orientation(회전, 기울임)을 0으로 초기화시킨다.

    Declaration

    Swift

    @objc
    open func resetCameraOrientation(_ options: CameraAnimationOptions = CameraAnimationOptions(autoElevation: false, consecutive: false, durationInMillis: 0),
                                     callback: (() -> Void)? = nil)

    Parameters

    options

    애니메이션 옵션.

    callback

    카메라 이동 애니메이션 종료시 호출될 callback

  • CameraAnimationOptions에 autoElevation 을 true로 지정한 애니메이션 진행시, autoElevation하는 동안 정북방향으로 카메라를 회전할지 여부를 지정한다.

    Declaration

    Swift

    @objc
    open func setBackToNorthDuringAutoElevation(_ enable: Bool)

    Parameters

    enable

    true면 autoElevation시 정북으로 회전한다.

  • level에 해당하는 카메라 높이를 가져온다.

    Declaration

    Swift

    @objc
    open func heightAtLevel(_ level: Int) -> Double

    Parameters

    level

    지도 레벨

    Return Value

    카메라 높이(m)

  • 현재 KakaoMap 영역의 viewPoint에 해당하는 실제 위치를 가져온다.

    Declaration

    Swift

    @objc
    open func getPosition(_ viewPoint: CGPoint) -> MapPoint

    Parameters

    viewPoint

    KakaoMap 뷰 범위 내의 임의의 한 지점 (x, y)

    Return Value

    viewPoint에 해당하는 실제 위치를 나타내는 MapPoint. viewPoint가 KakaoMap의 범위 밖일 경우 잘못된 MapPoint가 return 된다.

  • 임의의 지점들이 특정레벨에서 지정된 viewRect 안에 모두 그려질 수 있는지를 확인한다.

    Declaration

    Swift

    open func canShow(mapPoints: [MapPoint], atLevel level: Int, rotationAngle: Double = 0.0, weight: Float = 1.0, inRect rect: CGRect? = nil) -> Bool

    Parameters

    mapPoints

    MapPoint의 배열

    atLevel

    지도 레벨

    rotationAngle

    카메라 회전각(radian).

    weight

    view bound내에 지점들이 다 들어올지 판단할 때 기준이 되는 높이의 가중치값. 기본값은 1.0이고, 1.0보다 크면 view bound내의 points를 좀 더 넉넉하게 보여질 수 있도록 level을 판단한다.

    inRect

    view bound내에 지점들을 그리고 싶은 sub viewRect. nil이면 전체

    Return Value

    가능여부

  • 카메라 애니메이션 활성화 상태를 지정한다.

    true로 설정하면 animateCamera 호출 시 애니메이션이 활성화 된다. false로 설정하면 animateCamera()를 호출해도 애니메이션 없이 즉시 이동된다.

    Declaration

    Swift

    @objc
    open var cameraAnimationEnabled: Bool { get set }
  • 현재 카메라 높이(m)를 가져온다.

    Declaration

    Swift

    @objc
    open var cameraHeight: Double { get }
  • 현재 카메라의 회전각(radian, 정북기준 반시계방향).

    Declaration

    Swift

    @objc
    open var rotationAngle: Double { get }
  • 현재 카메라의 기울임각(radian, 수직 방향 기준).

    Declaration

    Swift

    @objc
    open var tiltAngle: Double { get }

MapView Settings

  • 지도상 표시를 지원하는 언어코드 목록을 가져온다.

    Declaration

    Swift

    @objc
    public func getSupportedLanguages() -> [String]

    Return Value

    지원하는 언어코드의 배열

  • 지도상에 표시될 언어를 설정한다.

    지원되는 언어만 선택가능하다. 미지원언어를 지정할 경우 무시된다.

    Declaration

    Swift

    @objc
    open func setLanguage(_ langCode: String)

    Parameters

    langCode

    언어 코드.(ex. ko, en, ja, zh)

  • 지도상에 표시될 언어를 설정한다.

    지원되는 언어만 선택가능하다. 미지원언어를 지정할 경우 무시된다.

    Declaration

    Swift

    @available(macOS 13, iOS 16, tvOS 16, watchOS 9, *)
    open func setLanguage(_ langCode: Locale.LanguageCode)

    Parameters

    langCode

    언어 코드.

  • 지도에 표시될 기본 라벨의 타일별 최대 개수를 지정한다.

    Declaration

    Swift

    @objc
    open func setMaxCountPerTile(category: LabelCategory, count: UInt)

    Parameters

    category

    라벨 카테고리

    count

    최대 개수.

  • 타일별 최대 개수 지정값을 초기값으로 되돌린다.

    Declaration

    Swift

    @objc
    open func resetMaxCountPerTile(category: LabelCategory)

    Parameters

    category

    라벨 카테고리

  • 특정 카테고리의 지도 기본 라벨의 표시 유무를 지정한다.

    Declaration

    Swift

    @objc
    open func setLabelCategoryVisible(category: LabelCategory, visible: Bool)

    Parameters

    category

    라벨 카테고리

    visible

    표시여부.

  • 건물 높이 scale을 지정한다. scale값에 따라 그려지는 건물의 높이가 조절된다.

    Declaration

    Swift

    @objc
    open var buildingScale: Float { get set }

    Parameters

    scale

    0 ~ 1 사이의 건물 높이 scale

  • 지도상의 poi size를 조절한다. icon 크기도 함께 변한다.

    default값은 Regular

    Declaration

    Swift

    @objc
    open var poiScale: PoiScaleType { get set }
  • viewRect크기가 변할 때, 지도 각 레벨에 해당하는 카메라의 높이값이 재계산된다. 계산 후 레벨을 유지할 수 있도록 카메라를 조정할지 여부를 지정한다.

    true일 경우, 크기가 변하면 카메라 높이값이 레벨을 유지할 수 있게 재조정된다. 기본값 false.

    Declaration

    Swift

    @objc
    open var keepLevelOnResize: Bool { get set }
  • Tap인식 사이의 시간.

    탭이 인식되었을 때 연속된 제스쳐를 위한 인식 대기시간을 의미한다. 탭, 더블탭, 탭&드래그 제스쳐 등의 인식에 영향을 미친다. 단위 ms. 기본값 450ms

    Declaration

    Swift

    @objc
    public var tapInterval: UInt { get set }

Overlay

  • 지도 위에 overlay를 표시한다.

    Declaration

    Swift

    @objc
    open func showOverlay(_ overlay: String)

    Parameters

    overlay

    지도위에 표시하고자 하는 overlay 이름

  • 지도 위에 overlay를 숨긴다.

    Declaration

    Swift

    @objc
    open func hideOverlay(_ overlay: String)

    Parameters

    overlay

    숨길 overlay 이름

ScaleBar

  • 축척을 표시한다.

    Declaration

    Swift

    @objc
    open func showScaleBar()
  • 축척을 숨긴다.

    Declaration

    Swift

    @objc
    open func hideScaleBar()
  • 축척의 alignment와 offset을 지정한다.

    See also

    GuiAlignment

    Declaration

    Swift

    @objc
    open func setScaleBarPosition(origin: GuiAlignment, position: CGPoint)

    Parameters

    origin

    축척의 origin

    position

    축척 origin으로부터의 offset(pt)

  • 축척의 자동숨김 기능 활성화를 지정한다. 활성화되면 축척이 보여진 뒤 일정시간 후에 자동으로 숨겨진다.

    Declaration

    Swift

    @objc
    open func setScaleBarAutoDisappear(_ autoDisappear: Bool)

    Parameters

    autoDisappear

    자동숨김 활성화.

  • 축척의 FadeInOutOption을 지정한다.

    Declaration

    Swift

    @objc
    open func setScaleBarFadeInOutOption(_ option: FadeInOutOptions)

    Parameters

    option

    FadeInOut 옵션.

Compass

  • 나침반을 표시한다.

    Declaration

    Swift

    @objc
    open func showCompass()
  • 나침반을 숨긴다.

    Declaration

    Swift

    @objc
    open func hideCompass()
  • 나침반의 alignment를 지정한다.

    See also

    GuiAlignment

    Declaration

    Swift

    @objc
    open func setCompassPosition(origin: GuiAlignment, position: CGPoint)

    Parameters

    origin

    나침반의 alignment

    position

    나침반 alignmnet로부터의 offset(pt)

Logo

  • 로고의 위치를 지정한다. 로고는 SpriteGUI 와 같은 방식으로 화면상의 특정위치에 고정적으로 표시되므로, 다른 GUI 와 겹치는 현상을 피하기 위해 로고의 위치를 이동시키는 데 사용한다. 위치 지정방식은 SpriteGUI와 동일하다.

    Declaration

    Swift

    @objc
    public func setLogoPosition(origin: GuiAlignment, position: CGPoint)

    Parameters

    origin

    로고의 alignment

    position

    alignment 기준점으로부터의 offset

Gestures

  • 제스쳐의 동작 기준점을 뷰의 가운데로 고정시킨다. 줌/회전/틸트 관련 제스쳐에만 적용된다(그 외 제스쳐는 무시함).

    Declaration

    Swift

    @objc
    open func lockReferencePoint(forGesture gesture: GestureType)

    Parameters

    forGesture

    제스쳐 종류

  • 제스쳐의 동작 기준점을 뷰의 가운데 고정을 해제한다.

    Declaration

    Swift

    @objc
    open func unlockReferencePoint(forGesture gesture: GestureType)

    Parameters

    forGesture

    제스쳐 종류

  • 뷰를 다시 그린다.

    Declaration

    Swift

    @objc
    open func refresh()

DimScreen

  • 지도 뷰의 DimmingScreen 객체

    Declaration

    Swift

    @objc
    open var dimScreen: DimScreen { get }

Managers

Event Delegate

  • 이벤트 delegate를 지정한다.

    Declaration

    Swift

    @objc
    open var eventDelegate: KakaoMapEventDelegate? { get set }

    Parameters

    delegate

    event delegate

  • 뷰의 활성화 상태

    true인 경우 렌더링이 실행되며,false인 경우 렌더링을 하지 않는다.

    Declaration

    Swift

    @objc
    open var isEnabled: Bool { get set }

ViewInfo

  • ViewInfo를 변경한다.

    지정된 이름의 Viewinfo를 서버로부터 가져와서 현재 뷰에 교체하여 적용한다.

    결과는 event delegate 로 전달된다.

    Note: 지도용 ViewInfo만 가능.

    Declaration

    Swift

    @objc
    public func changeViewInfo(appName: String, viewInfoName: String)

    Parameters

    appName

    변경할 app 이름

    viewInfoName

    변경할 viewInfo 이름

Event Handlers