Route

public class Route : NSObject

맵에 표시되는 Route를 나타내는 클래스.

Route는 Polyline/MapPolyline 과 마찬가지로 선을 그리는 기능을 하지만 경로선을 표현하기 위한 기능을 추가로 가지고 있다.

예를 들면 레벨별로 디테일 조절 처리가 들어간다. 즉, 상위 레벨일수록 RoutePoints가 rough하게 표시되며, 하위레벨일수록 자세하게 표시된다.

따라서 맵에 경로를 표시할 때 사용하기에 적절하다. show/hide/style 변경 등이 가능하다.

하나 이상의 RouteSegment로 이루어진다. Route는 레벨별로 디테일 조절 처리가 들어간다.

Route를 추가하기 위해서는 먼저 KakaoMap에 RouteLayer를 추가한 뒤, 해당 Layer에 Route를 추가한다.

Route는 사용자가 직접 생성할 수 없으며, RouteLayer를 통해 해당 Object를 얻을 수 있다.

Route Controls

  • Route를 보여준다.

    Declaration

    Swift

    @objc
    public func show()
  • Route를 숨긴다.

    Declaration

    Swift

    @objc
    public func hide()
  • Route의 style과 Data를 변경한다.

    Route의 Style과 함께 Route가 표시하는 RouteSegment Data를 변경하고자 할 때 사용한다. 단, RouteSegment Data를 바꿀때는 해당 Route 객체가 가리키는 본질이 변하지 않을때만 사용한다. 즉 전혀 다른 Route 객체일때는 Route를 하나 더 만드는것을 권장한다. ex. 경로 탐색 결과를 보여주고, 교통 정보가 업데이트 되어서 스타일과 segment가 바뀌어야 하는 경우. ex. 경로 탐색 결과를 여러개 보여주고, disabled route <-> enabled route 로 style 전환이 필요한 경우.

    Declaration

    Swift

    @objc
    public func changeStyleAndData(styleID: String, segments: [RouteSegment])

    Parameters

    styleID

    변경할 styleID

    segments

    변경할 route segments data.

  • 특정 위치에 해당하는 경로선상 진행도를 가져온다.

    진행도의 기준 진행 방향은 시작점 -> 끝점 방향이다.

    position 값이 정확히 경로선상에 있는 값이 아닌 경우 경로선상의 가장 가까운 위치를 찾아 해당 위치로 진행도를 계산한다.

    Declaration

    Swift

    @objc
    public func getProgressAlongRouteLine(position: MapPoint) -> Float

    Parameters

    position

    경로선 상의 진행도를 얻어올 위치

  • RouteLine 상의 지정한 진행도에 해당하는 위치 및 방향을 가져온다.

    진행도의 기준 진행 방향은 시작점 -> 끝점 방향이다.

    Declaration

    Swift

    public func getRoutePointInfoOnRoute(progress: Float) -> RoutePointInfo?

    Parameters

    progress

    진행도(0.0~1.0).

  • RouteLine의 진행도를 변경한다.

    RouteLine의 현재 진행도에서 새로 지정한 진행도로 변경된다. 기존에 변경이 진행중이던 내용이 있으면 중지되고 중지된 상태에서 새로 지정한 진행도로 변경된다.

    진행도의 기준 진행 방향은 시작점 -> 끝점 방향이다.

    초기값은 progress : 0.0, type : .clearFromStart

    progress가 동일하게 0.0 이어도 type이 .clearFromStart와 .fillFromStart는 다른 상태임에 주의해야 한다.

    Declaration

    Swift

    @objc
    public func setProgress(progress: Float, type: RouteProgressType, duration: UInt, callback: ((Route?) -> Void)? = nil)
  • RouteLine의 진행도를 가져온다.

    진행도 및 진행 타입을 가져온다.

    Declaration

    Swift

    public func getProgress() -> RouteProgressInfo?

    Return Value

    현재 RouteProgressInfo. 즉시 리턴됨. 진행도를 가져올 수 없는 상태(정상적으로 view에 등록되어 있지 않은 상태)인 경우 nil.

Properties

  • Route의 ID

    Declaration

    Swift

    @objc
    public var routeID: String { get }
  • Route가 속한 Layer의 ID

    Declaration

    Swift

    @objc
    public var layerID: String { get }
  • Route의 렌더링 우선순위. 값이 클수록 위에 그려진다.

    새로운 zOrder로 assgin하면, 해당 Route의 zOrder가 업데이트된다.

    zOrder = 0인 Route는 zOrder = 1 인 Route보다 아래에 그려진다.

    Declaration

    Swift

    @objc
    public var zOrder: Int { get set }
  • Route가 표출되고있는지에 대한 여부를 가져온다.

    Declaration

    Swift

    @objc
    public var isShow: Bool { get }
  • 사용자 객체

    Declaration

    Swift

    @objc
    public var userObject: AnyObject? { get set }