Poi

open class Poi : NSObject, Label

지도상에 Poi를 그리기 위한 클래스

Poi를 추가하기 위해서는 먼저 KakaoMap에 LabelLayer를 추가한 뒤, 해당 Layer에 Poi를 추가할 수 있다.

show, hide, style 변경이 가능하며, Poi마다 개별 badge를 추가할 수 있다.

이동, 또는 회전을 하는 애니메이션이 가능하다. 이동 애니메이션중에 다른 애니메이션 동작을 할 경우 기존 이동 애니메이션이 멈춘다. 회전 애니메이션 중에 다른 회전 애니메이션을 할 경우 기존 애니메이션이 멈춘다.

Poi는 사용자가 직접 생성할 수 없으며, PoiOptions class를 이용하여 Layer에 추가하면 해당 Object를 얻을 수 있다.

Poi Controls

  • Poi를 보여준다.

    Declaration

    Swift

    public func show()
  • Poi를 표시하고, 해당 위치로 이동한다.

    Declaration

    Swift

    @objc
    public func showWithAutoMove(callback: (() -> Void)? = nil)

    Parameters

    callback

    Poi위치로 카메라 이동이 끝났을 때, 호출할 callback ( optional)

  • Poi를 숨긴다.

    Declaration

    Swift

    public func hide()
  • Poi의 Style을 변경한다.

    LabelManager에 등록한 PoiStyle의 키를 이용하여 Style을 변경한다.

    Declaration

    Swift

    public func changeStyle(styleID: String, enableTransition: Bool = false)

    Parameters

    styleID

    변경할 Style의 ID

    enableTransition

    Style 변경시 trasition 효과 적용 여부

  • Poi의 text와 style을 변경한다.

    Poi의 text와 style을 바꿀 때 사용한다.

    Declaration

    Swift

    @objc
    public func changeTextAndStyle(texts: [PoiText], styleID: String, enableTransition: Bool = false)

    Parameters

    texts

    바꾸고자 하는 PoiText

    styleID

    변경할 styleID.

    enableTransition

    변경시 trasition 효과 적용 여부

Managing Badges

  • 개별 Poi에 Badge를 추가한다.

    같은 id의 badge가 이미 있는 경우 추가되거나 override 되지 않는다.

    See also

    PoiBadge

    Declaration

    Swift

    @objc
    public func addBadge(_ badge: PoiBadge)

    Parameters

    badge

    추가할 Poi Badge

  • 개별 Poi에 여러개의 Badge를 추가한다.

    같은 id의 badge가 이미 있는 경우 추가되거나 override 되지 않는다.

    See also

    PoiBadge

    Declaration

    Swift

    @objc
    public func addBadges(_ badges: [PoiBadge])

    Parameters

    badges

    추가할 Poi Badge 배열

  • Poi에 추가된 뱃지를 지운다.

    Poi에 등록된 Badge ID를 이용하여 지운다.

    Note

    PoiStyle에 추가되어있는 In-Style Badge는 스타일에 종속되므로, 해당 함수로 지울 수 없다.

    Declaration

    Swift

    @objc
    public func removeBadge(badgeID: String)

    Parameters

    badgeID

    지우고자하는 badge의 ID

  • Poi에 등록된 Badge를 일괄 지운다.

    Note

    PoiStyle에 추가되어있는 In-Style Badge는 스타일에 종속되므로, 해당 함수를 호출해도 지워지지 않는다.

    Declaration

    Swift

    @objc
    public func removeAllBadge()
  • Poi에 등록되어있는 Badge를 보여준다.

    Declaration

    Swift

    @objc
    public func showBadge(badgeID: String)

    Parameters

    badgeID

    보여주고자 하는 badge의 ID

  • Poi에 등록되어있는 Badge들을 보여준다.

    Declaration

    Swift

    @objc
    public func showBadges(badgeIDs: [String])

    Parameters

    badgeIDs

    보여주고자 하는 badge의 ID 배열

  • Poi에 등록되어있는 Badge를 숨긴다.

    Declaration

    Swift

    @objc
    public func hideBadge(badgeID: String)

    Parameters

    badgeID

    숨기고자 하는 badge의 ID

  • Poi에 등록되어있는 Badge들을 숨긴다.

    Declaration

    Swift

    @objc
    public func hideBadges(badgeIDs: [String])

    Parameters

    badgeIDs

    숨기고자 하는 badge의 ID 배열

  • Poi의 In-Style badge를 보여준다.

    LabelManager를 통해 등록된 PoiStyle에 종속되는 badge를 보여준다.

    Declaration

    Swift

    @objc
    public func showStyleBadge(badgeID: String)

    Parameters

    badgeID

    보여주고자 하는 In-Style badge의 ID

  • Poi의 In-Style badge를 모두 보여준다.

    LabelManager를 통해 등록된 PoiStyle에 종속되는 모든 badge를 보여준다.

    Declaration

    Swift

    @objc
    public func showAllStyleBadges()
  • Poi의 In-Style badge를 숨긴다.

    LabelManager를 통해 등록된 PoiStyle에 종속되는 badge를 숨긴다.

    Declaration

    Swift

    @objc
    public func hideStyleBadge(badgeID: String)

    Parameters

    badgeID

    숨기고자 하는 In-Style badge의 ID

  • Poi의 In-Style badge를 모두 숨긴다.

    LabelManager를 통해 등록된 PoiStyle에 종속되는 모든 badge를 숨긴다.

    Declaration

    Swift

    @objc
    public func hideAllStyleBadges()

Animation

  • Poi를 지정한 위치로 옮긴다

    Poi를 지정한 위치로 지정한 시간동안 이동시킨다.

    Declaration

    Swift

    @objc
    public func moveAt(_ position: MapPoint, duration: UInt)

    Parameters

    position

    이동시킬 위치

    duration

    애니메이션 시간

  • Poi를 지정한 각도로 회전시킨다.

    Poi를 지정한 각도로 지정한 시간동안 회전시킨다. 현재 방향을 기준으로 회전하는것이 아니라, 절대회전방위로 이동한다. 회전중에 setOrientation()이 호출되면, 멈춘다.

    Declaration

    Swift

    @objc
    public func rotateAt(_ roll: Double, duration: UInt)

    Parameters

    roll

    회전시킬 각도

    duration

    애니메이션 시간

  • Poi가 특정지점들을 따라서 움직이게 한다.

    Path를 지정해서 Poi가 해당 path를 따라 움직이게 한다. 단, Poi의 각도는 변하지 않고 지정한 Path를 따라 움직이기만 한다. 이동중에 setPosition / moveAt이 호출되면 멈춘다.

    Declaration

    Swift

    @objc
    public func moveOnPath(_ points: [MapPoint], duration: UInt, cornerRadius: Float, jumpThreshold: Float)

    Parameters

    points

    Poi가 따라서 움직일 각도

    duration

    애니메이션 시간

    cornerRadius

    Path중 코너를 통과할 때 부드러운 이동 효과를 주기 위한 곡선으로 처리하는 길이

    jumpTreshold

    해당 함수 실행중에 새로운 경로가 들어왔을때 현재위치~새 경로 시작점간에 거리에서 점프를 할지에 대한 임계값.

  • Poi가 특정지점들을 따라서 회전하면서 움직이게 한다.

    Path를 지정해서 Poi가 해당 path를 따라 회전하면서 움직이게 한다. path의 각도에 따라 Poi도 같이 회전한다.

    Declaration

    Swift

    @objc
    public func moveAndRotateOnPath(_ points: [MapPoint], baseRadian: Float, duration: UInt, cornerRadius: Float, jumpThreshold: Float)

    Parameters

    points

    Poi가 따라서 움직일 path

    baseRadian

    path가 1개뿐이거나, 진행방향의 역방향으로 path가 들어와 방향을 알 수 없을 때 가이드가 될 radian 값.

    duration

    애니메이션 시간

    cornerRadius

    Path중 코너를 통과할 때 부드러운 이동 효과를 주기 위한 곡선으로 처리하는 길이

    jumpTreshold

    해당 함수 실행중에 새로운 경로가 들어왔을때 현재위치~새 경로 시작점간에 거리에서 점프를 할지에 대한 임계값.

Sharing Position

  • 현재 Poi의 position을 공유할 Poi를 추가한다/

    파라미터의 Poi가 현재 Poi의 위치만을 따라간다.

    Declaration

    Swift

    @objc
    public func sharePositionWithPoi(_ poi: Poi)

    Parameters

    poi

    현재 poi의 position을 공유할 poi

  • 현재 Poi와 지정된 poi간에 더이상 position을 공유하지 않게한다.

    Declaration

    Swift

    @objc
    public func removeSharePositionWithPoi(_ poi: Poi)

    Parameters

    poi

    position공유를 하지 않을 poi

Sharing Transform

  • 현재 Poi의 transform을 공유할 Poi를 추가한다.

    파라미터의 Poi가 현재 객체 Poi의 transform을 따라간다.

    Declaration

    Swift

    @objc
    public func shareTransformWithPoi(_ poi: Poi)

    Parameters

    poi

    현재 poi의 transform을 공유할 poi

  • 현재 Poi와 지정된 poi간에 더이상 transform을 공유하지 않게한다.

    Declaration

    Swift

    @objc
    public func removeShareTransformWithPoi(_ poi: Poi)

    Parameters

    poi

    transform공유를 하지 않을 poi

  • 현재 Poi의 transform을 공유할 Shape를 추가한다.

    파라미터의 Shape가 현재 객체 Poi의 transform을 따라간다.

    Declaration

    Swift

    @objc
    public func shareTransformWithShape(_ shape: Shape)

    Parameters

    shape

    현재 poi의 transform을 공유할 shape

  • 현재 Poi와 지정된 shape간에 더이상 transform을 공유하지 않게한다.

    Declaration

    Swift

    @objc
    public func removeShareTransformWithShape(_ shape: Shape)

    Parameters

    shape

    transform공유를 하지 않을 shape

Event Handling

Properties

  • Poi가 속한 LayerID

    Declaration

    Swift

    public var layerID: String { get }
  • Poi의 ID

    Declaration

    Swift

    public var itemID: String { get }
  • Poi의 렌더링 우선순위

    rank값을 새로 assign하면, Poi의 rank가 업데이트 된다.

    Declaration

    Swift

    @objc
    public var rank: Int { get set }
  • Poi의 clickable 여부. 생성 옵션에서 따로 지정하지 않는 경우, default는 false로 설정된다.

    새로운 값을 assign하여 clickable 여부를 바꿀 수 있다.

    Declaration

    Swift

    @objc
    public var clickable: Bool { get set }
  • Poi의 위치

    새로운 position값으로 assign하면, Poi의 position값이 변경된다.

    Declaration

    Swift

    @objc
    public var position: MapPoint { get set }
  • Poi의 Orientation(radian)

    새로운 orientation값으로 assign하면, Poi의 Orientation값이 변경된다.

    Declaration

    Swift

    @objc
    public var orientation: Double { get set }
  • Poi가 현재 뷰에 보여지고 있는지 여부

    Declaration

    Swift

    public var isShow: Bool { get }
  • Poi가 그려진 위치로부터 pixelOffset을 적용한다.

    left/top 방향은 -, right/bottom 방향은 +로 offset을 지정할 수 있다.

    Declaration

    Swift

    @objc
    public var pixelOffset: CGPoint { get set }
  • 사용자 객체

    Declaration

    Swift

    public var userObject: AnyObject? { get set }