Traffic
public protocol Traffic : AnyObject
This is the public interface for the Traffic Data Provider in NavSDK. This interface can be passed to other components in NavSDK that work with traffic data.
Important
This is a Public Preview API. It may be changed or removed at any time.-
Indicates the traffic provider connectivity status.
Important
This is a Public Preview API. It may be changed or removed at any time.true
if connection has been established,false
otherwise.Declaration
Swift
var isConnected: Bool { get }
-
Number of traffic events currently known by the client.
Important
This is a Public Preview API. It may be changed or removed at any time.Declaration
Swift
var trafficEventCount: Int { get }
-
Updates the traffic client’s
Locale
.Important
This is a Public Preview API. It may be changed or removed at any time.
Note
Locale
is used to select the desired locale when receiving multi-lingual data or when extracting textual location details from the map.Declaration
Swift
func updateLocale(_ locale: Locale)
Parameters
locale
The new
Locale
. -
Sets a new location provider.
Important
This is a Public Preview API. It may be changed or removed at any time.
Declaration
Swift
func updateLocationProvider(_ locationProvider: LocationProvider)
Parameters
locationProvider
The new
LocationProvider
. -
Updates the list of routes for which the client is interested in receiving traffic along the route.
Important
This is a Public Preview API. It may be changed or removed at any time.Providing an empty list disables traffic along the route. It can be enabled again by providing new routes via this method.
Note that the availability of traffic along the route depends on the currently active traffic provider.
Receiving traffic along a navigated route can be useful to display traffic information for the route. However, it can also have a negative impact on planning routes onboard or finding faster alternatives.
Throws
An error if routes cannot be updated.Declaration
Swift
func updateRoutesForTraffic(_ routes: [[CLLocationCoordinate2D]]) throws
Parameters
routes
The list of route poly-lines for which to receive and update traffic information.
-
trafficEvents(for:
Asynchronous) Gets traffic events within a boundig box .
Important
This is a Public Preview API. It may be changed or removed at any time.
Throws
An error if cannot get
TrafficEvents
.Declaration
Swift
func trafficEvents(for boundingBox: BoundingBox) async throws -> [TrafficEvent]
Parameters
boundingBox
The area to look for the
TrafficEvents
.Return Value
Array of
TrafficEvents
within the givenboundingBox
. -
Asynchronously calls a completion callback with a result containing
TrafficEvents
within the givenboundingBox
, or an error.Important
This is a Public Preview API. It may be changed or removed at any time.
Declaration
Swift
func getTrafficEvents( for boundingBox: BoundingBox, completion: @escaping (Result<[TrafficEvent], Error>) -> () )
Parameters
boundingBox
The area to look for the
TrafficEvents
.completion
The completion handler to call with the result. The handler may be executed on a background thread.
-
Adds an observer.
Important
This is a Public Preview API. It may be changed or removed at any time.Important
An attempt to add an observer from theonTrafficUpdated()
implementation of a registered observer may result in a deadlock.Declaration
Swift
func addObserver(_ observer: TrafficUpdateObserver)
Parameters
observer
An instance of
TrafficUpdateObserver
to add. -
Removes an observer.
Important
This is a Public Preview API. It may be changed or removed at any time.Important
An attempt to remove an observer from theonTrafficUpdated()
implementation of a registered observer may result in a deadlock.Declaration
Swift
func removeObserver(_ observer: TrafficUpdateObserver)
Parameters
observer
An instance of
TrafficUpdateObserver
to remove.