Poi
open class Poi : NSObject, Label
지도상에 Poi를 그리기 위한 클래스
Poi를 추가하기 위해서는 먼저 KakaoMap에 LabelLayer를 추가한 뒤, 해당 Layer에 Poi를 추가할 수 있다.
show, hide, style 변경이 가능하며, Poi마다 개별 badge를 추가할 수 있다.
이동, 또는 회전을 하는 애니메이션이 가능하다. 이동 애니메이션중에 다른 애니메이션 동작을 할 경우 기존 이동 애니메이션이 멈춘다. 회전 애니메이션 중에 다른 회전 애니메이션을 할 경우 기존 애니메이션이 멈춘다.
Poi는 사용자가 직접 생성할 수 없으며, PoiOptions class를 이용하여 Layer에 추가하면 해당 Object를 얻을 수 있다.
-
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 효과 적용 여부
-
개별 Poi에 Badge를 추가한다.
같은 id의 badge가 이미 있는 경우 추가되거나 override 되지 않는다.
See also
PoiBadgeDeclaration
Swift
@objc public func addBadge(_ badge: PoiBadge)
Parameters
badge
추가할 Poi Badge
-
개별 Poi에 여러개의 Badge를 추가한다.
같은 id의 badge가 이미 있는 경우 추가되거나 override 되지 않는다.
See also
PoiBadgeDeclaration
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()
-
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
해당 함수 실행중에 새로운 경로가 들어왔을때 현재위치~새 경로 시작점간에 거리에서 점프를 할지에 대한 임계값.
-
현재 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
-
현재 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
-
Poi 탭 이벤트 핸들러를 추가한다.
Declaration
Swift
open func addPoiTappedEventHandler<U>(target: U, handler: @escaping (U) -> (PoiInteractionEventParam) -> Void) -> DisposableEventHandler where U : AnyObject
Parameters
target
이벤트를 수신할 target Object
handler
이벤트를 수신할 method
Return Value
추가된 이벤트 핸들러
-
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 }