NDSStore

public final class NDSStore : MapDataStore

Implements access to operations with an onboard NDS map.

Important

This is a Public Preview API. It may be changed or removed at any time.

Lifecycle

  • Creates an instance of NDSStore.

    Declaration

    Swift

    public init?(
        mapDataPath: String,
        keystorePath: String? = nil,
        keystorePassword: String? = nil,
        ndsStoreUpdateConfig: NDSStoreUpdateConfig? = nil,
        sync: MapDataStoreAccessSyncing = NDSStoreAccessSync()
    )

    Parameters

    mapDataPath

    The path to the nds store, the directory that contains the ‘ROOT.NDS’ file. The directory and its content must be accessible. In case map updates are configured, that location also needs to be writable.

    keystorePath

    Path to the keystore file containing encryption keys for the NDS store files. If the NDS store is encrypted, the keystore file is required.

    keystorePassword

    The password for the keystore file provided through the keystorePath parameter. If the keystore file is encrypted, this password is required.

    ndsStoreUpdateConfig

    The configuration for the updates of the NDS store. If not specified, map updates are not configured and the methods of the NDSStore are no-ops.

Public

  • Synchronizes access to the map data.

    Declaration

    Swift

    public let sync: MapDataStoreAccessSyncing
  • Handler for the map data store access.

    Declaration

    Swift

    public var storeAccess: MapDataStoreAccess { get }
  • Enables or disables map updates. Default value is false.

    When updates are enabled automatic update operations (including map extension and repair of unusable regions) are started, according to the configuration.

    If map updates are disabled, this component will not write to the map for any reason. Automatic updates will not run. Updates that were running are safely interrupted. In such case, call to this method will block until all ongoing updates, if any, have stopped.

    Note

    When an update of the map is interrupted unexpectedly (e.g. power loss), the region that was being updated could become unusable.

    Declaration

    Swift

    public var updatesEnabled: Bool { get set }
  • Adds observer that is called when a region is successfully updated with new content.

    The observer is called when a region is updated or installed (added) via an automatic or manual task. It is not called when the map is replaced.

    Declaration

    Swift

    public func addMapUpdateObserver(_ observer: MapUpdateObserver)

    Parameters

    observer

    The observer to be registered.

  • Removes previously registered observer.

    Declaration

    Swift

    public func removeMapUpdateObserver(_ observer: MapUpdateObserver)

    Parameters

    observer

    The registered observer.

  • Adds observer that is called when an automatic update fails due to an irrecoverable error.

    Declaration

    Swift

    public func addAutomaticMapUpdateFailureObserver(_ observer: AutomaticMapUpdateFailureObserver)

    Parameters

    observer

    The observer to be registered.

  • Removes previously registered observer.

    Declaration

    Swift

    public func removeAutomaticMapUpdateFailureObserver(_ observer: AutomaticMapUpdateFailureObserver)

    Parameters

    observer

    The registered observer.

  • Sets current position.

    Declaration

    Swift

    public func setPosition(_ position: CLLocationCoordinate2D)

    Parameters

    position

    New value for current position.

  • Adds an observer for information about the state of the map.

    Note

    The observer is called with the current region graph as soon as it is added. The first observer that is added triggers the process of determining the region graph. If the region graph cannot be determined, an error is returned. In that case, the observer will be called when and if the error is resolved.

    Declaration

    Swift

    public func addRegionGraphObserver(_ observer: RegionGraphObserver)

    Parameters

    observer

    The observer to be added.

  • Removes a previously registered observer.

    Declaration

    Swift

    public func removeRegionGraphObserver(_ observer: RegionGraphObserver)

    Parameters

    observer

    The registered observer.

  • Sets the active route.

    Note

    Setting the active route triggers onboard NDS map update if along route update is enabled and the polyline differs from the previously set one.

    Declaration

    Swift

    public func setActiveRoute(_ polyline: [CLLocationCoordinate2D])

    Parameters

    polyline

    The polyline representing the active route.