RouteOptions

@objc(MBRouteOptions)
open class RouteOptions : DirectionsOptions

A RouteOptions object is a structure that specifies the criteria for results returned by the Mapbox Directions API.

Pass an instance of this class into the Directions.calculate(_:completionHandler:) method.

  • Initializes a route options object for routes between the given locations and an optional profile identifier.

    Note

    This initializer is intended for CLLocation objects created using the CLLocation.init(latitude:longitude:) initializer. If you intend to use a CLLocation object obtained from a CLLocationManager object, consider increasing the horizontalAccuracy or set it to a negative value to avoid overfitting, since the Waypoint class’s coordinateAccuracy property represents the maximum allowed deviation from the waypoint.

    Declaration

    Swift

    @objc
    public convenience init(locations: [CLLocation], profileIdentifier: MBDirectionsProfileIdentifier? = nil)

    Parameters

    locations

    An array of CLLocation objects representing locations that the route should visit in chronological order. The array should contain at least two locations (the source and destination) and at most 25 locations. Each location object is converted into a Waypoint object. This class respects the CLLocation class’s coordinate and horizontalAccuracy properties, converting them into the Waypoint class’s coordinate and coordinateAccuracy properties, respectively.

    profileIdentifier

    A string specifying the primary mode of transportation for the routes. This parameter, if set, should be set to MBDirectionsProfileIdentifierAutomobile, MBDirectionsProfileIdentifierAutomobileAvoidingTraffic, MBDirectionsProfileIdentifierCycling, or MBDirectionsProfileIdentifierWalking. MBDirectionsProfileIdentifierAutomobile is used by default.

  • Initializes a route options object for routes between the given geographic coordinates and an optional profile identifier.

    Declaration

    Swift

    @objc
    public convenience init(coordinates: [CLLocationCoordinate2D], profileIdentifier: MBDirectionsProfileIdentifier? = nil)

    Parameters

    coordinates

    An array of geographic coordinates representing locations that the route should visit in chronological order. The array should contain at least two locations (the source and destination) and at most 25 locations. Each coordinate is converted into a Waypoint object.

    profileIdentifier

    A string specifying the primary mode of transportation for the routes. This parameter, if set, should be set to MBDirectionsProfileIdentifierAutomobile, MBDirectionsProfileIdentifierAutomobileAvoidingTraffic, MBDirectionsProfileIdentifierCycling, or MBDirectionsProfileIdentifierWalking. MBDirectionsProfileIdentifierAutomobile is used by default.

  • Initializes a route options object for routes between the given waypoints and an optional profile identifier.

    Declaration

    Swift

    @objc
    public required init(waypoints: [Waypoint], profileIdentifier: MBDirectionsProfileIdentifier? = nil)

    Parameters

    waypoints

    An array of Waypoint objects representing locations that the route should visit in chronological order. The array should contain at least two waypoints (the source and destination) and at most 25 waypoints. (Some profiles, such as MBDirectionsProfileIdentifierAutomobileAvoidingTraffic, may have lower limits.)

    profileIdentifier

    A string specifying the primary mode of transportation for the routes. This parameter, if set, should be set to MBDirectionsProfileIdentifierAutomobile, MBDirectionsProfileIdentifierAutomobileAvoidingTraffic, MBDirectionsProfileIdentifierCycling, or MBDirectionsProfileIdentifierWalking. MBDirectionsProfileIdentifierAutomobile is used by default.

  • A Boolean value that indicates whether a returned route may require a point U-turn at an intermediate waypoint.

    If the value of this property is true, a returned route may require an immediate U-turn at an intermediate waypoint. At an intermediate waypoint, if the value of this property is false, each returned route may continue straight ahead or turn to either side but may not U-turn. This property has no effect if only two waypoints are specified.

    Set this property to true if you expect the user to traverse each leg of the trip separately. For example, it would be quite easy for the user to effectively “U-turn” at a waypoint if the user first parks the car and patronizes a restaurant there before embarking on the next leg of the trip. Set this property to false if you expect the user to proceed to the next waypoint immediately upon arrival. For example, if the user only needs to drop off a passenger or package at the waypoint before continuing, it would be inconvenient to perform a U-turn at that location.

    The default value of this property is false when the profile identifier is MBDirectionsProfileIdentifierAutomobile or MBDirectionsProfileIdentifierAutomobileAvoidingTraffic and true otherwise.

    Declaration

    Swift

    @objc
    open var allowsUTurnAtWaypoint: Bool
  • A Boolean value indicating whether alternative routes should be included in the response.

    If the value of this property is false, the server only calculates a single route that visits each of the waypoints. If the value of this property is true, the server attempts to find additional reasonable routes that visit the waypoints. Regardless, multiple routes are only returned if it is possible to visit the waypoints by a different route without significantly increasing the distance or travel time. The alternative routes may partially overlap with the preferred route, especially if intermediate waypoints are specified.

    Alternative routes may take longer to calculate and make the response significantly larger, so only request alternative routes if you intend to display them to the user or let the user choose them over the preferred route. For example, do not request alternative routes if you only want to know the distance or estimated travel time to a destination.

    The default value of this property is false.

    Declaration

    Swift

    @objc
    open var includesAlternativeRoutes: Bool
  • A Boolean value indicating whether the route includes a ManeuverType.exitRoundabout or ManeuverType.exitRotary step when traversing a roundabout or rotary, respectively.

    If this option is set to true, a route that traverses a roundabout includes both a ManeuverType.takeRoundabout step and a ManeuverType.exitRoundabout step; likewise, a route that traverses a large, named roundabout includes both a ManeuverType.takeRotary step and a ManeuverType.exitRotary step. Otherwise, it only includes a ManeuverType.takeRoundabout or ManeuverType.takeRotary step. This option is set to false by default.

    Declaration

    Swift

    @objc
    open var includesExitRoundaboutManeuver: Bool
  • The route classes that the calculated routes will avoid.

    Currently, you can only specify a single road class to avoid.

    Declaration

    Swift

    @objc
    open var roadClassesToAvoid: RoadClasses
  • Returns response objects that represent the given JSON dictionary data.

    Declaration

    Swift

    public func response(from json: [String : Any]) -> ([Waypoint]?, [Route]?)

    Parameters

    json

    The API response in JSON dictionary format.

    Return Value

    A tuple containing an array of waypoints and an array of routes.