Turn-by-Turn Navigation for Walking and Driving
- Do not follow instructions that may lead to an unsafe or illegal situation
- Obey all local laws.
- Be aware that using a mobile phone or some of its features while driving may be prohibited.
- Always keep hands free to operate the vehicle while driving.
- The first priority while driving should be road safety.
The HERE iOS SDK supports navigation on pedestrian, car, and truck routes. Using this feature, your app can check the current device position against a calculated route and provide just-in-time navigational instructions, both as visual and voice instructions. Two navigation modes are supported for walking and driving: Turn-by-Turn Navigation Mode, which takes the calculated route and matches the current position against the route, and Tracking Mode, which only tracks the current position without using a route. In Tracking Mode, no voice instructions are provided. For more information on voice instructions, please see Voice Instructions.
Enabling Background Navigation
If you are using the Turn-by-Turn Navigation Mode for driving, you can also set the HERE SDK to perform guidance (including voice instructions and event callbacks) while the app is in the background. To enable this feature, please perform the following steps:
- In Xcode's Capabilities tab, enable Background Modes and check the following entries:
- Audio and AirPlay
- Location updates
- Next, turn on background navigation in
[NMANavigationManager sharedNavigationManager].backgroundNavigationEnabled = YES;
NMANavigationManager also provides properties for customizing map tracking. Map tracking refers to the ability for the map location to be automatically updated during navigation. By default, the map tracking feature is enabled, but it can be toggled through the
mapTrackingEnabled property. When tracking is enabled, you can use the
mapTrackingOrientation property to set whether the map is oriented dynamically or always pointed North. You can also set whether the map automatically adjusts the zoom level, based on the current device speed, by using the
mapTrackingAutoZoomEnabled property. By default, dynamic orientation and auto zoom are enabled.
NMANavigationManager in Navigation or Tracking mode, you can move the
positionIndicator closer to the bottom of the screen by changing the
transformCenter property in
NMAMapView. Having the
transformCenter at the bottom of the screen ensures that the route and turning animations are more visible to the user.
NMANavigationManager setNaturalGuidanceMode:method can be used to enable natural guidance. Natural guidance refers to a type of dynamic information available during navigation where route guidance instructions contain contextual elements around a decision point. These contextual elements may include services, cartographic features, traffic signals. Some examples of natural guidance instructions are:
- "Go past the park on your right, then turn left at Anderson school on Bayview street"
- "Go through the traffic light and turn right before the petrol station"
- "Continue on your route, passing the dome building on your right"
The available types of natural guidance information are defined by the
NMANaturalGuidanceOption enum. These options may be used individually or used in combination, although typically, only a single type of guidance instruction would be given for a particular maneuver. To disable natural guidance, pass
NMANaturalGuidanceNone to the
NMANaturalGuidanceLandmarkoption, the device locale and navigation voice package language should be set to match the user's physical location. Otherwise, landmark information may not be spoken. For example, while navigating in a country that uses French as its spoken language, the voice package and the device locale should be set to French.