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 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 the ProfileIdentifier.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 or RouteStep.expectedTravelTime. For even more granularity, specify the AttributeOptions.expectedTravelTime option and use the RouteLeg.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 the ProfileIdentifier.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 or RouteStep.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 to nil; use the URLSessionTaskTransactionMetrics.fetchStartDate property instead. This property may also be set to nil 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 to nil; use the URLSessionTaskTransactionMetrics.responseEndDate property instead. This property may also be set to nil if you create this result from a JSON object or encoded object.

    This property does not persist after encoding and decoding.