MapLoader
-
Holds information for the catalog update intent. Provides information regarding installed catalog and its latest available version.
See moreDeclaration
Swift
public struct CatalogUpdateInfo : Hashable -
This method will be called on the main thread when
MapUpdater.retrieveCatalogsUpdateInfo(...)has been completed. The first parameter indicates an error in case of a failure. The second parameter contains the results. Both parameters cannot benilat the same time - or notnilat the same time. An emptyCatalogUpdateInfolist represent no map updates.Declaration
Swift
public typealias CatalogsUpdateInfoCallback = (_ error: MapLoaderError?, _ catalogs: [CatalogUpdateInfo]?) -> VoidParameters
errorRepresents an error in case of a failure. It is
nilfor an operation that succeeds.catalogsRepresents a list of all catalogs that can be updated. It is
nilin case of an error. -
Protocol to get notified on status updates when updating catalog, previously downloaded by
See moreMapDownloader.Declaration
Swift
public protocol CatalogUpdateProgressListener : AnyObject -
Represents the state of catalog map updates.
See moreDeclaration
Swift
public enum CatalogUpdateState : UInt32, CaseIterable, Codable -
Controls the client certificate verification policy on the server.
See moreDeclaration
Swift
public enum ClientCertificateRequestType : UInt32, CaseIterable, Codable -
A method which is called on the main thread when
MapDownloader.getDownloadableRegions(LanguageCode, CompletionHandler)has been completed. The first argument indicates an error in case of a failure. The second argument contains the results. Both arguments cannot benilat the same time - or notnilat the same time.Declaration
Swift
public typealias CompletionHandler = (_ maploaderError: MapLoaderError?, _ regions: [Region]?) -> VoidParameters
maploaderErrorRepresents an error in case of a failure. It is
nilfor an operation that succeeds.regionsRepresents a list of downloadable regions. It is
nilin case of an error. Each region can contain child regions that can contain child regions and so on. Usually, the top-level regions represent continents that contain countries as children. -
This method will be called on the main thread when
ExternalMapDataSourceClient.configureRemoteConnectionAsync(...)has been completed.Declaration
Swift
public typealias ConfigureConnectionHandle = (_ errorCode: ExternalMapDataSourceErrorCode?) -> VoidParameters
errorCodeRepresents the operation status. It is ‘null’ for an operation that succeeds.
-
Interface for a collection of data attributes.
Note: This is a beta release of this feature, so there could be a few bugs and unexpected behavior. Related APIs may change for new releases without a deprecation process.
See moreDeclaration
Swift
public protocol DataAttributesBase : AnyObject -
A method which is called on the main thread when
MapDownloader.deleteRegions(...)has been completed.Declaration
Swift
public typealias DeleteRegionsCompletionHandler = (_ maploaderError: MapLoaderError?, _ regions: [RegionId]?) -> VoidParameters
maploaderErrorRepresents an error in case of a failure. It is [null] for an operation that succeeds.
regionsRepresents a list of successfully removed map regions. It is [null] in case of an error.
-
Protocol to get notified on status updates when downloading map regions.
See moreDeclaration
Swift
public protocol DownloadRegionsStatusListener : AnyObject -
Note: This is a beta release of this feature, so there could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.
See moreDeclaration
Swift
public class ExternalMapDataSourceClientextension ExternalMapDataSourceClient: NativeBaseextension ExternalMapDataSourceClient: Hashable -
Describes the reason for failing to configure
See moreSDKNativeEnginewith external map data source. Note: This is a beta release of this feature, so there could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.Declaration
Swift
public enum ExternalMapDataSourceErrorCode : UInt32, CaseIterable, Codableextension ExternalMapDataSourceErrorCode : Error -
Note: This is a beta release of this feature, so there could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.
Declaration
Swift
public typealias ExternalMapDataSourceExceptionError = ExternalMapDataSourceErrorCode -
Note: This is a beta release of this feature, so there could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.
See moreDeclaration
Swift
public class ExternalMapDataSourceServerextension ExternalMapDataSourceServer: NativeBaseextension ExternalMapDataSourceServer: Hashable -
Represents installed catalog.
See moreDeclaration
Swift
public struct InstalledCatalog : Hashable -
Represents a region, from persistent map storage.
See moreDeclaration
Swift
public struct InstalledRegion : Hashable -
Represents download status of region in the persistent map storage.
See moreDeclaration
Swift
public enum InstalledRegionStatus : UInt32, CaseIterable, Codable -
Represents a geodetic line with custom attributes. Can be created using a
LineDataBuilder.Note: This is a beta release of this feature, so there could be a few bugs and unexpected behavior. Related APIs may change for new releases without a deprecation process.
Declaration
Swift
public class LineDataextension LineData: NativeBaseextension LineData: Hashable -
Line data accessor used for manipulating polylines that are part of a LineDataSource.
Note: This is a beta release of this feature, so there could be a few bugs and unexpected behavior. Related APIs may change for new releases without a deprecation process.
See moreDeclaration
Swift
public class LineDataAccessorextension LineDataAccessor: NativeBaseextension LineDataAccessor: Hashable -
Builder of
LineDatainstances.Note: This is a beta release of this feature, so there could be a few bugs and unexpected behavior. Related APIs may change for new releases without a deprecation process.
See moreDeclaration
Swift
public class LineDataBuilderextension LineDataBuilder: NativeBaseextension LineDataBuilder: Hashable -
Polyline data source allows the rendering engine access to the user provided polylines geometry and their attributes.
Polyline segments are rendered following the shortest path between their end vertices.
Note: This is a beta release of this feature, so there could be a few bugs and unexpected behavior. Related APIs may change for new releases without a deprecation process.
See moreDeclaration
Swift
public class LineDataSourceextension LineDataSource: NativeBaseextension LineDataSource: Hashable -
Builder of lines data source.
Note: This is a beta release of this feature, so there could be a few bugs and unexpected behavior. Related APIs may change for new releases without a deprecation process.
See moreDeclaration
Swift
public class LineDataSourceBuilderextension LineDataSourceBuilder: NativeBaseextension LineDataSourceBuilder: Hashable -
Specifies possible errors that may result from map downloading/prefetching.
See moreDeclaration
Swift
public enum MapLoaderError : UInt32, CaseIterable, Codableextension MapLoaderError : Error -
A class for downloading and managing map data for various regions worldwide. Downloaded map data is permanently stored on disk, enabling maps at all zoom levels, search, routing, and other features without an active data connection. Users can query available regions, download them to disk, or delete them. An instance of this class can be created using
MapDownloader.fromEngineAsync(...).The storage path for downloaded maps can be specified via
SDKOptions.persistentMapStoragePath.To control the type of content included in a map download, use
LayerConfiguration. Once applied, it affects both the map cache and offline maps. Satellite-based map schemes are not included in the downloaded region data.Note: During turn-by-turn navigation, while a map download or update is in progress, navigation may not function as expected, and the app may be blocked until the operation is completed. Ensure that all pending map operations are finished before starting navigation. This applies only to
See moreMapDownloaderandMapUpdater.RoutePrefetcheroperations are not affected.Declaration
Swift
public class MapDownloaderextension MapDownloader: NativeBaseextension MapDownloader: Hashable -
A method which is called on the main thread when
MapDownloader.fromEngineAsync(...)has been completed. TheMapDownloaderinstance is created on a background thread to not block the calling thread.During construction an online connection is established to fetch configuration data for internal use. If no online connection is available, cached or default values will be used. This is only for internal reasons and has no effect on the operability of the resulting instance. When configuration data is available from the cache, construction can still take a reasonable amount of time. Applications should consider to show a loading indicator.
Declaration
Swift
public typealias MapDownloaderConstructionHandle = (_ mapDownloader: MapDownloader) -> VoidParameters
mapDownloaderRepresents a constructed MapDownloader object.
-
Error occurred during map operation.
sdk.maploader.MapLoaderErrorrepresents possible errors.Declaration
Swift
public typealias MapLoaderException = MapLoaderError -
A class to control map download process.
See moreDeclaration
Swift
public class MapDownloaderTaskextension MapDownloaderTask: NativeBaseextension MapDownloaderTask: Hashable -
Protocol to get notified on status updates when updating map data, previously downloaded by
See moreMapDownloader.Declaration
Swift
public protocol MapUpdateProgressListener : AnyObject -
A class for updating regions previously downloaded using the
MapDownloader. First, updates for the regions are downloaded. Once the download is complete, the update process begins, installing the new content. It is recommended to regularly callMapUpdater.retrieveCatalogsUpdateInfo(...)to check for available updates for any downloaded regions.If updates are available, regions can be updated asynchronously using
MapUpdater.updateCatalog(...). TheMapUpdateProgressListenerprovides update progress for each region.Incremental map updates are supported, by default: Instead of downloading an entire region, only the parts that have changed will be installed. This results in a faster update process. MapUpdater also aligns previously downloaded content with
LayerConfigurationchanges made viaSDKOptions.Note that patching (also called “incremental updates”) is only supported for up to 8 versions. For example, if an update started with version x.y.0 then it will be supported till x.y.8 and stopped starting with x.y.9. Usually, OCM updates are released weekly. Incremental updates will stop after 2 months and a full update is performed instead.
In case of an error, the previous map data remains available for use. It is only replaced after new map data has been successfully downloaded. Regions that fail to update must be retried in a new call. Paused updates can be resumed later.
During the update process,
MapUpdaterinternally retries failed downloads until a timeout occurs. If this happens, it is reported viaMapUpdateProgressListener.If the user cancels the update process during the update phase, it is ignored. The update phase begins after all content has been downloaded, then the HERE SDK installs and replaces the existing regions. Cancellation is only possible during the download phase, and a successful cancellation is indicated via
onComplete(...).Note that a
See moreMapLoaderError.notReadyoccurs when theMapDownloaderis used in parallel. In general, background updates are not supported explicitly, as the OS can abort background processes. In addition, the OfflineSearchEngine and the OfflineRoutingEngine cannot be used while a map update is in progress and it will be indicated by aMapLoaderError.Declaration
Swift
public class MapUpdaterextension MapUpdater: NativeBaseextension MapUpdater: Hashable -
A method which is called on the main thread when
MapUpdater.fromEngineAsync(...)has been completed. Construction requires the online configuration to be fetched, which in case of sync API, would block the calling thread. When configuration is cached, it is enough to read it from the disk, this operation still takes relatively big time.Declaration
Swift
public typealias MapUpdaterConstructionHandler = (_ mapUpdater: MapUpdater) -> VoidParameters
mapUpdaterRepresents a constructed
MapUpdaterobject. -
A class to control the map update process.
See moreDeclaration
Swift
public class MapUpdateTaskextension MapUpdateTask: NativeBaseextension MapUpdateTask: Hashable -
Represents version of the map.
See moreDeclaration
Swift
public class MapVersionHandleextension MapVersionHandle: NativeBaseextension MapVersionHandle: Hashable -
Represents the navigability level of a map region. This enum defines whether a region can be used for navigation purposes. It helps categorize regions based on their usability in routing and map operations.
See moreDeclaration
Swift
public enum NavigabilityType : UInt32, CaseIterable, Codable -
A method which is called on the main thread when
MapDownloader.getOfflineMapsStorageSizeInBytes(OfflineStorageSizeHandler)has been completed. The first argument indicates an error in case of a failure. The second argument contains the results. Both arguments cannot benilat the same time - or notnilat the same time.Declaration
Swift
public typealias OfflineStorageSizeHandler = (_ error: MapLoaderError?, _ size: UInt64?) -> VoidParameters
errorRepresents an error in case of a failure. It is
nilfor an operation that succeeds.sizeThe size of offline map. It is
nilin case of an error. -
A method which is called on the main thread when
MapDownloader.repairPersistentMap(...)has been completed. The first argument indicates an error in case of a failure. The second argument contains the results. Both arguments cannot benilat the same time - or notnilat the same time.Declaration
Swift
public typealias RepairCompletionHandler = (_ persistentMapRepairError: PersistentMapRepairError?) -> VoidParameters
persistentMapRepairErrorRepresents an error in case of a failure. It is
nilfor an operation that succeeds. -
The structure below exactly match the corresponding gRPC PemKeyCertPair structure. A key/certificate pair in PEM format.
See moreDeclaration
Swift
public struct PemKeyCertPair -
Specifies possible errors that may result after a map repair operation has been completed.
See moreDeclaration
Swift
public enum PersistentMapRepairError : UInt32, CaseIterable, Codable -
Specifies possible statuses of the already downloaded map regions as a whole. Note: This can be valid only for a single region in case of a
See morePersistentMapStatus.corruptedstate.Declaration
Swift
public enum PersistentMapStatus : UInt32, CaseIterable, Codable -
Defines an area, especially part of a country or the world that can be downloaded.
See moreDeclaration
Swift
public struct Region : Hashable -
Specify a unique identifier for Region.
See moreDeclaration
Swift
public struct RegionId : Hashable -
This method will be called on the main thread when
ExternalMapDataSourceServer.start(...)has been completed.Declaration
Swift
public typealias ServerStartedHandle = (_ errorCode: ExternalMapDataSourceErrorCode?) -> VoidParameters
errorCodeRepresents the operation status. It is ‘null’ for an operation that succeeds.
-
The structure below exactly match the corresponding gRPC SslCredentialsOptions structure. Options used to build SslCredentials.
See moreDeclaration
Swift
public struct SslClientCredentialsOptions -
The structure below exactly match the corresponding gRPC SslServerCredentialsOptions structure. Options for configuring a gRPC server with SSL/TLS credentials.
See moreDeclaration
Swift
public struct SslServerCredentialsOptions -
Defines statistics related to the success or failure of patched bundles. It can be used to monitor and analyze the reliability of binary patch updates.
See moreDeclaration
Swift
public struct UpdateStatistics
MapLoader Reference