NavigationService

A navigation service coordinates various nonvisual components that track the user as they navigate along a predetermined route. You use MapboxNavigationService, which conforms to this protocol, either as part of NavigationViewController or by itself as part of a custom user interface. A navigation service calls methods on its delegate, which conforms to the NavigationServiceDelegate protocol, whenever significant events or decision points occur along the route.

A navigation service controls a NavigationLocationManager for determining the user’s location, a Router that tracks the user’s progress along the route, a Directions service for calculating new routes (only used when rerouting), and a NavigationEventsManager for sending telemetry events related to navigation or user feedback.

NavigationViewController comes with a MapboxNavigationService by default. You may override it to customize the Directions service or simulation mode. After creating the navigation service, pass it into NavigationOptions(styles:navigationService:voiceController:topBanner:bottomBanner:), then pass that object into NavigationViewController(for:options:).

If you use a navigation service by itself, outside of NavigationViewController, call start() when the user is ready to begin navigating along the route.

  • The location manager for the service. This will be the object responsible for notifying the service of GPS updates.

  • A reference to a MapboxDirections service. Used for rerouting.

  • The router object that tracks the user’s progress as they travel along a predetermined route.

  • The events manager, responsible for all telemetry.

  • The route along which the user is expected to travel.

  • The simulation mode of the service.

  • The simulation speed-multiplier. Modify this if you desire accelerated simulation.

  • The Amount of time the service will wait until it begins simulation in a poor GPS scenerio. Defaults to 2.5 seconds.

  • The navigation service’s delegate, which is informed of significant events and decision points along the route.

    To synchronize your application’s state with the turn-by-turn navigation experience, set this property before starting the navigation session.

  • Starts the navigation service.

  • Stops the navigation service. You may call start() after calling stop().

  • Ends the navigation session. Used when arriving at destination.

  • Interrogates the navigationService as to whether or not the passed-in location is in a tunnel.