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(navigationSnapshot:
Asynchronousreason: routeReplanner: ) 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(navigationSnapshot:
Extension methodreason: routeReplanner: completion: ) 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