Turn-by-turn instructions

VERSION 0.65.0

The Navigation SDK for iOS is only available upon request. Contact us to get started.

Planning a route for turn-by-turn navigation requires that specific parameters be included in the request. An example of routing options that can be used for this purpose is as follows:

1let amsterdamCoordinate = CLLocationCoordinate2DMake(52.3764527, 4.9062047)
2let berlinCoordinate = CLLocationCoordinate2DMake(52.5069751, 13.3631919)
3
4let itinerary = Itinerary(
5 origin: ItineraryPoint(coordinate: amsterdamCoordinate),
6 destination: ItineraryPoint(coordinate: berlinCoordinate)
7)
8
9let options: RoutePlanningOptions
10do {
11 options = try RoutePlanningOptions(
12 itinerary: itinerary,
13 guidanceOptions: GuidanceOptions(
14 language: Locale(identifier: "en-GB"),
15 phoneticsType: .IPA
16 )
17 )
18} catch {
19 print("Invalid planning options: \(error.localizedDescription)")
20}

The most important parameters are summarized below.

Instructions

To obtain guidance instructions, RoutePlanningOptions.guidanceOptions needs to be set.

If alternative routes are requested, instructions will be generated for each route returned.

Road shield references

The GuidanceOptions.roadShieldReferences parameter specifies whether to include road shield references into the external road shields atlas. Possible values are:

If the GuidanceOptions.roadShieldReferences parameter is not set, instructions will not include any road shield references.

Phonetics

The GuidanceOptions.phoneticsType parameter specifies whether to include phonetic transcriptions of street names, signpost texts, and road numbers in the instructions. In areas where phonetic information is not available, the result will not be returned. Possible values are:

If the GuidanceOptions.phoneticsType parameter is not set, instructions will return phonetic transcriptions in the IPA (International Phonetic Alphabet).

Vehicle heading

When driving, it’s important to request a route in a specific direction. For that purpose, the ItineraryPoint.heading parameter should be used. It describes the directional heading of the vehicle, in degrees starting at true North and continuing in a clockwise direction:

  • North is 0 degrees.
  • East is 90 degrees.
  • South is 180 degrees.
  • West is 270 degrees.

Route sections

Per default, all sections except for lanes and roadshields are included in the response. If you want to include these two as well, specify ExtendedSections.all with GuidanceOptions.extendedSections.

More details about available route sections can be found in the Sections document.

To get the best turn-by-turn experience, it’s required to include the extended sections as well.

Next steps

Since you have learned how to work with turn-by-turn instructions, here are recommendations for the next steps: