MapLoader Reference
- Last UpdatedMay 28, 2025
- 9 minute read
-
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 benil
at the same time - or notnil
at the same time. An emptyCatalogUpdateInfo
list represent no map updates.Declaration
Swift
public typealias CatalogsUpdateInfoCallback = (MapLoaderError?, [CatalogUpdateInfo]?) -> Void
Parameters
p0
Represents an error in case of a failure. It is
nil
for an operation that succeeds.p1
Represents a list of all catalogs that can be updated. It is
nil
in 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 benil
at the same time - or notnil
at the same time.Declaration
Swift
public typealias CompletionHandler = (MapLoaderError?, [Region]?) -> Void
Parameters
p0
Represents an error in case of a failure. It is
nil
for an operation that succeeds.p1
Represents a list of downloadable regions. It is
nil
in 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. -
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?, [RegionId]?) -> Void
Parameters
p0
Represents an error in case of a failure. It is [null] for an operation that succeeds.
p1
Represents 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
-
Factory class to configure SDK with external map data source. By “external map data source” we mean the map data service that is connected under the hood by our internal OCM Access Manager (OCM AM). This feature can help to share data with multiple user profiles on the same device. Note that this feature requires an advanced set-up. In case of doubt, please contact your HERE representative.
Usage example:
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 ExternalMapDataSource
extension ExternalMapDataSource: NativeBase
extension ExternalMapDataSource: Hashable
-
Describes the reason for failing to configure
See moreSDKNativeEngine
with 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, Codable
extension 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
-
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 LineData
extension LineData: NativeBase
extension 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 LineDataAccessor
extension LineDataAccessor: NativeBase
extension LineDataAccessor: Hashable
-
Builder of
LineData
instances.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 LineDataBuilder
extension LineDataBuilder: NativeBase
extension 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 LineDataSource
extension LineDataSource: NativeBase
extension 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 LineDataSourceBuilder
extension LineDataSourceBuilder: NativeBase
extension LineDataSourceBuilder: Hashable
-
Specifies possible errors that may result from map downloading/prefetching.
See moreDeclaration
Swift
public enum MapLoaderError : UInt32, CaseIterable, Codable
extension 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 moreMapDownloader
andMapUpdater
.RoutePrefetcher
operations are not affected.Declaration
Swift
public class MapDownloader
extension MapDownloader: NativeBase
extension MapDownloader: Hashable
-
A method which is called on the main thread when
MapDownloader.fromEngineAsync(...)
has been completed. TheMapDownloader
instance 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) -> Void
Parameters
p0
Represents a constructed MapDownloader object.
-
Error occurred during map operation.
sdk.maploader.MapLoaderError
represents possible errors.Declaration
Swift
public typealias MapLoaderException = MapLoaderError
-
A class to control map download process.
See moreDeclaration
Swift
public class MapDownloaderTask
extension MapDownloaderTask: NativeBase
extension 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(...)
. TheMapUpdateProgressListener
provides 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
LayerConfiguration
changes 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,
MapUpdater
internally 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.notReady
occurs when theMapDownloader
is 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 MapUpdater
extension MapUpdater: NativeBase
extension 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) -> Void
Parameters
p0
Represents a constructed MapUpdater object.
-
A class to control the map update process.
See moreDeclaration
Swift
public class MapUpdateTask
extension MapUpdateTask: NativeBase
extension MapUpdateTask: Hashable
-
Represents version of the map.
See moreDeclaration
Swift
public class MapVersionHandle
extension MapVersionHandle: NativeBase
extension MapVersionHandle: Hashable
-
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 benil
at the same time - or notnil
at the same time.Declaration
Swift
public typealias RepairCompletionHandler = (PersistentMapRepairError?) -> Void
Parameters
p0
Represents an error in case of a failure. It is
nil
for 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.corrupted
state.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
-
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