Feature Enumeration Reference
- Last UpdatedMay 13, 2025
- 5 minute read
public enum Feature : UInt32, CaseIterable, Codable
Defines a list of possible map data features that can be enabled / disabled.
See SDKOptions.layerConfiguration
Following features are enabled by default:
LayerConfiguration.Feature.detailRendering
LayerConfiguration.Feature.navigation
LayerConfiguration.Feature.offlineSearch
LayerConfiguration.Feature.offlineRouting
LayerConfiguration.Feature.rendering
LayerConfiguration.Feature.truck
All other features are disabled, by default.
Each feature enables a set of OCM layer groups to be downloaded by sdk.maploader.MapDownloader
and prefetched by sdk.prefetcher.RoutePrefetcher
.
Detailed description of each layer group available in Developer Portal
Following features are enabled by default for implicit prefetch:
LayerConfiguration.Feature.detailRendering
LayerConfiguration.Feature.navigation
LayerConfiguration.Feature.offlineSearch
LayerConfiguration.Feature.offlineRouting
LayerConfiguration.Feature.rendering
LayerConfiguration.Feature.truck
Implicit prefetch downloads map content for enabled features within a view port currently showed by MapView.
Feature might have more than one layer group predefined to enable full experience. For example,
LayerConfiguration.Feature.navigation
requires routing attributes, visual-friendly
street names, maneuvers data and ability to interconnect those data sets.
The same map data is useful for different features, for example LayerConfiguration.Feature.rendering
uses Places data to present it on the MapView, while LayerConfiguration.Feature.offlineSearch
uses
the same data to enable discoverability by name or category. Hence, features might have overlapping sets of enabled layer groups.
-
Additional rendering details like buildings. Only used for the MapView. When not set, the data will be excluded when downloading offline regions or prefetching areas that contain such data. However, during online usage such data may still be downloaded into the cache and shown. Increase of 11-16% is to be expected for map size, in case of enabling this feature.
Feature enables following OCM layer groups:
- “detailed_rendering”
Declaration
Swift
case detailRendering
-
Map data that is used for map matching during navigation. When not set, navigation may not work properly when being used offline. Increase of 5-7% is to be expected for map size, but pay attention, that this feature is depended on other layer groups (e.g. routing), so, in total is takes about 21-29 % of map size.
Feature enables following OCM layer groups:
- “interop”
- “rendering”
- “navigation”
- “routing”
Declaration
Swift
case navigation
-
Map data that is used to search. When not set, the OfflineSearchEngine may not work properly when being used offline.
Feature enables following OCM layer groups:
- “rendering”
- “routing”
- “search”
Declaration
Swift
case offlineSearch
-
Map data that is used to calculate routes. When not set, the OfflineRoutingEngine may not work properly when being used offline. Increase of 12-16.5% is to be expected for map size, but pay attention, that this feature is depended on other layer groups (e.g. navigation), so, in total is takes about 33-45 % of map size.
Feature enables following OCM layer groups:
- “rendering”
- “navigation”
- “routing”
- “interop”
- “car_offline_routing”
Declaration
Swift
case offlineRouting
-
A basic set of rendering features such as carto POIs. Increase of 16-22% is to be expected for map size, but pay attention, that this feature is depended on other layer groups (e.g. navigation), so, in total is takes about 21-29 % of map size.
Feature enables following OCM layer groups:
- “rendering”
Declaration
Swift
case rendering
-
Map data that is used to calculate truck routes. When not set, the
OfflineRoutingEngine
may not work properly when being used to calculate truck routes. It is also used for map matching during truck navigation. When not set, truck navigation may not work properly when being used offline. Online truck navigation will still work when the device has an online connection. Increase of 0.7-1.1% is to be expected for map size, in case of enabling this feature.Feature enables following OCM layer groups:
- “truck”
- “long_truck_offline_routing”
- “truck_offline_routing”
Declaration
Swift
case truck
-
Map data that is used to render textured 3D landmarks. When not set, the data will be excluded when downloading offline regions or prefetching areas that contain such data. When the
landmarks
layer is set to be visible for aMapScene
, 3D landmarks will still be visible during online usage. Increase of 2-3% is to be expected for map size, in case of enabling this feature. Disabled by default.Feature enables following OCM layer groups:
- “landmarks”
Declaration
Swift
case landmarks3d
-
Map data that provides traffic broadcast functionality using RDS-TMC format. It should be used when there is no internet connection, so that the routing module can utilize traffic data coming over the radio channel to build a route in the offline mode. Feature enables following OCM layer groups:
- “traffic”
Declaration
Swift
case traffic
-
Offline map data for
EVChargingStation
.Feature enables following OCM layer groups:
- “ev_charging_station_rendering_premium”
- “ev_charging_station_search_premium”
Declaration
Swift
case ev
-
Enables truck related attributes to be returned by Offline Search engine. Feature enables following OCM layer groups:
- “truck_service_premium”
Declaration
Swift
case truckServiceAttributes
-
Enables fuel attributes to be returned by Offline Search engine.
Feature enables following OCM layer groups:
- “fueling_station_premium”
Declaration
Swift
case fuelStationAttributes
-
Map data that is used to calculate bus routes. When not set, the
OfflineRoutingEngine
may not be able to calculate routes withBusOptions
.Feature enables following OCM layer groups:
- “bus_offline_routing”
Declaration
Swift
case offlineBusRouting
-
Map data that provides junction view images and assets with aspect ratio 3x4. This will also provide common assets that do not depend on specific aspect ratio. By default this feature is disabled.
Feature enables following OCM layer groups:
- “junction_view_file_3x4”
- “junction_view_asset_3x4”
- “junction_view_asset_common”
Declaration
Swift
case junctionView3x4
-
Map data that provides junction view images and assets with aspect ratio 16x9. This will also provide common assets that do not depend on specific aspect ratio. By default this feature is disabled.
Feature enables following OCM layer groups:
- “junction_view_file_16x9”
- “junction_view_asset_16x9”
- “junction_view_asset_common”
Declaration
Swift
case junctionView16x9
-
Map data that provides junction sign images with aspect ratio 3x4. By default this feature is disabled.
Feature enables following OCM layer groups:
- “junction_sign_file_3x4”
Declaration
Swift
case junctionSign3x4
-
Map data that provides junction sign images with aspect ratio 3x5. By default this feature is disabled.
Feature enables following OCM layer groups:
- “junction_sign_file_3x5”
Declaration
Swift
case junctionSign3x5
-
Map data that provides junction sign images with aspect ratio 4x3. By default this feature is disabled.
Feature enables following OCM layer groups:
- “junction_sign_file_4x3”
Declaration
Swift
case junctionSign4x3
-
Map data that provides junction sign images with aspect ratio 5x3. By default this feature is disabled. Feature enables following OCM layer groups:
- “junction_sign_file_5x3”
Declaration
Swift
case junctionSign5x3
-
Map data that provides junction sign images with aspect ratio 16x9. By default this feature is disabled.
Feature enables following OCM layer groups:
- “junction_sign_file_16x9”
Declaration
Swift
case junctionSign16x9
-
Map data that provides topography information. By default this feature is disabled. Feature enables following OCM layer groups:
- “terrain”
Declaration
Swift
case terrain
-
Map data which provides ADAS information which includes slope, elevation and curvature information. By default this feature is disabled. Feature enables following OCM layer groups:
- “adas”
Declaration
Swift
case adas
-
Map data which provides information about the parts of foreign segments in a tile, where a foreign segment is a segment that is stored in another tile but intersects the current tile. By default this feature is disabled. Feature enables following OCM layer groups:
- “ehorizon”
Declaration
Swift
case ehorizon
-
Map data that provides traffic broadcast functionality using RDS-TMC format. It should be used when there is no internet connection, so that the routing module can utilize traffic data coming over the radio channel to build a route in the offline mode. Feature enables following OCM layer groups:
- “traffic”
Declaration
Swift
case rdsTraffic
-
Declaration
Swift
public static var allCases: [Feature] { get }
-
A type that can be used as a key for encoding and decoding.
See moreDeclaration
Swift
public enum Key : CodingKey
-
The error which is thrown if initialisation with decoder has failed
See moreDeclaration
Swift
public enum CodingError : Error
-
Creates a new instance by decoding from the given decoder
Declaration
Swift
public init(from decoder: Decoder) throws
-
Encodes this value into the given encoder
Declaration
Swift
public func encode(to encoder: Encoder) throws