Licenses explained
The HERE SDK for Android is available in two different licenses (formerly known as editions):
- Explore license: A subset of the Navigate license with features such as online search and routing for multiple transport modes including car, bus, truck and electric vehicles.
- Navigate license: The most feature-rich license that includes online / offline turn-by-turn navigation and other advanced features.
A few of the features that are available exclusively as part of the Navigate license:
- Turn-by-turn-navigation
- Offline map data as downloadable countries or regions, offline search and offline routing
- HERE Positioning
While each license provides a tailored map experience, both licenses feature the integration of the HERE Rendering Engine:
- The HERE Rendering Engine offers visually appealing true 3D maps that provide a smooth map experience and highly performant map.
- Benefit from features such as multiple map view instances, an integrated tool chain for map customization, full 3D camera control and seamless map scheme switches.
Internally, each license of the HERE SDK 4.x shares a set of common modules. For example, the SearchEngine is part of a module that is used by all licenses. Therefore, such functionality and the related APIs are the same for both licenses. On top, all features of the Explore license are also available for the Navigate license. However, the HERE SDK (Explore) uses a more light-weighted map data format.
If you are still unsure what license you should choose, try to answer the following questions:
- Do you want to offer the best and most advanced map experience, but you do not need any of the advanced features such as navigation? Then you might want to choose the Explore license.
- Does your app rely on any of the available advanced features? Choose the Navigate license.
- The Navigate license is only available for customers who have signed a contract with HERE Technologies. Are you waiting for your license? Consider starting with the Explore license, which offers a subset of the same APIs available with the Navigate license.
A more detailed overview of the available features can be found in the feature list.
In addition, the 4.x version of the HERE SDK is available for Flutter to build apps for iOS and Android from a single codebase written in Dart. You can learn more about all available HERE SDKs here.
Waypoint and Waypoint.transitRadiusInMeters, please use Waypoint.radiusInMeters instead.Waypoint.radiusInMeters as distance for candidates of a road to be used as a waypoint for the route calculation. It replaces the deprecated Waypoint.transitRadiusInMeters.MapFeatures.AMBIENT_OCCLUSION and MapFeatures.SHADOWS will be prohibited, even if there is a request to enable them. MapFeatures.CONGESTION_ZONES, MapFeatures.ENVIRONMENTAL_ZONES, MapFeatures.LOW_SPEED_ZONES and roads in MapScheme.HYBRID_DAY, MapScheme.HYBRID_NIGHT, MapScheme.LITE_HYBRID_DAY, MapScheme.LITE_HYBRID_NIGHT, MapScheme.LOGISTICS_HYBRID_DAY, MapScheme.LOGISTICS_HYBRID_NIGHT display visible darkening due to overlapping rendering. Roads show this darkening at the road segment junctions. For semi-transparent MapPolyline, the polylines will lose their transparency. Furthermore, MapFeatures.TERRAIN with MapFeatureModes.TERRAIN_3D will be automatically switched to MapFeatureModes.TERRAIN_HILLSHADE if the GPU is PowerVR Rogue.RoutingError.INVALID_PARAMETER on EV routes that use RouteHandle based route calculations that happens when calling RoutingEngine.setCustomOption(String, String) with options that are not supported by the backend. The options are ignored.MapPolyline rendering when offscreen rendering is disabled. Semi-transparent polylines now maintain transparency and blend colors as expected. As a result, overlapping regions may be visible depending on the LineCap type used.MapPolyline.SolidMultiColorRepresentation so that 1.0 must be the last color stop. Note that this is a beta release of this feature.TileKey.fromGeoCoordinates(GeoCoordinates coordinates, int storageLevel, TilingScheme tilingScheme) factory method for creating TileKey objects containing specific geo-coordinates.HereMap.getStyle() to MapScene.getStyle(). Note that this is a beta release of this feature.MapScene to hide bridge building geometries (extruded buildings, footprints, and labels) when they overlap with road geometry.MapMarker icon above overlapping marker icons while still allowing its text label to participate in collision detection and be hidden. See MapMarker.isIconOverlapAllowed() and MapMarker.setIconOverlapAllowed() for details. This setting has no effect when MapMarker.isOverlapAllowed() is true.RoutingError.INVALID_PARAMETER that occurred when BatterySpecifications.connectorTypes contained both ChargingConnectorType.TESLA and ChargingConnectorType.SAE_J3400. Route calculation now continues with ChargingConnectorType.SAE_J3400.4.27.3_LTS, currently planned for September 2, 2026.MapFeatures.AMBIENT_OCCLUSION and MapFeatures.SHADOWS will be prohibited, even if there is a request to enable them. MapFeatures.CONGESTION_ZONES, MapFeatures.ENVIRONMENTAL_ZONES, MapFeatures.LOW_SPEED_ZONES and roads in MapScheme.HYBRID_DAY, MapScheme.HYBRID_NIGHT, MapScheme.LITE_HYBRID_DAY, MapScheme.LITE_HYBRID_NIGHT, MapScheme.LOGISTICS_HYBRID_DAY, MapScheme.LOGISTICS_HYBRID_NIGHT display visible darkening due to overlapping rendering. Roads show this darkening at the road segment junctions. For semi-transparent MapPolyline, the polylines will lose their transparency. Furthermore, MapFeatures.TERRAIN with MapFeatureModes.TERRAIN_3D will be automatically switched to MapFeatureModes.TERRAIN_HILLSHADE if the GPU is PowerVR Rogue.MapScene.addMapPolylineLayer(String, MapLayerPriority) to create a named polyline layer at a specific render priority. Added MapScene.addMapPolyline(MapPolyline, String) and MapScene.addMapPolylines(List<MapPolyline>, String) to add polylines to a named layer. Added MapScene.removeMapPolylineLayer(String) to remove a named polyline layer and all polylines it contains.MapContext.SceneLoadCacheOptions and MapContext.MemoryManagementOptions.sceneLoadCacheOptions for scene load cache customization. Note that this is a beta release of this feature.HazardousMaterialRestriction.hazardousMaterial. Use HazardousMaterialRestriction.hazardousMaterials instead.here-sdk-explore, here-sdk-navigate. Refer to the integration guide (https://docs.here.com/here-sdk/docs/android-integrate-here-sdk) for details. Note that this is a beta release of this feature.here-sdk-core, here-sdk-electronic-horizon, here-sdk-map-advanced, here-sdk-map-data, here-sdk-map-loader-remote-connection, here-sdk-map-loader, here-sdk-map-matcher, here-sdk-navigation-core, here-sdk-navigation, here-sdk-positioning, here-sdk-routing-core, here-sdk-routing-dynamic, here-sdk-routing-isoline, here-sdk-routing-offline, here-sdk-routing-online, here-sdk-routing-transit, here-sdk-search-offline, here-sdk-search-online, here-sdk-traffic-broadcast, here-sdk-traffic, here-sdk-visual-navigation. The following components require the Navigate license: here-sdk-electronic-horizon, here-sdk-map-advanced, here-sdk-map-data, here-sdk-map-loader-remote-connection, here-sdk-map-loader, here-sdk-map-matcher, here-sdk-navigation-core, here-sdk-navigation, here-sdk-positioning, here-sdk-routing-dynamic, here-sdk-routing-offline, here-sdk-search-offline, here-sdk-traffic-broadcast, here-sdk-visual-navigation. Refer to the integration guide (https://docs.here.com/here-sdk/docs/android-integrate-here-sdk) for details. Note that this is a beta release of this feature.MapFeatures.AMBIENT_OCCLUSION and MapFeatures.SHADOWS will be prohibited, even if there is a request to enable them. MapFeatures.CONGESTION_ZONES, MapFeatures.ENVIRONMENTAL_ZONES, MapFeatures.LOW_SPEED_ZONES and roads in MapScheme.HYBRID_DAY, MapScheme.HYBRID_NIGHT, MapScheme.LITE_HYBRID_DAY, MapScheme.LITE_HYBRID_NIGHT, MapScheme.LOGISTICS_HYBRID_DAY, MapScheme.LOGISTICS_HYBRID_NIGHT display visible darkening due to overlapping rendering. Roads show this darkening at the road segment junctions. For semi-transparent MapPolyline, the polylines will lose their transparency. Furthermore, MapFeatures.TERRAIN with MapFeatureModes.TERRAIN_3D will be automatically switched to MapFeatureModes.TERRAIN_HILLSHADE if the GPU is PowerVR Rogue.LocationIndicator.setMarker3dModel(MapMarker3DModel, double, LocationIndicator.MarkerType). Use LocationIndicator.setMarker3dModel(MapMarker3DModel, double, LocationIndicator.MarkerType, RenderSize.Unit) instead.MapCameraKeyframeTrack.lookAtDistance(List<ScalarKeyframe>, Easing, KeyframeInterpolationMode) method. Use MapCameraKeyframeTrack.lookAtDistance(MapMeasure.Kind, List<ScalarKeyframe>, Easing, KeyframeInterpolationMode) instead.ViolatedRestriction.forbiddenTruckType. Use ViolatedRestriction.Details.forbiddenTruckCategory instead.VehicleSpecification.truckType. Use VehicleSpecification.truckCategory instead.LockingProcess.getLockingProcessId(SDKOptions) and LockingProcess.destroyLockingProcess(SDKOptions, long). Use LockingProcess.getLockingProcessId(Context, SDKOptions) and LockingProcess.destroyLockingProcess(Context, SDKOptions, long) instead.RoadShieldIconProperties.isoCountryCode and Span.getIsoCountryCode() to provide a type-safe country code value, aligned with other HERE SDK APIs.RoadShieldIconProperties.countryCode. Use RoadShieldIconProperties.isoCountryCode instead.ManeuverAction.LEFT_FORK and ManeuverAction.RIGHT_FORK were returned instead of ManeuverAction.LEFT_RAMP and ManeuverAction.RIGHT_RAMP for road bifurcations, resulting in an inaccurate maneuver icon.MapView.onStop() and MapView.onRestart() to be called on matching Activity lifecycle events.Span.getIsoCountryCode() to be used with RoadShieldIconProperties.isoCountryCode.Anchor2D.center(), Anchor2D.top(), Anchor2D.topRight(), Anchor2D.right(), Anchor2D.bottomRight(), Anchor2D.bottom(), Anchor2D.bottomLeft(), Anchor2D.left() and Anchor2D.topLeft().OFFLINE_SEARCH value to SDKNativeEngine.PurgeMemoryStrategy enum. Calling purgeMemoryCaches(OFFLINE_SEARCH) clears only offline search caches, leaving map tile and routing caches intact.MapImage.getSize() that returns the pixel size of the image as a Size2D.MapPolyline.SolidMultiColorRepresentation API. Additionally, the performance of this feature was improved. Performance improvements. Note that this is a beta release of this feature.MapInteractionListener to support receiving notifications from map interactions. Added enum MapInteractionState to describe the supported states of a map interaction. Added Gestures.setMapInteractionListener(@Nullable final MapInteractionListener) to register the MapInteractionListener. Added @Nullable MapInteractionListener Gestures.getMapInteractionListener() to get the current MapInteractionListener.Color DataAttributes.getColor() to get an attribute of type Color and DataAttributeBuilder.with(String, Color) to add an attribute of type Color.MapArrow.getProgress(), MapArrow.setProgress(final double value), MapArrow.getProgressColor() and MapArrow.setProgressColor(@NonNull final Color value) methods to style two parts of a map arrow with different colors.EVChargingLocation.nearbyPlaces that represents the list of Places within walking distance from the EV charging location and EVChargingLocation.hasMoreNearbyPlaces that represents the boolean flag indicating whether there are additional nearby places beyond those included in the EVChargingLocation.nearbyPlaces list.MapContext.MemoryManagementResult.resultCode by a boolean MapContext.MemoryManagementResult.success to represent the failure or success of the method MapContext.setMemoryManagementOptions(). In case the input value for tile cache or video memory is larger than the supported maximum allowed limit, it is clamped. Removed the obsolete beta API enum MapContext.MemoryManagementResultCode.EVSearchEngine which provides detailed information about EV charging locations. For information on how to obtain the required license, see HERE EV Charge Points API v3 - Developer Guide. Introduced the new EVChargingLocation type, which exposes charging location details such as operator, suboperator and eMSPs info, facility types, parking type, energy mix, EVSEs, tariffs, connector groups, truck restrictions and support phone number. EVChargingLocation is accessible via Place.getDetails().evChargingLocation. Introduced EVSearchOptions to control the behavior of EVSearchEngine. Use SearchEngine.setEVInterface(EVSearchInterface) to attach an EVSearchEngine instance so that subsequent search calls automatically enrich results with additional EV information where applicable. Note that this is a beta release of this feature.MapScene.removeAllMapItems() to remove all map items from a scene.MapSurface.setSurface(Context context, Surface surface, int width, int height). Use MapSurface.attachSurface(Context context, Surface surface, int width, int height) instead.VehicleProfile. Use TransportSpecification instead. Deprecated VehicleType. Use TransportMode instead. Deprecated PedestrianProfile. Use TransportSpecification instead.SearchError.LAYERS_NOT_ENABLED error code as it is no longer applicable. Use LayerConfiguration.Feature.OFFLINE_SEARCH_GLOBAL instead to enable the new offline search algorithm (beta).IndoorSectionDetails describing details of sections related to indoor routing. Added class IndoorManeuverActions containing supported types of actions for indoor routing. Added class IndoorRoutePlace representing a place for indoor routing.IndoorFeatures (previously in venue routing). Use IndoorLevelChangeFeatures instead. Removed IndoorLevelChangeAction. Use IndoorLevelChangeData instead. Removed IndoorManeuver (from venue routing). Use IndoorManeuver (in routing) instead. Removed IndoorSpaceAction. Use IndoorSpaceData instead.PlaceCategory.SIGHTS_LANDMARK_ATTACTION. Use PlaceCategory.SIGHTS_LANDMARK_ATTRACTION instead.MapPolyline.SolidMultiColorRepresentation API allowing users to create multi-colored polylines. DataAttributesAccessor and DataAttributeValue now support values of Color type. Note that this is a beta release of this feature.RoutingEngine.refreshRoute(...) method with a RefreshRouteParameters parameter to make parameters consistent.RoutingEngine.refreshRoute(...) with explicit waypoint, last section and distance arguments. Please use RoutingEngine.refreshRoute(...) method with a RefreshRouteParameters parameter.VehicleSpecification.emptyWeightInKilograms to calculate routes based on the vehicle's empty weight. If no route can be found, VehicleRestrictionMaxWeightType.EMPTY is set, and VehicleRestrictionMaxWeight.valueInKilograms contains the maximum allowed empty weight.MapCamera.setFarPlaneConfiguration() and MapCamera.FarPlaneConfiguration to override the far-plane distance per zoom level, with linear interpolation between zoom levels.MapContext.setMemoryManagementOptions(MemoryManagementOptions, onSetVideoMemoryLimit) and the callback MapContext.onSetVideoMemoryLimit(int). Use MapContext.setMemoryManagementOptions(MemoryManagementOptions, onSetMemoryManagementOptions) and the callback MapContext.onSetMemoryManagementOptions(MemoryManagementResult) instead. Added the new enum MapContext.MemoryManagementResultCode and the new struct MapContext.MemoryManagementResult. Note that this feature is released as beta and may contain bugs or unexpected behavior. Related APIs may change in future releases without a deprecation process.ChargingConnectorType.SAE_J3400 to support the SAE J3400 connector type for the North American Charging Standard (NACS).ChargingConnectorType.TESLA. Use ChargingConnectorType.SAE_J3400 instead.MapScene.addMapPolygons(...), MapScene.removeMapPolygons(...), and MapScene.removeAllMapPolygons(...) to add and remove collections of map polygons.MapScene.addMapMarkers3d(...), MapScene.removeMapMarkers3d(...), and MapScene.removeAllMapMarkers3d(...) to add and remove collections of 3D map markers.MapScene.removeAllMapPolylines(...) to remove all map polylines from the scene.BusSpecifications, CarSpecifications, and TruckSpecifications. Use TransportSpecification instead.MapScene.removeAllMapMarkers(...) to remove all map markers from the scene.TransportProfile class. Use TransportSpecification instead.VehicleSpecification.kingpinToRearAxleDistanceInCentimeters to calculate routes that support this kingpin to rear axle distance. In case no route can be found the ViolatedRestriction.details.maxKingpinToRearAxleDistanceInCentimeters contains the max distance.BicycleOptions class. Use the RoutingOptions class instead. Deprecated BusOptions class. Use the RoutingOptions class instead. Deprecated CarOptions class. Use the RoutingOptions class instead. Deprecated EVCarOptions class. Use the RoutingOptions class instead. Deprecated EVTruckOptions class. Use the RoutingOptions class instead. Deprecated PedestrianOptions class. Use the RoutingOptions class instead. Deprecated PrivateBusOptions class. Use the RoutingOptions class instead. Deprecated ScooterOptions class. Use the RoutingOptions class instead. Deprecated TaxiOptions class. Use the RoutingOptions class instead. Deprecated TruckOptions class. Use the RoutingOptions class instead.IsolineOptions constructor with CarOptions parameter. Use the IsolineOptions constructor with RoutingOptions parameter instead. Deprecated IsolineOptions constructor with TruckOptions parameter. Use the IsolineOptions constructor with RoutingOptions parameter instead. Deprecated IsolineOptions constructor with EVCarOptions parameter. Use the IsolineOptions constructor with RoutingOptions parameter instead. Deprecated IsolineOptions constructor with EVTruckOptions parameter. Use the IsolineOptions constructor with RoutingOptions parameter instead. Deprecated IsolineOptions.carOptions. Use the IsolineOptions.routingOptions instead. Deprecated IsolineOptions.truckOptions. Use the IsolineOptions.routingOptions instead. Deprecated IsolineOptions.evCarOptions. Use the IsolineOptions.routingOptions instead. Deprecated IsolineOptions.evTruckOptions. Use the IsolineOptions.routingOptions instead.MapFeatures.ROAD_EXIT_LABELS default enabled mode changed from ROAD_EXIT_LABELS_NUMBERS_ONLY to MapFeatureModes.ROAD_EXIT_LABELS_ALL mode for MapScheme.LOGISTICS_DAY, MapScheme.LOGISTICS_NIGHT, MapScheme.LOGISTICS_HYBRID_DAY, MapScheme.LOGISTICS_HYBRID_NIGHT map schemes. For other map schemes, ROAD_EXIT_LABELS_NUMBERS_ONLY will stay as the default feature mode. An overview of the new default map features and map feature modes per map scheme can be seen in the HERE Style Editor documentation.EVChargingLocation.supportPhoneNumber for the phone number that EV drivers should call when they need assistance at the charge location.TruckType class. Use the TruckCategory class instead. Deprecated VehicleSpecification.truckType. Use the VehicleSpecification.truckCategory instead.EVChargingLocation.timeZone for the time zone of the charging location and EVChargingConnector.tariffIndexes for the tariff indexes of the charging location.MapContext, MapContext.getMemoryManagementOptions(), MapContext.setMemoryManagementOptions(MemoryManagementOptions,SetVideoMemoryLimitCallback), and lambda MapContext.SetVideoMemoryLimitCallback(int). Added struct MapContext.MemoryManagementOptions. Added the enum MapContext.MemoryManagementStrategy.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.
LockingProcess.getLockingProcessId(SDKOptions). Use LockingProcess.getLlockingProcessId(AndroidContext, SDKOptions) instead. Deprecated method LockingProcess.destroyLockingProcess(SDKOptions, Long). Use LockingProcess.destroyLockingProcess(AndroidContext, SDKOptions, Long) instead.route.calculationOptions(...). Use RoutingOptions instead. Deprecated RefreshRouteOptions and RefreshRouteOptionsData use the RoutingOptions class from the route object instead.RoutingOptions, RoutingInterface.calculateRoute(...), Route.routingOptions and RoutingEngine.refreshRoute(...) with RoutingOptions parameter types, RoutingEngine.importRoute(...) with RoutingOptions parameter types. The APIs are considered to be stable.TollFare interface for online-routing.VehicleSpecification.CarBuilder.withTruckCategory(), VehicleSpecification.CarBuilder.withIsTruckLight(), VehicleSpecification.CarBuilder.withWeightPerAxleGroup(), VehicleSpecification.CarBuilder.withHazardousMaterials(). Removed VehicleSpecification.TaxiBuilder.withTruckCategory(), VehicleSpecification.TaxiBuilder.withIsTruckLight(), VehicleSpecification.TaxiBuilder.withWeightPerAxleGroup(), VehicleSpecification.TaxiBuilder.withHazardousMaterials(). Removed VehicleSpecification.BusBuilder.withTruckCategory(), VehicleSpecification.BusBuilder.withIsTruckLight(), VehicleSpecification.BusBuilder.withHazardousMaterials(). Removed VehicleSpecification.PrivateBusBuilder.withTruckCategory(), VehicleSpecification.PrivateBusBuilder.withIsTruckLight(), VehicleSpecification.PrivateBusBuilder.withHazardousMaterials(). The class VehicleSpecification is marked as beta, so no deprecation process is necessary.fromDefaultParameterConfiguration() static function to RoutingOptions, which constructs a RoutingOptions object with the transport specifications taken from SDKNativeEngine.parameterConfig.transportSpecification. Note: This is a beta release of this feature. There could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.RoutingEngine.importRoute(...) methods that accept profile-specific option types (CarOptions, PedestrianOptions, BicycleOptions, ScooterOptions, TruckOptions, TaxiOptions, BusOptions, PrivateBusOptions, EVCarOptions, EVTruckOptions, RefreshRouteOptions). Use the RoutingEngine.importRoute(...) methods with RoutingOptions instead. Note: The suggested methods are still marked as beta, but the APIs are already considered stable, and we plan to move them out of beta in the next release.RoutingInterface.calculateRoute(...) methods that accept profile-specific option types (CarOptions, PedestrianOptions, TruckOptions, ScooterOptions, BicycleOptions, TaxiOptions, EVCarOptions, EVTruckOptions, BusOptions, PrivateBusOptions). Use the RoutingInterface.calculateRoute(...) method with RoutingOptions instead. Note: The suggested methods are still marked as beta, but the APIs are already considered stable, and we plan to move them out of beta in the next release.RoutingEngine.refreshRoute(...) methods with RefreshRouteOptions as parameter. Use the RoutingEngine.refreshRoute(...) methods with RoutingOptions parameter instead. Note: The suggested methods are still marked as beta, but the APIs are already considered stable, and we plan to move them out of beta in the next release.MapSceneLoadOptions: Represents the complete configuration for loading a map scene, combining the scene source (MapScheme or configurationFile) and optional settings like enabledFeatures, disabledFeatures, watermarkStyle, and overridingMapStyle. Added MapSceneLoadOptionsBuilder: Builder class for creating MapSceneLoadOptions instances. The builder enforces that exactly one mapScheme or configurationFile is set. Added MapScene.loadScene(MapSceneLoadOptions, MapScene.LoadSceneCallback): Asynchronously loads a map scene using MapSceneLoadOptions. This unified API supports loading from either a map scheme or configuration file, with optional feature and watermark configuration. This update introduces a new unified API to load scenes with a builder pattern that provides a cleaner, more type-safe way to load map scenes. The builder enforces mutual exclusivity between mapScheme and configurationFile at build time. Note: This is a beta release of this feature. There could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.MapView.setFixedSize(int width, int height, double factor) method for reducing render target size by a factor. Note: This feature is in beta state and thus there can be bugs and unexpected behavior. Related APIs may change for new releases without a deprecation process.SearchOptions.distributedResults in SearchEngine, that indicates if search along the route should produce well-distributed results.PedestrianSpecification, ScooterSpecification, TaxiSpecification classes, containing attributes for pedestrian, scooter and taxi profiles. Added TransportSpecification class which contains all attributes for a transport mode (vehicle, pedestrian, scooter and taxi).VehicleSpecification.allowDriveThroughTaxiRoads. The property was moved to TaxiSpecification.allowDriveThroughTaxiRoads. Removed VehicleSpecification.allowScooterOnHighway. The property was moved to ScooterSpecification.allowScooterOnHighway.RoutingOptions.transportMode. It is replaced with RoutingOptions.transportSpecification.transportMode. Removed RoutingOptions.occupantsNumber. It is replaced with RoutingOptions.transportSpecification.vehicleSpecification.occupancy. Removed RoutingOptions.vehicle. It is replaced with RoutingOptions.transportSpecification.vehicleSpecification. Removed TransportedCargo and RoutingOptions.transportedCargo. All the fields of TransportedCargo were moved to VehicleSpecification. Removed RoutingOptions.walkSpeedInMetersPerSecond. It is replaced with RoutingOptions.transportSpecification.pedestrianSpecification.walkingSpeedInMetersPerSecond.RoutingOptions.transportSpecification which will include the transport mode and the vehicle, pedestrian, scooter and taxi specification.MapFeatures.TRAFFIC_LIGHTS and MapFeatureModes.TRAFFIC_LIGHTS_ALL to show traffic lights.RoutingOptions.commonRouteOptions. All its members were moved to RoutingOptions. The class RoutingOptions is marked as beta, so no deprecation process is necessary. Removed CommonRouteOptions class. All its members were moved to the RoutingOptions class. The class CommonRouteOptions was marked as beta, so no deprecation process is necessary.RoutingOptions.routeOptions which specifies the common route calculation options. This attribute was moved from CommonRouteOptions class, which was removed. Added RoutingOptions.textOptions which configures the textual content returned from the route calculation, such as localization, format, and unit system. This attribute was moved from CommonRouteOptions class, which was removed. Added RoutingOptions.avoidanceOptions which specifies the restrictions for route calculations. This attribute was moved from CommonRouteOptions class, which was removed. Added RoutingOptions.allowOptions which specifies the options explicitly allowed by user for route calculations. This attribute was moved from CommonRouteOptions class, which was removed. Added RoutingOptions.tollOptions which specifies how the tolls should be calculated, such as transponders, vehicle category, and emission type. This attribute was moved from CommonRouteOptions class, which was removed. Added RoutingOptions.maxSpeedOnSegments which specifies segments with restriction on maximum base speed expressed in meters per second. This attribute was moved from CommonRouteOptions class, which was removed.MapContentSettings.configureVehicleRestrictionFilter(TransportSpecification) method to filter restrictions shown on the map and to easily match the filtering to routing parameters.MapContentSettings.configureVehicleRestrictionFilter(TransportMode, TruckSpecifications, List<HazardousMaterial>, TunnelCategory) method, use MapContentSettings.configureVehicleRestrictionFilter(TransportSpecification) instead.SDKOptions.customOptions member to set the maximum thread count for selected HERE SDK components. Note: This is a beta release of this feature. There could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.ParameterSpecification.Pedestrian class. The class was replaced by PedestrianSpecification. The class ParameterSpecification is marked as beta, so no deprecation process is necessary. Removed ParameterSpecification.pedestrian. The property was replaced with to ParameterSpecification.transportSpecification.pedestrianSpecification. The class ParameterSpecification is marked as beta, so no deprecation process is necessary. Removed ParameterSpecification.vehicleProfile. The property was replaced with to ParameterSpecification.transportSpecification.vehicleSpecification. The class ParameterSpecification is marked as beta, so no deprecation process is necessary.ParameterConfiguration.transportSpecification, which contains the default attribute values for attributes for vehicle, pedestrian, scooter and taxi specification.serialize() and deserialize() in Route to allow storing and restoring of Route objects.MapView no longer stops responding when the system detaches the MapView from its render target during screen changes, for example, in a dual‑screen setup.diagnosticsOutputPath field in NetworkSettings class to allow setting a file path that will be used to add verbose information in case network related issues occurred during use of the HERE SDK. Note: This is a beta release of this feature. There could be a few bugs and unexpected behaviors. Related APIs may change for new releases without a deprecation process.VehicleProfile.truckType with VehicleProfile.truckCategory. Replaced VehicleSpecification.truckType with VehicleSpecification.truckCategory. Note that this is still a beta API.RoadType type. Use TimingProfile instead. Removed the previously deprecated Maneuver.getRoadType() and Maneuver.getNextRoadType(). Use the Route.sections[Maneuver.sectionIndex].spans[Maneuver.spanIndex].streetAttributes object to determine the type of road. StreetAttributes.BUILT_UP_AREA indicates an urban road; StreetAttributes.MOTORWAY, StreetAttributes.CONTROLLED_ACCESS_HIGHWAY, or StreetAttributes.RAMP indicate a highway; all others indicate a rural road type.EVMobilityServiceProviderPreferences.excluded. Use other preference levels of EVMobilityServiceProviderPreferences instead.MapMarker as an icon without text if the text collides with other markers. See MapMarker.isTextOptional()/MapMarker.setTextOptional() for details.ALA, ATF, BVT, GGY, HMD, JEY, UMI.ViolatedRestriction.forbiddenTruckCategory, which will replace the deprecated ViolatedRestriction.forbiddenTruckType.forbiddenTruckType from ViolatedRestriction. Use ViolatedRestriction.forbiddenTruckCategory instead.MapView can stop responding when the system detaches the MapView from its render target during screen changes, for example, in a dual‑screen setup.MapCameraUpdateFactory.lookAt(GeoCoordinatesUpdate, GeoOrientationUpdate, MapMeasure), MapCameraUpdateFactory.lookAt(GeoCoordinatesUpdate,MapMeasure), MapCameraUpdateFactory.lookToMatch(GeoCoordinates, Point2D, GeoOrientationUpdate, MapMeasure) and MapCameraUpdateFactory.zoomTo(double) as well as animations created via MapCameraAnimationFactory.flyTo(GeoCoordinatesUpdate, MapMeasure, double, Duration). Such animations did not interpolate correctly MapMeasure values for MapMeasure.Kind.ZOOM_LEVEL and MapMeasure.Kind.SCALE but fell back to MapMeasure.Kind.DISTANCE_IN_METERS.MapView.setShadowQuality(@Nullable ShadowQuality) and MapView.getShadowQuality() to use non-nullable shadow quality values. Updated MapSurface.setShadowQuality(@Nullable ShadowQuality) and MapSurface.getShadowQuality() to use non-nullable shadow quality values. The default shadow quality is now set to ShadowQuality.MEDIUM. Note that this is a beta release of this feature.MapCameraKeyframeTrack.lookAtTarget: altitudes are now ignored, aligning the behavior with the documentation of GeoCoordinatesKeyframe.value.lookAtDistance(MapMeasure.Kind, List<ScalarKeyframe>, Easing, KeyframeInterpolationMode) method to MapCameraKeyframeTrack to support retrieving Kind measures such as distance, zoom, and scale level.MapCameraKeyframeTrack.lookAtDistance(List<ScalarKeyframe>, Easing, KeyframeInterpolationMode) method. Use MapCameraKeyframeTrack.lookAtDistance(MapMeasure.Kind, List<ScalarKeyframe>, Easing, KeyframeInterpolationMode) instead.setMarker3dModel(MapMarker3DModel model, double scale, LocationIndicator.MarkerType type, RenderSize.Unit renderSizeUnit) to LocationIndicator to specify how the vertex coordinates of 3D model are interpreted, either in world or screen coordinate space.LocationIndicator.setMarker3dModel(MapMarker3DModel model, double scale, LocationIndicator.MarkerType type) method. Use the new LocationIndicator.setMarker3dModel(MapMarker3DModel model, double scale, LocationIndicator.MarkerType type, RenderSize.Unit renderSizeUnit) overloaded method instead.RoadFeature.SEASONAL_CLOSURE as an avoidance option in isoline calculations to improve route accuracy by excluding roads that are seasonally closed.MapSurface.attachSurface(Context context, Surface surface, int width, int height) and MapSurface.attachSurface(Context context, Surface surface, int width, int height, @NonNull RenderListener renderListener), which throw an exception if the provided surface is unusable. In such cases, the MapSurface remains unmodified.MapSurface.setSurface(Context context, Surface surface, int width, int height), use MapSurface.attachSurface(Context context, Surface surface, int width, int height) instead. Similarly, deprecated MapSurface.setSurface(Context context, Surface surface, int width, int height, @NonNull RenderListener renderListener), use MapSurface.attachSurface(Context context, Surface surface, int width, int height, @NonNull RenderListener renderListener) instead.MaterialReflectivity class, and LocationIndicator.getMaterialReflectivity and LocationIndicator.setMaterialReflectivity functions to enable the Location Indicator to interact with scene lighting. The Location Indicator casts and receives shadows when the MapFeatures.shadows feature is enabled. Note: This feature is in beta state and may exhibit bugs or unexpected behavior. Related APIs are subject to change in future releases without a deprecation process.WebImage.date and WebImage.publicationDate. The date information is no longer provided. Removed WebImage constructors that accept Date, use the constructor that accepts only WebSource instead.SearchError.INVALID_PARAMETER enum value. More descriptive error values are now provided, such as SearchError.QUERY_EMPTY and SearchError.INVALID_AREA.ChargingConnectorType.GBT_DC, representing the Guobiao GB/T 20234.3 DC connector, to specify charging connector types in EV routing calculations.GeoPolyline.coordinatesAtOffsetInMeters() to convert offsets along the polyline to coordinates.GeoCoordinates.interpolate() to interpolate between two coordinates.maxGrossWeightInKilograms. Use maxWeight instead.getEvDetails() from Route. Use getConsumptionInKilowattHours() instead.getEvDetails() from Section. Use getConsumptionInKilowattHours() instead.BusSpecifications.lastCharacterOfLicensePlate. Use BusOptions.lastCharacterOfLicensePlate instead.LocationEngineBase.confirmHEREPrivacyNoticeInclusion() or LocationEngineBase.confirmHEREPrivacyNoticeException() instead.MapFeatures.TRAFFIC_FLOW on devices with a single core, regardless of the number of available cores. Note that this issue started to appear in HERE SDK 4.22.5.0.OfflineRoutingEngine would ignore highway sections when using VehicleSpecification in offline mode. This behavior occurred only when VehicleSpecification was not null. Highway sections are now considered in the same way as with the online RoutingEngine.ElectricVehicleOptions.batterySpecifications was changed to null. The field is now nullable. Note that this is a beta release of this feature.RoutingOptions to IsolineOptions. RoutingOptions can now be used with the IsolineRoutingEngine..tar.gz) are exported. These archives include POI categories and the JSON style files. When loading a custom style using MapScene.loadScene(...), the HERE SDK supports specifying a path to a JSON file, as before, but it also allows to set a configurationFile pointing to the zipped archive.TaskHandle to correctly return FINISHED when route calculation completes and CANCELLED when it’s cancelled for routing, isoline, and traffic.positioning and serviceImprovement subcategories are correctly reported separately again.MapFeatures.TRAFFIC_FLOW may cause unexpected high CPU usage on devices with a single core, regardless of the number of available cores.TruckSpecifications.currentWeightInKilograms field to indicate the current weight of the vehicle.AvoidanceOptions.zoneCategories, AvoidanceOptions.zoneIds and AvoidanceOptions.exceptZoneIds options for isoline calculation.ViolatedRestriction.Details.maxNumberOfTires, and VehicleSpecification.tiresCount to store maximum permitted number of tires. Note that this feature is also supported by the OfflineRoutingEngine, if available for your edition.TranslucentMapLayerGroup class and MapLayerPriorityBuilder.inGroup() function to support placing custom line layers into a translucent layer group. Custom line layers within a translucent group are rendered in an offscreen translucent pass, preventing self-overlapping translucent geometry from being alpha blended. Note that this is a beta release of this feature.LayerConfiguration.Feature.TRAFFIC. Please use LayerConfiguration.Feature.RDS_TRAFFIC instead.SDKOptions.accessKeyId and SDKOptions.accessKeySecret. Please use SDKOptions.authenticationMode instead.MapLayerBuilder API. MapPolyline.DashImageRepresentation map measure support has been updated to a new range of [3–19], replacing the previous range of [1–20].PlaceCategory.SIGHTS_LANDMARK_ATTRACTION to use instead of PlaceCategory.SIGHTS_LANDMARK_ATTACTION that contains a typo. Note that this is also supported for the OfflineSearchEngine (if available for your license).PlaceCategory.SIGHTS_LANDMARK_ATTACTION that contains a typo. Please use PlaceCategory.SIGHTS_LANDMARK_ATTRACTION instead.EVChargingPoolDetails.paymentIsRequired, EVChargingPoolDetails.subscriptionIsRequired, and EVChargingStation constructor with 12 parameters. Please use the default constructor instead.SearchEngine and OfflineSearchEngine: search(TextQuery, SearchOptions, SearchCallback) – please use searchByText instead; search(AddressQuery, SearchOptions, SearchCallback) – please use searchByAddress instead; search(CategoryQuery, SearchOptions, SearchCallback) – please use searchByCategory instead; search(GeoCoordinates, SearchOptions, SearchCallback) – please use searchByCoordinates instead; searchPickedPlace(PickedPlace, LanguageCode, PlaceIdSearchCallback) – please use searchByPickedPlace instead; search(PlaceIdQuery, LanguageCode, PlaceIdSearchCallback) – please use searchByPlaceId instead; suggest(TextQuery, SearchOptions, SuggestCallback) – please use suggestByText instead.EVMobilityServiceProviderPreferences.excluded. Please use other pereferences levels of EVMobilityServiceProviderPreferences.EVChargingPool.access that represents the accessibility level of the charging pool. Also available offline for Navigate users.sdk.routing.Toll.tollSystem. Please use sdk.routing.Toll.tollSystems instead.MapMeasure.Kind.DISTANCE. Please use MapMeasure.Kind.DISTANCE_IN_METERS instead.BUILDING_3D_MODELS to ADVANCED_BUILDINGS in the MapFeatures class. Renamed BUILDING_3D_MODELS_GRAYSCALE to ADVANCED_BUILDINGS_GRAYSCALE, BUILDING_3D_MODELS_TEXTURED to ADVANCED_BUILDINGS_TEXTURED, and BUILDING_3D_MODELS_TEXTURELESS to ADVANCED_BUILDINGS_TEXTURELESS in the MapFeatureModes class.returnToRoute() that may happen when using AvoidanceOptions options to avoid corridors, bounding boxes or polygons.EVAccessRestrictionReason that represents the restriction reason of an EVChargingPool. Added EVChargingPool.accessRestrictionReasons that contains the list of reasons for restriction, accessible by offline search when access is EVAccessType.RESTRICTED_ACCESS.com.here.sdk.routing.RouteOptions.occupantsNumber field. Please use occupantsNumber in corresponding transport mode options instead.com.here.sdk.routing.Waypoint.isChargingStation field. Please use chargingStop field instead.ALA, ATF, BVT, GGY, HMD, JEY, UMI. Please use FIN, FRA, NOR, GBR, AUS, GBR, and USA respectively instead.MapPolyline.setRepresentaion(). The API is now considered to be stable.dispose() method to RoutingInterface and TransitRoutingEngine to allow proper resources cleanup, including canceling pending requests and shutting down the background worker thread, helping to avoid potential (though unlikely) crashes due to deadlocks.Waypoint.currentWeightChangeInKilograms for changing the current weight of the vehicle at waypoints. For example, this can be used when the vehicle takes additional cargo or unloads its cargo along the route. Note that this is also supported offline for the users of Navigate Edition.RoutingEngine and OfflineRoutingEngine to accept the new RoutingOptions class, which consolidates several existing option classes - including CarOptions, TaxiOptions, TruckOptions, and RefreshRouteOptions - into a unified configuration model. While the existing RouteOptions class can still be used as before, RoutingOptions provides the same capabilities in a more generic structure suitable for all supported transport modes. When creating a new route, make sure to specify RoutingOptions.transportMode. The new class also introduces extended routing configurations via the new classes CommonRouteOptions, VehicleSpecification, ElectricVehicleOptions with the new EmpiricalConsumptionModel and PhysicalConsumptionModel, and TransportedCargo. For example, it is now possible to specify whether a car is carrying cargo. Previously, this was only available for trucks. The existing RouteOptions can now be set under CommonRouteOptions. Note that this is a beta release of the new feature. Also, the OfflineRoutingEngine is only available in the Navigate Edition.EVChargingPool, Details.evChargingPool, EVChargingStation, EMobilityServiceProvider, EVChargingPool.eMobilityServiceProviders, EVChargingPool.cpoId, and EVChargingPool.evseInfo are now available to all customers and work with your standard credentials. Previously, these APIs were available only to our closed alpha group. Note that these APIs are also supported for the OfflineRoutingEngine, if available for your edition.horizontalAccuracyInMeters field of MapMatchedLocation. The API is now considered to be stable.MapMarker. Added constructor to MapMarker.TextStyle with font name parameter and a new getFontName() method.BatterySpecifications.maxPowerAtLowVoltageInKilowatts to allow vehicles which support 800V to use lower voltage charging stations.PassThroughFeature enum with ONLINE_SEARCH value. Enabling of this passthrough feature allows usage of online search in offline mode.MapPolyline with adjustable length progress. Transition between MapPolyline.lineColor and MapPolyline.progressColor now renders gradually. The length of that transition can be specified and queried with MapPolyline.setProgressGradientLength and MapPolyline.getProgressGradientLength specified in zoom-level dependent pixels.MapLayer.setPriority() to correctly remove any previously applied priorities before applying new ones. Fixed internal behaviour of MapLayerPriorityBuilder and the resulting MapLayerPriority when a layer (category) is defined more than once with MapLayerPriorityBuilder.Previously, when chaining priorities, only in the case of two consecutive priority definitions for the same layer (category), the first one was overriden. Now, any previously defined priority in the chain for the same layer (category) is overriden.
Place.deserialize to handle missing enum PlaceType. If the PlaceType is missing in the serialized data, it is now set to PlaceType.UNKNOWN in the deserialized object. These features are also supported for the OfflineSearchEngine, if available for your edition.SDKOptions.lowMemoryMode to reduce the HERE SDK's memory footprint. When set to true this configures the internal memory caches to consume less memory. Note that enabling the low memory mode may also reduce the performance of the HERE SDK.SDKNativeEngine.purgeMemoryCaches(...) method to clear the HERE SDK's in-memory caches and reduce its memory footprint. Note that calling this method may temporarily impact performance. Currently, only PurgeMemoryStrategy.FULL is supported, which clears all cached content without preserving any data.Updated 3 days ago