Route
A Route
object defines a single route that the user can follow to visit a series of waypoints in order. The route object includes information about the route, such as its distance and expected travel time. Depending on the criteria used to calculate the route, the route object may also include detailed turn-by-turn instructions.
Typically, you do not create instances of this class directly. Instead, you receive route objects when you request directions using the Directions.calculate(_:completionHandler:)
or Directions.calculateRoutes(matching:completionHandler:)
method. However, if you use the Directions.url(forCalculating:)
method instead, you can use JSONDecoder
to convert the HTTP response into a RouteResponse
or MapMatchingResponse
object and access the RouteResponse.routes
or MapMatchingResponse.routes
property.
-
Initializes a route.
Declaration
Swift
public override init(legs: [RouteLeg], shape: LineString?, distance: LocationDistance, expectedTravelTime: TimeInterval, typicalTravelTime: TimeInterval? = nil)
Parameters
legs
The legs that are traversed in order.
shape
The roads or paths taken as a contiguous polyline.
distance
The route’s distance, measured in meters.
expectedTravelTime
The route’s expected travel time, measured in seconds.
typicalTravelTime
The route’s typical travel time, measured in seconds.
-
Initializes a route from a decoder.
Precondition
If the decoder is decoding JSON data from an API response, theDecoder.userInfo
dictionary must contain aRouteOptions
orMatchOptions
object in theCodingUserInfoKey.options
key. If it does not, aDirectionsCodingError.missingOptions
error is thrown.Declaration
Swift
public required init(from decoder: Decoder) throws
Parameters
decoder
The decoder of JSON-formatted API response data or a previously encoded
Route
object. -
Declaration
Swift
public static func == (lhs: Route, rhs: Route) -> Bool
-
Configuration for applying
See moreRouteRefreshSource
updates to a route.Declaration
Swift
public struct RefreshParameters
-
Merges various properties from
refreshedRoute
legs to the reciever.Declaration
Swift
public func refresh(from refreshedRoute: RouteRefreshSource, refreshParameters: RefreshParameters = RefreshParameters())
Parameters
refreshedRoute
The route containing leg data to merge into the receiver. If this route contains fewer legs than the receiver, this method skips legs from the beginning of the route to make up the difference, so that merging the data from a one-leg route affects only the last leg of the receiver.
refreshParameters
Configuration about what exactly should be updated and from which geometry position.
-
Merges the attributes of the given route’s legs into the receiver’s legs.
Declaration
Swift
public func refreshLegAttributes(from refreshedRoute: RouteRefreshSource)
Parameters
refreshedRoute
The route containing leg attributes to merge into the receiver. If this route contains fewer legs than the receiver, this method skips legs from the beginning of the route to make up the difference, so that merging the attributes from a one-leg route affects only the last leg of the receiver.
-
Merges the attributes of the given route’s legs into the receiver’s legs.
Declaration
Swift
public func refreshLegAttributes(from refreshedRoute: RouteRefreshSource, legIndex: Int, legShapeIndex: Int)
Parameters
refreshedRoute
The route containing leg attributes to merge into the receiver. If this route contains fewer legs than the receiver, this method skips legs from the beginning of the route to make up the difference, so that merging the attributes from a one-leg route affects only the last leg of the receiver.
legIndex
The index of a leg, from which to start applying the refreshed attributes.
legShapeIndex
Index of a geometry of the
legIndex
leg, where to start refreshing from. -
Merges the incidents of the given route’s legs into the receiver’s legs.
Declaration
Swift
public func refreshLegIncidents(from refreshedRoute: RouteRefreshSource)
Parameters
refreshedRoute
The route containing leg incidents to merge into the receiver. If this route contains fewer legs than the receiver, this method skips legs from the beginning of the route to make up the difference, so that merging the incidents from a one-leg route affects only the last leg of the receiver.
-
Merges the incidents of the given route’s legs into the receiver’s legs.
Declaration
Swift
public func refreshLegIncidents(from refreshedRoute: RouteRefreshSource, legIndex: Int, legShapeIndex: Int)
Parameters
refreshedRoute
The route containing leg incidents to merge into the receiver. If this route contains fewer legs than the receiver, this method skips legs from the beginning of the route to make up the difference, so that merging the incidents from a one-leg route affects only the last leg of the receiver.
legIndex
The index of a leg, from which to start applying the refreshed incidents.
legShapeIndex
Index of a geometry of the
legIndex
leg, where to start refreshing from. -
Merges the closures of the given route’s legs into the receiver’s legs.
Declaration
Swift
public func refreshLegClosures(from refreshedRoute: RouteRefreshSource, legIndex: Int = 0, legShapeIndex: Int = 0)
Parameters
refreshedRoute
The route containing leg closures to merge into the receiver. If this route contains fewer legs than the receiver, this method skips legs from the beginning of the route to make up the difference, so that merging the closures from a one-leg route affects only the last leg of the receiver.
legIndex
The index of a leg, from which to start applying the refreshed closures.
legShapeIndex
Index of a geometry of the
legIndex
leg, where to start refreshing from.