Waypoint
public struct Waypoint : Hashable
Represents a waypoint, used as input for route calculation.
-
The waypoint’s geographic coordinates.
Declaration
Swift
public var coordinates: GeoCoordinates -
Defines how a waypoint should be considered for route calculation. The default waypoint type is
WaypointType.stopover.Declaration
Swift
public var type: WaypointType -
The maximum allowed distance from the waypoint that the calculated route may pass through. For example, to drive past a city without necessarily going into the city center, you can specify the coordinates of the center and a transit radius of 5000m. The default transit radius is zero. If the route should pass the waypoint as close as possible, the default value should be kept. Note that the waypoint will be map-matched to a road. Non-zero values allow a greater tolerance. Note that
Waypoint.sideOfStreetHintoption is ignored if the user sets this option with a value greater than zero.Declaration
Swift
public var transitRadiusInMeters: Int32 -
Optional heading angle referenced by true North, clockwise specifying the direction of travel. The heading direction may help the routing algorithm to select the best direction, for example, when multiple directions are possible at a road junction. North is 0 degrees, East is 90 degrees, South is 180 degrees, and West is 270 degrees. The value must be in the range [0, 360] when specified. By default, or when
nilis set, heading is ignored for route calculation.Declaration
Swift
public var headingInDegrees: Double? -
Optional coordinates to indicate which side of the street should be used to reach the waypoint. For example, if the location is to the left of the street, the router will prefer using that side in case the street has dividers. Note that this option is ignored if the user sets
Waypoint.transitRadiusInMetersoption with a value greater than zero.Declaration
Swift
public var sideOfStreetHint: GeoCoordinates? -
Optional coordinates to indicate physical location of the Points of Interest (PoI). It is different from coordinates and
Waypoint.sideOfStreetHintwhich are generally expected to to be on the navigable road network and can be different from actual location of the PoI. display_location is used for visualization of the PoI regardless of road network.Declaration
Swift
public var displayLocation: GeoCoordinates? -
Optional distance in meters during which the user wants to avoid taking actions. For example, if the origin is set by a moving vehicle, the user might not have time to react to immediate actions such as a sharp right turn.
Declaration
Swift
public var minCourseDistanceInMeters: Int32? -
Optional name hint causes the router to look for the place with the most similar name. This can e.g. include things like:
Northbeing used to differentiate between interstatesI66 NorthandI66 South,Downtown Avenuebeing used to correctly select a residential street.Declaration
Swift
public var nameHint: String? -
Specifies how the location set by
Waypoint.sideOfStreetHintshould be handled. Note that this setting might affect the geometry of the resulting route.Declaration
Swift
public var matchSideOfStreet: MatchSideOfStreet? -
The duration in seconds that should be spent at a waypoint of type
WaypointType.stopover. Impacts time-aware calculations. Ignored for waypoints of typeWaypointType.passThrough. The default duration is 0 seconds.Declaration
Swift
public var duration: TimeInterval -
Optional segment hint causes the router to try and match to the specified segment. Waypoint coordinates need to be on the segment, otherwise waypoint will be matched ignoring the segment hint. This parameter can be used when the waypoint is too close to more than one segment to force matching to a specific one. Only topology segment id and travel direction are used to define the segment hint
Note: The feature is not supported by the
OfflineRoutingEngine.Declaration
Swift
public var segmentHint: SegmentReference? -
Optional threshold allows specifying a distance within which the waypoint could be considered as being on a highway/bridge/tunnel/sliproad. Within this threshold, the attributes of the segments do not impact the matching. Outside the threshold only segments which aren’t one of highway/bridge/tunnel/sliproad can be matched.
Declaration
Swift
public var onRoadThresholdInMeters: Int32? -
Specifies of a user-planned charging stop. The resulting
Routemay contain this waypoint as aRoutePlacewith a non-nullChargingStationmember when the provided specifications indicate that a stop is required to charge the EV battery. Note: If [EVCarOptions.ensure_reachability] is not set astrueand [ChargingStop.min_duration] is not provided, route calculation may suggest a better charging stop instead of this stop.Declaration
Swift
public var chargingStop: ChargingStop? -
Changes the value of
vehicle[currentWeight]by this value. Enables the support of scenarios where the vehicle takes additional cargo or unloads its cargo along the route. Changes to the configuration of the vehicle, such as adding a trailer, aren’t supported. Relative value in kilograms. Available range: from -40000 to 40000 (inclusive). Note:- A route request with this parameter requires to set
VehicleSpecification.currentWeightInKilogramsandVehicleSpecification.grossWeightInKilograms. - This feature is supported in transport modes of
TransportMode.car,TransportMode.taxi, orTransportMode.truck.
Note: This is a beta release of this feature, so there could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.
Declaration
Swift
public var currentWeightChangeInKilograms: Int32? - A route request with this parameter requires to set
-
init(coordinates:type: transitRadiusInMeters: headingInDegrees: sideOfStreetHint: displayLocation: minCourseDistanceInMeters: nameHint: matchSideOfStreet: duration: segmentHint: onRoadThresholdInMeters: chargingStop: currentWeightChangeInKilograms: ) Creates a new instance.
Parameters
- coordinates: The waypoint’s geographic coordinates.
- type: Defines how a waypoint should be considered for route calculation.
The default waypoint type is
WaypointType.stopover. - transitRadiusInMeters: The maximum allowed distance from the waypoint that the calculated
route may pass through. For example, to drive past a city without necessarily going
into the city center, you can specify the coordinates of the center and a transit
radius of 5000m. The default transit radius is zero.
If the route should pass the waypoint as close as possible, the default value
should be kept. Note that the waypoint will be map-matched to a road.
Non-zero values allow a greater tolerance.
Note that
Waypoint.sideOfStreetHintoption is ignored if the user sets this option with a value greater than zero. - headingInDegrees: Optional heading angle referenced by true North, clockwise specifying
the direction of travel. The heading direction may help the routing algorithm to select
the best direction, for example, when multiple directions are possible at a road junction.
North is 0 degrees, East is 90 degrees, South is 180 degrees, and West is 270 degrees.
The value must be in the range [0, 360] when specified. By default, or when
nilis set, heading is ignored for route calculation. - sideOfStreetHint: Optional coordinates to indicate which side of the street should be used to reach the waypoint.
For example, if the location is to the left of the street, the router will prefer using that side
in case the street has dividers.
Note that this option is ignored if the user sets
Waypoint.transitRadiusInMetersoption with a value greater than zero. - displayLocation: Optional coordinates to indicate physical location of the Points of Interest (PoI).
It is different from coordinates and
Waypoint.sideOfStreetHintwhich are generally expected to to be on the navigable road network and can be different from actual location of the PoI. display_location is used for visualization of the PoI regardless of road network. - minCourseDistanceInMeters: Optional distance in meters during which the user wants to avoid taking actions. For example, if the origin is set by a moving vehicle, the user might not have time to react to immediate actions such as a sharp right turn.
- nameHint: Optional name hint causes the router to look for the place with the most similar name.
This can e.g. include things like:
Northbeing used to differentiate between interstatesI66 NorthandI66 South,Downtown Avenuebeing used to correctly select a residential street. - matchSideOfStreet: Specifies how the location set by
Waypoint.sideOfStreetHintshould be handled. Note that this setting might affect the geometry of the resulting route. - duration: The duration in seconds that should be spent at a waypoint of type
WaypointType.stopover. Impacts time-aware calculations. Ignored for waypoints of typeWaypointType.passThrough. The default duration is 0 seconds. - segmentHint: Optional segment hint causes the router to try and match to the specified segment. Waypoint coordinates need to be on the segment, otherwise waypoint will be matched ignoring the segment hint. This parameter can be used when the waypoint is too close to more than one segment to force matching to a specific one. Only topology segment id and travel direction are used to define the segment hint
Note: The feature is not supported by the
OfflineRoutingEngine.- onRoadThresholdInMeters: Optional threshold allows specifying a distance within which the waypoint could be considered as being on a highway/bridge/tunnel/sliproad. Within this threshold, the attributes of the segments do not impact the matching. Outside the threshold only segments which aren’t one of highway/bridge/tunnel/sliproad can be matched.
- chargingStop: Specifies of a user-planned charging stop.
The resulting
Routemay contain this waypoint as aRoutePlacewith a non-nullChargingStationmember when the provided specifications indicate that a stop is required to charge the EV battery. Note: If [EVCarOptions.ensure_reachability] is not set astrueand [ChargingStop.min_duration] is not provided, route calculation may suggest a better charging stop instead of this stop. - currentWeightChangeInKilograms: Changes the value of
vehicle[currentWeight]by this value. Enables the support of scenarios where the vehicle takes additional cargo or unloads its cargo along the route. Changes to the configuration of the vehicle, such as adding a trailer, aren’t supported. Relative value in kilograms. Available range: from -40000 to 40000 (inclusive). Note:- A route request with this parameter requires to set
VehicleSpecification.currentWeightInKilogramsandVehicleSpecification.grossWeightInKilograms. - This feature is supported in transport modes of
TransportMode.car,TransportMode.taxi, orTransportMode.truck.
- A route request with this parameter requires to set
Note: This is a beta release of this feature, so there could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.
Declaration
Swift
public init(coordinates: GeoCoordinates, type: WaypointType = WaypointType.stopover, transitRadiusInMeters: Int32 = 0, headingInDegrees: Double? = nil, sideOfStreetHint: GeoCoordinates? = nil, displayLocation: GeoCoordinates? = nil, minCourseDistanceInMeters: Int32? = nil, nameHint: String? = nil, matchSideOfStreet: MatchSideOfStreet? = nil, duration: TimeInterval = 0, segmentHint: SegmentReference? = nil, onRoadThresholdInMeters: Int32? = nil, chargingStop: ChargingStop? = nil, currentWeightChangeInKilograms: Int32? = nil)