PassiveLocationManager
open class PassiveLocationManager : NSObject
extension PassiveLocationManager: CLLocationManagerDelegate
An object that notifies its delegate when the user’s location changes, minimizing the noise that normally accompanies location updates from a CLLocationManager
object.
Unlike Router
classes such as RouteController
and LegacyRouteController
, this class operates without a predefined route, matching the user’s location to the road network at large. You can use a passive location manager to determine a starting point for a route that you calculate using the Directions.calculate(_:completionHandler:)
method. If the user happens to be moving while you calculate the route, the passive location manager makes it less likely that the route will begin with a short segment on a side road or driveway and a confusing instruction to turn onto the current road.
To find out when the user’s location changes, implement the PassiveLocationManagerDelegate
protocol, or observe Notification.Name.passiveLocationManagerDidUpdate
notifications for more detailed information.
-
Initializes the location manager with the given directions service.
Postcondition
Call
startUpdatingLocation()
afterwards to begin receiving location updates.Declaration
Swift
public required init(directions: Directions = Directions.shared, systemLocationManager: NavigationLocationManager? = nil, tileStoreLocation: TileStoreConfiguration.Location = .default)
Parameters
directions
The directions service that allows the location manager to access road network data. If this argument is omitted, the shared
Directions
object is used.systemLocationManager
The system location manager that provides raw locations for the receiver to match against the road network.
tileStoreLocation
Configuration of
TileStore
location, where Navigation tiles are stored. -
The directions service that allows the location manager to access road network data.
Declaration
Swift
public let directions: Directions
-
A
NavigationLocationManager
that provides raw locations for the receiver to match against the road network.Declaration
Swift
public let systemLocationManager: NavigationLocationManager
-
A
TileStore
instance used by navigatorDeclaration
Swift
open var navigatorTileStore: TileStore { get }
-
The location manager’s delegate.
Declaration
Swift
public weak var delegate: PassiveLocationManagerDelegate?
-
Starts the generation of location updates.
Declaration
Swift
public func startUpdatingLocation()
-
A custom configuration for electronic horizon observations.
Set this property to
nil
to use the default configuration.Declaration
Swift
public var electronicHorizonOptions: ElectronicHorizonOptions? { get set }
-
The road graph that is updated as the passive location manager tracks the user’s location.
Declaration
Swift
public var roadGraph: RoadGraph { get }
-
The road object store that is updated as the passive location manager tracks the user’s location.
Declaration
Swift
public var roadObjectStore: RoadObjectStore { get }
-
The road object matcher that allows to match user-defined road objects.
Declaration
Swift
public var roadObjectMatcher: RoadObjectMatcher { get }
-
Manually sets the current location.
This method stops any automatic location updates.
Declaration
Swift
public func updateLocation(_ location: CLLocation?)
-
Path to the directory where history could be stored when
PassiveLocationManager.writeHistory(completionHandler:)
is called.Declaration
Swift
public static var historyDirectoryURL: URL? { get set }
-
A closure to be called when history writing ends.
Declaration
Swift
public typealias WriteHistoryCompletionHandler = (_ historyFileURL: URL?) -> Void
Parameters
historyFileURL
A path to file, where history was written to.
-
Store history to the directory stored in
PassiveLocationManager.historyDirectoryURL
and asynchronously run a callback when writing finishes.Declaration
Swift
public static func writeHistory(completionHandler: @escaping WriteHistoryCompletionHandler)
Parameters
completion
A block object to be executed when history writing ends.
-
Keys in the user info dictionaries of various notifications posted by instances of
See morePassiveLocationManager
.Declaration
Swift
public struct NotificationUserInfoKey : Hashable, Equatable, RawRepresentable