NavigationViewController
open class NavigationViewController : UIViewController, NavigationStatusPresenter
extension NavigationViewController: NavigationServiceDelegate
extension NavigationViewController: StyleManagerDelegate
extension NavigationViewController: TopBannerViewControllerDelegate
extension NavigationViewController: BottomBannerViewControllerDelegate
extension NavigationViewController: CarPlayConnectionObserver
NavigationViewController
is a fully-featured user interface for turn-by-turn navigation. Do not confuse it with the NavigationController
class in UIKit.
You initialize a navigation view controller based on a predefined Route
and NavigationOptions
. As the user progresses along the route, the navigation view controller shows their surroundings and the route line on a map. Banners above and below the map display key information pertaining to the route. A list of steps and a feedback mechanism are accessible via the navigation view controller.
To be informed of significant events and decision points as the user progresses along the route, set the NavigationService.delegate
property of the NavigationService
that you provide when creating the navigation options.
CarPlayNavigationViewController
manages the corresponding user interface on a CarPlay screen.
-
A
Route
object constructed by MapboxDirections.In cases where you need to update the route after navigation has started you can set a new
route
here andNavigationViewController
will update its UI accordingly.Declaration
Swift
public var route: Route { get set }
-
An instance of
Directions
need for rerouting. See Mapbox Directions for further information.Declaration
Swift
public var directions: Directions { get }
-
An optional
MGLMapCamera
you can use to improve the initial transition from a previous viewport and prevent a trigger from an excessive significant location update.Declaration
Swift
public var pendingCamera: MGLMapCamera?
-
An instance of
MGLAnnotation
representing the origin of your route.Declaration
Swift
public var origin: MGLAnnotation?
-
The receiver’s delegate.
Declaration
Swift
public weak var delegate: NavigationViewControllerDelegate?
-
The voice controller that vocalizes spoken instructions along the route at the appropriate times.
Declaration
Swift
public var voiceController: RouteVoiceController!
-
The navigation service that coordinates the view controller’s nonvisual components, tracking the user’s location as they proceed along the route.
Declaration
Swift
private(set) public var navigationService: NavigationService! { get set }
-
The main map view displayed inside the view controller.
Note
Do not change this map view’sNavigationMapView.navigationMapDelegate
property; instead, implement the corresponding methods onNavigationViewControllerDelegate
.Declaration
Swift
@objc public var mapView: NavigationMapView? { get }
-
Determines whether the user location annotation is moved from the raw user location reported by the device to the nearest location along the route.
By default, this property is set to
true
, causing the user location annotation to be snapped to the route.Declaration
Swift
public var snapsUserLocationAnnotationToRoute: Bool
-
Toggles sending of UILocalNotification upon upcoming steps when application is in the background. Defaults to
true
.Declaration
Swift
public var sendsNotifications: Bool
-
Shows a button that allows drivers to report feedback such as accidents, closed roads, poor instructions, etc. Defaults to
true
.Declaration
Swift
public var showsReportFeedback: Bool { get set }
-
Shows End of route Feedback UI when the route controller arrives at the final destination. Defaults to
true.
Declaration
Swift
public var showsEndOfRouteFeedback: Bool { get set }
-
Shows the current speed limit on the map view.
The default value of this property is
true
.Declaration
Swift
public var showsSpeedLimits: Bool { get set }
-
If true, the map style and UI will automatically be updated given the time of day.
Declaration
Swift
public var automaticallyAdjustsStyleForTimeOfDay: Bool { get set }
-
If
true
,UIApplication.isIdleTimerDisabled
is set totrue
inviewWillAppear(_:)
andfalse
inviewWillDisappear(_:)
. If your application manages the idle timer itself, set this property tofalse
.Declaration
Swift
public var shouldManageApplicationIdleTimer: Bool
-
A Boolean value that determines whether the map annotates the locations at which instructions are spoken for debugging purposes.
Declaration
Swift
public var annotatesSpokenInstructions: Bool
-
Initializes a navigation view controller that presents the user interface for following a predefined route based on the given options.
The route may come directly from the completion handler of the MapboxDirections.swift framework’s
Directions.calculate(_:completionHandler:)
method, or it may be unarchived or created from a JSON object.Declaration
Swift
required public init(for route: Route, routeOptions: RouteOptions, navigationOptions: NavigationOptions? = nil)
Parameters
route
The route to navigate along.
options
The navigation options to use for the navigation session.
-
Declaration
Swift
public func showStatus(title: String, spinner: Bool, duration: TimeInterval, animated: Bool, interactive: Bool)
-
Declaration
Swift
public func navigationMapView(_ mapView: NavigationMapView, routeCasingStyleLayerWithIdentifier identifier: String, source: MGLSource) -> MGLStyleLayer?
-
Declaration
Swift
public func navigationMapView(_ mapView: NavigationMapView, routeStyleLayerWithIdentifier identifier: String, source: MGLSource) -> MGLStyleLayer?
-
Declaration
Swift
public func navigationMapView(_ mapView: NavigationMapView, didSelect route: Route)
-
Declaration
Swift
public func navigationMapView(_ mapView: NavigationMapView, shapeFor routes: [Route]) -> MGLShape?
-
Declaration
Swift
public func navigationMapView(_ mapView: NavigationMapView, simplifiedShapeFor route: Route) -> MGLShape?
-
Declaration
Swift
public func navigationMapView(_ mapView: NavigationMapView, waypointStyleLayerWithIdentifier identifier: String, source: MGLSource) -> MGLStyleLayer?
-
Declaration
Swift
public func navigationMapView(_ mapView: NavigationMapView, waypointSymbolStyleLayerWithIdentifier identifier: String, source: MGLSource) -> MGLStyleLayer?
-
Declaration
Swift
public func navigationMapView(_ mapView: NavigationMapView, shapeFor waypoints: [Waypoint], legIndex: Int) -> MGLShape?
-
Declaration
Swift
public func navigationMapViewUserAnchorPoint(_ mapView: NavigationMapView) -> CGPoint
-
Declaration
Swift
public func label(_ label: InstructionLabel, willPresent instruction: VisualInstruction, as presented: NSAttributedString) -> NSAttributedString?
-
Declaration
Swift
public func navigationService(_ service: NavigationService, shouldRerouteFrom location: CLLocation) -> Bool
-
Declaration
Swift
public func navigationService(_ service: NavigationService, willRerouteFrom location: CLLocation)
-
Declaration
Swift
public func navigationService(_ service: NavigationService, didRerouteAlong route: Route, at location: CLLocation?, proactive: Bool)
-
Declaration
Swift
public func navigationService(_ service: NavigationService, didFailToRerouteWith error: Error)
-
Declaration
Swift
public func navigationService(_ service: NavigationService, shouldDiscard location: CLLocation) -> Bool
-
Declaration
Swift
public func navigationService(_ service: NavigationService, didUpdate progress: RouteProgress, with location: CLLocation, rawLocation: CLLocation)
-
Declaration
Swift
public func navigationService(_ service: NavigationService, didPassSpokenInstructionPoint instruction: SpokenInstruction, routeProgress: RouteProgress)
-
Declaration
Swift
public func navigationService(_ service: NavigationService, didPassVisualInstructionPoint instruction: VisualInstructionBanner, routeProgress: RouteProgress)
-
Declaration
Swift
public func navigationService(_ service: NavigationService, willArriveAt waypoint: Waypoint, after remainingTimeInterval: TimeInterval, distance: CLLocationDistance)
-
Declaration
Swift
public func navigationService(_ service: NavigationService, didArriveAt waypoint: Waypoint) -> Bool
-
Declaration
Swift
public func navigationService(_ service: NavigationService, willBeginSimulating progress: RouteProgress, becauseOf reason: SimulationIntent)
-
Declaration
Swift
public func navigationService(_ service: NavigationService, didBeginSimulating progress: RouteProgress, becauseOf reason: SimulationIntent)
-
Declaration
Swift
public func navigationService(_ service: NavigationService, willEndSimulating progress: RouteProgress, becauseOf reason: SimulationIntent)
-
Declaration
Swift
public func navigationService(_ service: NavigationService, didEndSimulating progress: RouteProgress, becauseOf reason: SimulationIntent)
-
Declaration
Swift
public func navigationService(_ service: NavigationService, shouldPreventReroutesWhenArrivingAt waypoint: Waypoint) -> Bool
-
Declaration
Swift
public func navigationServiceShouldDisableBatteryMonitoring(_ service: NavigationService) -> Bool
-
Declaration
Swift
public func location(for styleManager: StyleManager) -> CLLocation?
-
Declaration
Swift
public func styleManager(_ styleManager: StyleManager, didApply style: Style)
-
Declaration
Swift
public func styleManagerDidRefreshAppearance(_ styleManager: StyleManager)
-
Declaration
Swift
public func didTapCancel(_ sender: Any)
-
Declaration
Swift
public func didConnectToCarPlay()
-
Declaration
Swift
public func didDisconnectFromCarPlay()