MapContentSettings
public class MapContentSettings
extension MapContentSettings: NativeBase
extension MapContentSettings: Hashable
Provides settings regarding map data which are applied globally to all map views. The settings can already be changed before a map view instance is created.
-
Traffic refresh period error exception
Declaration
Swift
public typealias TrafficRefreshPeriodError = TrafficRefreshPeriodErrorCode -
Traffic refresh period error code
See moreDeclaration
Swift
public enum TrafficRefreshPeriodErrorCode : UInt32, CaseIterable, Codableextension MapContentSettings.TrafficRefreshPeriodErrorCode : Error -
Configure a filter for
MapFeatures.vehicleRestrictionsto show only the restrictions matching the specified criteria when the feature is enabled.Filtering rules for truck specifications
Only restrictions applicable to the supplied truck specifications will be shown.
Examples:
- If the height in
MapContentSettings.filterVehicleRestrictions(...).truckSpecificationsis set to 200 cm, then height restrictions with a height greater than 200 cm will not be displayed. - If the trailer count in
MapContentSettings.filterVehicleRestrictions(...).truckSpecificationsis set to 2, then trailer restrictions for a count greater than 2 will not be displayed.
Filtering rules for hazardous materials
Only restrictions applicable to specified hazardous materials will be shown. If at least one hazardous material of any type is present in the list, all available tunnel category restrictions will be displayed. In order to filter-out non-applicable tunnel categories, a tunnel category, that applies to the vehicle, can be specified additionally.
Examples:
- If the
MapContentSettings.filterVehicleRestrictions(...).hazardousMaterialscontainsHazardousMaterial.poisonandHazardousMaterial.gas, then only material restrictions for poison and gas will be displayed. - If the
MapContentSettings.filterVehicleRestrictions(...).hazardousMaterialslist is empty, then no material restrictions will be shown. - If the
MapContentSettings.filterVehicleRestrictions(...).hazardousMaterialslist is not supplied at all (isnil), then no material restrictions will be shown. - If the
MapContentSettings.filterVehicleRestrictions(...).hazardousMaterialscontains at least one hazardous material of any type andMapContentSettings.filterVehicleRestrictions(...).tunnelCategoryisnil, then only corresponding material restrictions will be displayed together with all available tunnel categories.
Filtering rules for tunnel category
Tunnel categories are labeled and rated based on the level of restriction they provide. The lowest level of restriction is
TunnelCategory.b, the highest and most restrictive one isTunnelCategory.e.Specifying tunnel category means that:
- The truck carries goods which could cause only the additional dangerous effects described in specified tunnel category and other categories below it with lower level of restriction.
- The truck does not carry goods that could cause the dangerous effects described in tunnel categories above with higher restriction levels than the one specified.
Tunnel categories are closely related to hazardous materials.
Since the type of hazardous material alone does not define the exact level of danger, to ensure comprehensive coverage; the HERE SDK follows:
- If at least one hazardous material is specified but no
MapContentSettings.filterVehicleRestrictions(...).tunnelCategoryis provided, the SDK enables and displays all tunnel category restrictions to ensure that no relevant restrictions are omitted. - If both hazardous materials and a
MapContentSettings.filterVehicleRestrictions(...).tunnelCategoryare specified, the SDK strictly follows the given tunnel category parameter and displays only the applicable restrictions.
Example: If
MapContentSettings.filterVehicleRestrictions(...).tunnelCategoryis set toTunnelCategory.d, then restrictions for tunnel categoryTunnelCategory.eandTunnelCategory.dwill be displayed, but not the categoriesTunnelCategory.bandTunnelCategory.c.Declaration
Swift
@available(*, deprecated, message: "Will be removed in v4.25.0. Use `MapContentSettings.configureVehicleRestrictionFilter(...﹚` instead.") public static func filterVehicleRestrictions(truckSpecifications: TruckSpecifications, hazardousMaterials: [HazardousMaterial]?, tunnelCategory: TunnelCategory?)Parameters
truckSpecificationsThe size, weight, type and trailer count specifications to filter for, so that only restrictions which are relevant for the given specifications are displayed.
hazardousMaterialsThe hazardous materials to filter for, so that only applicable restrictions are displayed. When the list is
nilor empty, then no material restrictions will be displayed.tunnelCategoryThe tunnel category to filter for, so that only applicable restrictions are displayed. If
niland at least one hazardous material is present inMapContentSettings.filterVehicleRestrictions(...).hazardousMaterialslist, then all of the available tunnel category restrictions will be displayed. - If the height in
-
configureVehicleRestrictionFilter(transportMode:truckSpecifications: hazardousMaterials: tunnelCategory: ) Configure a filter for
MapFeatures.vehicleRestrictionsto show only the restrictions matching the specified criteria when the feature is enabled.Filtering rules for truck specifications
Only restrictions applicable to the supplied truck specifications will be shown.
Examples:
- If the height in
MapContentSettings.configureVehicleRestrictionFilter(...).truckSpecificationsis set to 200 cm, then height restrictions with a height greater than 200 cm will not be displayed. - If the trailer count in
MapContentSettings.configureVehicleRestrictionFilter(...).truckSpecificationsis set to 2, then trailer restrictions for a count greater than 2 will not be displayed.
Filtering rules for hazardous materials
Only restrictions applicable to specified hazardous materials will be shown. If at least one hazardous material of any type is present in the list, all available tunnel category restrictions will be displayed. In order to filter-out non-applicable tunnel categories, a tunnel category, that applies to the vehicle, can be specified additionally.
Examples:
- If the
MapContentSettings.configureVehicleRestrictionFilter(...).hazardousMaterialscontainsHazardousMaterial.poisonandHazardousMaterial.gas, then only material restrictions for poison and gas will be displayed. - If the
MapContentSettings.configureVehicleRestrictionFilter(...).hazardousMaterialslist is empty, then no material restrictions will be shown. - If the
MapContentSettings.configureVehicleRestrictionFilter(...).hazardousMaterialslist is not supplied at all (isnil), then no material restrictions will be shown. - If the
MapContentSettings.configureVehicleRestrictionFilter(...).hazardousMaterialscontains at least one hazardous material of any type andMapContentSettings.configureVehicleRestrictionFilter(...).tunnelCategoryisnil, then only corresponding material restrictions will be displayed together with all available tunnel categories.
Filtering rules for tunnel category
Tunnel categories are labeled and rated based on the level of restriction they provide. The lowest level of restriction is
TunnelCategory.b, the highest and most restrictive one isTunnelCategory.e.Specifying tunnel category means that:
- The truck carries goods which could cause only the additional dangerous effects described in specified tunnel category and other categories below it with lower level of restriction.
- The truck does not carry goods that could cause the dangerous effects described in tunnel categories above with higher restriction levels than the one specified.
Tunnel categories are closely related to hazardous materials.
Since the type of hazardous material alone does not define the exact level of danger, to ensure comprehensive coverage; the HERE SDK follows:
- If at least one hazardous material is specified but no
MapContentSettings.configureVehicleRestrictionFilter(...).tunnelCategoryis provided, the SDK enables and displays all tunnel category restrictions to ensure that no relevant restrictions are omitted. - If both hazardous materials and a
MapContentSettings.configureVehicleRestrictionFilter(...).tunnelCategoryare specified, the SDK strictly follows the given tunnel category parameter and displays only the applicable restrictions.
Example: If
MapContentSettings.configureVehicleRestrictionFilter(...).tunnelCategoryis set toTunnelCategory.d, then restrictions for tunnel categoryTunnelCategory.eandTunnelCategory.dwill be displayed, but not the categoriesTunnelCategory.bandTunnelCategory.c.Declaration
Swift
public static func configureVehicleRestrictionFilter(transportMode: TransportMode, truckSpecifications: TruckSpecifications, hazardousMaterials: [HazardousMaterial]?, tunnelCategory: TunnelCategory?)Parameters
transportModeSpecifies the current transport type. Currently, it’s used to distinguish between truck and other transport modes. This distinction ensures consistency between the routing logic and the information displayed on the map. At present, this is primarily used to suppress the generic truck restriction icon.
truckSpecificationsThe size, weight, type and trailer count specifications to filter for, so that only restrictions which are relevant for the given specifications are displayed.
hazardousMaterialsThe hazardous materials to filter for, so that only applicable restrictions are displayed. When the list is
nilor empty, then no material restrictions will be displayed.tunnelCategoryThe tunnel category to filter for, so that only applicable restrictions are displayed. If
nil, then no tunnel category restrictions will be displayed. - If the height in
-
Removes all filters regarding vehicle restrictions so that all restrictions will be displayed, when the display of vehicle restrictions is enabled by enabling feature using
MapScene.enableFeatures(...)withMapFeatures.vehicleRestrictionsand setting layer visibility usingMapScene.setLayerVisibility(...).Declaration
Swift
public static func resetVehicleRestrictionFilter() -
Sets visibility for embedded carto POI categories (points of interest that are visible on the map, by default). For HERE standard map schemes all available POI categories are visible by default for each selected map scheme. Note that not all POI categories are available for all map schemes.
Based on the given list of categories the number of shown carto POIs can be reduced. To find all possible POI category strings look into
here.sdk.search.PlaceCategory. Note that it is enough to hide a main category like “100” (eat-and-drink) to also affect sub categories such as “100-1000” (eat-and-drink-restaurant) and “100-1100” (eat-and-drink-coffee-tea). To enable a sub category, also the related main categories need have theVISIBLEstate.The POI visibility is a property of the map data itself. Once set it will be applied to all HERE standard map schemes and the selected categories will remain even when switching a map scheme.
Declaration
Swift
public static func setPoiCategoriesVisibility(categoryIds: [String], visibility: VisibilityState)Parameters
categoryIdsA list of POI categories that a visibility state is set for.
visibilityA selected visibility for specified POI categories.
-
Resets POI categories visibility to their default state.
Declaration
Swift
public static func resetPoiCategoriesVisibility() -
Filters the displayed traffic incidents so that only the ones applicable to the specified criteria are shown when general display of traffic incidents is enabled. The display of traffic incidents can be enabled using
MapScene.enableFeatures(...)withMapFeatures.trafficIncidents.Declaration
Swift
public static func filterTrafficIncidents(trafficIncidents: [TrafficIncidentType])Parameters
trafficIncidentsThe traffic incidents to filter for, so that only applicable incidents are displayed. When the list is empty, then all traffic incidents will be displayed. If the
MapContentSettings.filterTrafficIncidents(...).trafficIncidentscontainsTrafficIncidentType.unknown, then the traffic filter will be applied ignoring this element. -
Removes all filters regarding Traffic Incidents so that all incidents will be displayed, when the display of Traffic Incidents is enabled using
MapScene.enableFeatures(...)withMapFeatures.trafficIncidents.Declaration
Swift
public static func resetTrafficIncidentFilter() -
Sets the traffic data refresh period for both
MapFeatures.trafficFlowandMapFeatures.trafficIncidents. By default, the traffic information validity time and the refresh period is derived from the refresh period of HERE’s traffic server. The period set by this function will override the server’s default setting for upcoming traffic data requests. Defaults to 60 seconds.Throws
MapContentSettings.TrafficRefreshPeriodErrorMapContentSettings.TrafficRefreshPeriodErrorindicates what went wrong.Declaration
Swift
public static func setTrafficRefreshPeriod(_ value: TimeInterval) throwsParameters
valueTraffic data refresh period in seconds. Valid range is [60, 300] seconds. The shortest refresh period that can be set is 60 seconds. This means that the traffic data shown on a map view will be refreshed every minute. The longest refresh period that can be set is 300 seconds. This means that the traffic data shown on the current map view will be refreshed every 5 minutes if the viewport does not change. Note that when a viewport change occurs, new traffic data may be requested regardless of the set refresh period. For example, during turn-by-turn navigation, frequent viewport changes can result in missing traffic data, causing new requests to be made more often.
-
Resets the traffic data (both flow and incidents) refresh period so the default traffic information validity time and the refresh period derived from the refresh period of the traffic server is used.
Declaration
Swift
public static func resetTrafficRefreshPeriod()