DirectionsResult
A DirectionsResult
represents a result returned from either the Mapbox Directions service.
You do not create instances of this class directly. Instead, you receive Route
or Match
objects when you request directions using the Directions.calculate(_:completionHandler:)
or Directions.calculateRoutes(matching:completionHandler:)
method.
-
The roads or paths taken as a contiguous polyline.
The shape may be
nil
or simplified depending on theDirectionsOptions.routeShapeResolution
property of the originalRouteOptions
orMatchOptions
object.Using the Mapbox Maps SDK for iOS or Mapbox Maps SDK for macOS, you can create an
MGLPolyline
object using these coordinates to display an overview of the route on anMGLMapView
.
-
The legs that are traversed in order.
The number of legs in this array depends on the number of waypoints. A route with two waypoints (the source and destination) has one leg, a route with three waypoints (the source, an intermediate waypoint, and the destination) has two legs, and so on.
To determine the name of the route, concatenate the names of the route’s legs.
-
-
The route’s distance, measured in meters.
The value of this property accounts for the distance that the user must travel to traverse the path of the route. It is the sum of the
distance
properties of the route’s legs, not the sum of the direct distances between the route’s waypoints. You should not assume that the user would travel along this distance at a fixed speed. -
The route’s expected travel time, measured in seconds.
The value of this property reflects the time it takes to traverse the entire route. It is the sum of the
expectedTravelTime
properties of the route’s legs. If the route was calculated using theProfileIdentifier.automobileAvoidingTraffic
profile, this property reflects current traffic conditions at the time of the request, not necessarily the traffic conditions at the time the user would begin the route. For other profiles, this property reflects travel time under ideal conditions and does not account for traffic congestion. If the route makes use of a ferry or train, the actual travel time may additionally be subject to the schedules of those services.Do not assume that the user would travel along the route at a fixed speed. For more granular travel times, use the
RouteLeg.expectedTravelTime
orRouteStep.expectedTravelTime
. For even more granularity, specify theAttributeOptions.expectedTravelTime
option and use theRouteLeg.expectedSegmentTravelTimes
property. -
The route’s typical travel time, measured in seconds.
The value of this property reflects the typical time it takes to traverse the entire route. It is the sum of the
typicalTravelTime
properties of the route’s legs. This property is available when using theProfileIdentifier.automobileAvoidingTraffic
profile. This property reflects typical traffic conditions at the time of the request, not necessarily the typical traffic conditions at the time the user would begin the route. If the route makes use of a ferry, the typical travel time may additionally be subject to the schedule of this service.Do not assume that the user would travel along the route at a fixed speed. For more granular typical travel times, use the
RouteLeg.typicalTravelTime
orRouteStep.typicalTravelTime
.
-
The locale to use for spoken instructions.
This locale is specific to Mapbox Voice API. If
nil
is returned, the instruction should be spoken with an alternative speech synthesizer.
-
The time immediately before a
Directions
object fetched this result.If you manually start fetching a task returned by
Directions.url(forCalculating:)
, this property is set tonil
; use theURLSessionTaskTransactionMetrics.fetchStartDate
property instead. This property may also be set tonil
if you create this result from a JSON object or encoded object.This property does not persist after encoding and decoding.
-
The time immediately before a
Directions
object received the last byte of this result.If you manually start fetching a task returned by
Directions.url(forCalculating:)
, this property is set tonil
; use theURLSessionTaskTransactionMetrics.responseEndDate
property instead. This property may also be set tonil
if you create this result from a JSON object or encoded object.This property does not persist after encoding and decoding.
-