RouteReplanningEngine

public protocol RouteReplanningEngine

Engine responsible for replanning a route.

Important

This is a Public Preview API. It may be changed or removed at any time.
  • Selector responsible for choosing the best route from a refreshed route and it’s alternatives

    Declaration

    Swift

    var routeProposalSelector: RouteProposalSelector { get set }
  • Replan a given Route using async.

    Throws

    TomTomSDKRouteReplanner.ReplanningError if cannot replan the route.

    Declaration

    Swift

    func replan(
        navigationSnapshot: NavigationSnapshot,
        reason: ReplanRequestReason,
        routeReplanner: TomTomSDKRouteReplanner.RouteReplanner
    ) async throws -> RouteReplanningResult

    Parameters

    navigationSnapshot

    NavigationSnapshot, contains information about the state of the trip at a certain moment.

    reason

    ReplanRequestReason, reason of route replanning

    routeReplanner

    RouteReplanner, provides route replanning action for dynamic use cases

    Return Value

    RouteReplaningResult

  • Checks if it is time to refresh the current route. This function might be called on every location update, so it is the engine’s responsibility to limit the replanning frequency.

    Declaration

    Swift

    func shouldReplanRoute(_ route: inout Route, navigationSnapshot: NavigationSnapshot) -> Bool

    Parameters

    route

    A route that should be checked.

    navigationSnapshot

    Current navigation snapshot.

    Return Value

    A Boolean value indicating whether we should replan the route.

  • Checks if it is time to advance guidance progress of the current route. This function might be called on every location update, so it is the engine’s responsibility to limit the replanning frequency.

    Declaration

    Swift

    func shouldAdvanceGuidanceProgress(_ route: Route) -> Bool

    Parameters

    route

    A route that should be checked.

    Return Value

    A Boolean value that indicates whether the guidance progress should be advanced.

  • Replan a given Route using completion handler.

    Throws

    TomTomSDKRouteReplanner.ReplanningError if cannot replan the route.

    Declaration

    Swift

    public func replan(
        navigationSnapshot: NavigationSnapshot,
        reason: ReplanRequestReason,
        routeReplanner: TomTomSDKRouteReplanner.RouteReplanner,
        completion: @escaping (RouteReplanningResult) -> ()
    ) throws

    Parameters

    navigationSnapshot

    NavigationSnapshot, contains information about the state of the trip at a certain moment.

    reason

    ReplanRequestReason, reason of route replanning

    routeReplanner

    RouteReplanner, provides route replanning action for dynamic use cases

    completion

    Returns RouteReplaningResult