PassiveLocationDataSource
open class PassiveLocationDataSource : NSObject
extension PassiveLocationDataSource: 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 PassiveLocationDataSourceDelegate
protocol, or observe Notification.Name.passiveLocationDataSourceDidUpdate
notifications for more detailed information.
-
Initializes the location data source with the given directions service.
Postcondition
Call
startUpdatingLocation(completionHandler:)
afterwards to begin receiving location updates.Declaration
Swift
public required init(directions: Directions = Directions.shared, systemLocationManager: NavigationLocationManager? = nil)
Parameters
directions
The directions service that allows the location data source to access road network data. If this argument is omitted, the shared
Directions
object is used.systemLocationManager
The location manager that provides raw locations for the receiver to match against the road network.
-
The directions service that allows the location data source to access road network data.
Declaration
Swift
public let directions: Directions
-
The location manager that provides raw locations for the receiver to match against the road network.
Declaration
Swift
public let systemLocationManager: NavigationLocationManager
-
The location data source’s delegate.
Declaration
Swift
public weak var delegate: PassiveLocationDataSourceDelegate?
-
Starts the generation of location updates with an optional completion handler that gets called when the location data source is ready to receive snapped location updates.
Declaration
Swift
public func startUpdatingLocation(completionHandler: ((Error?) -> Void)? = nil)
-
Manually sets the current location.
This method stops any automatic location updates.
Declaration
Swift
public func updateLocation(_ location: CLLocation?)
-
Keys in the user info dictionaries of various notifications posted by instances of
See morePassiveLocationDataSource
.Declaration
Swift
public struct NotificationUserInfoKey : Hashable, Equatable, RawRepresentable