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 more

    Declaration

    Swift

    public enum TrafficRefreshPeriodErrorCode : UInt32, CaseIterable, Codable
    extension MapContentSettings.TrafficRefreshPeriodErrorCode : Error
  • Configure a filter for MapFeatures.vehicleRestrictions to 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(...).truckSpecifications is 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(...).truckSpecifications is 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(...).hazardousMaterials contains HazardousMaterial.poison and HazardousMaterial.gas, then only material restrictions for poison and gas will be displayed.
    • If the MapContentSettings.filterVehicleRestrictions(...).hazardousMaterials list is empty, then no material restrictions will be shown.
    • If the MapContentSettings.filterVehicleRestrictions(...).hazardousMaterials list is not supplied at all (is nil), then no material restrictions will be shown.
    • If the MapContentSettings.filterVehicleRestrictions(...).hazardousMaterials contains at least one hazardous material of any type and MapContentSettings.filterVehicleRestrictions(...).tunnelCategory is nil, 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 is TunnelCategory.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(...).tunnelCategory is 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(...).tunnelCategory are specified, the SDK strictly follows the given tunnel category parameter and displays only the applicable restrictions.

    Example: If MapContentSettings.filterVehicleRestrictions(...).tunnelCategory is set to TunnelCategory.d, then restrictions for tunnel category TunnelCategory.e and TunnelCategory.d will be displayed, but not the categories TunnelCategory.b and TunnelCategory.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

    truckSpecifications

    The size, weight, type and trailer count specifications to filter for, so that only restrictions which are relevant for the given specifications are displayed.

    hazardousMaterials

    The hazardous materials to filter for, so that only applicable restrictions are displayed. When the list is nil or empty, then no material restrictions will be displayed.

    tunnelCategory

    The tunnel category to filter for, so that only applicable restrictions are displayed. If nil and at least one hazardous material is present in MapContentSettings.filterVehicleRestrictions(...).hazardousMaterials list, then all of the available tunnel category restrictions will be displayed.

  • Configure a filter for MapFeatures.vehicleRestrictions to 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(...).truckSpecifications is 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(...).truckSpecifications is 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(...).hazardousMaterials contains HazardousMaterial.poison and HazardousMaterial.gas, then only material restrictions for poison and gas will be displayed.
    • If the MapContentSettings.configureVehicleRestrictionFilter(...).hazardousMaterials list is empty, then no material restrictions will be shown.
    • If the MapContentSettings.configureVehicleRestrictionFilter(...).hazardousMaterials list is not supplied at all (is nil), then no material restrictions will be shown.
    • If the MapContentSettings.configureVehicleRestrictionFilter(...).hazardousMaterials contains at least one hazardous material of any type and MapContentSettings.configureVehicleRestrictionFilter(...).tunnelCategory is nil, 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 is TunnelCategory.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(...).tunnelCategory is 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(...).tunnelCategory are specified, the SDK strictly follows the given tunnel category parameter and displays only the applicable restrictions.

    Example: If MapContentSettings.configureVehicleRestrictionFilter(...).tunnelCategory is set to TunnelCategory.d, then restrictions for tunnel category TunnelCategory.e and TunnelCategory.d will be displayed, but not the categories TunnelCategory.b and TunnelCategory.c.

    Declaration

    Swift

    public static func configureVehicleRestrictionFilter(transportMode: TransportMode, truckSpecifications: TruckSpecifications, hazardousMaterials: [HazardousMaterial]?, tunnelCategory: TunnelCategory?)

    Parameters

    transportMode

    Specifies 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.

    truckSpecifications

    The size, weight, type and trailer count specifications to filter for, so that only restrictions which are relevant for the given specifications are displayed.

    hazardousMaterials

    The hazardous materials to filter for, so that only applicable restrictions are displayed. When the list is nil or empty, then no material restrictions will be displayed.

    tunnelCategory

    The tunnel category to filter for, so that only applicable restrictions are displayed. If nil, then no tunnel category restrictions will be displayed.

  • 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(...) with MapFeatures.vehicleRestrictions and setting layer visibility using MapScene.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 the VISIBLE state.

    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

    categoryIds

    A list of POI categories that a visibility state is set for.

    visibility

    A 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(...) with MapFeatures.trafficIncidents.

    Declaration

    Swift

    public static func filterTrafficIncidents(trafficIncidents: [TrafficIncidentType])

    Parameters

    trafficIncidents

    The 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(...).trafficIncidents contains TrafficIncidentType.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(...) with MapFeatures.trafficIncidents.

    Declaration

    Swift

    public static func resetTrafficIncidentFilter()
  • Sets the traffic data refresh period for both MapFeatures.trafficFlow and MapFeatures.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.

    Declaration

    Swift

    public static func setTrafficRefreshPeriod(_ value: TimeInterval) throws

    Parameters

    value

    Traffic 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()