Release Notes

We are pleased to announce the availability of version 4.12.3.0 (Navigate Edition) of the new HERE SDK for Android.

This is a stable release. We are constantly working on new features, stabilizing APIs, improving our KPIs, and evaluating your feedback.

Changes

This section documents major changes to this release that may require you to update your applications.

Version 4.12.3.0

New Features

  • Introduced a new MapMarkerCluster.CounterStyle that indicates the number of contained MapMarker items in a cluster. The style allows various options to customize how this will be rendered on top of a cluster image. A new MapMarkerCluster() constructer has been added to set the style. In addition, an Anchor2D can be used to position the counter and the cluster image. An usage example can be found in the MapItems example app. Note that this is a beta release of this feature.
  • Added the onResume()/onPause() lifecycle methods to the MapSurface class.
  • OfflineSearchEngine: The newly introduced TruckAmenities feature is enabled by default for all offline search requests. This is a beta release of this feature.
  • Added CategoryQuery.includeChains and CategoryQuery.excludeChains that support search filtering by chains.
  • Labels for indoor maps can now be modified with venueService.setLabelTextPreference() that defines what content is shown for text labels on an indoor map.
  • The properties for EVChargingPoolDetails and EVChargingStation have been extended. Such information is available when using the online SearchEngine and the OfflineSearchEngine (for users of the Navigate Edition).
  • SearchEngine: Added TruckAmenities to the Details of a Place to inform on amenities such as truck wash or the number of available showers. Currently, this is supported only for online search. For now, this can be enabled by calling searchEngine.setCustomOption() with "show" as name and "truck" as value. This is a beta release of this feature.
  • This version of the HERE SDK is delivered with map data version 49.
  • Traffic broadcast: Added TMCServiceInterface.onTMCEntered() to resolve blocking calls when TrafficBroadcast.onTMCDataUpdated() is called.

API Changes - Breaking

  • Search for EV charging stations: Moved and renamed Place.Details.EVChargingStationAttributes to Place.Details.EVChargingPool.EVChargingPoolDetails.
  • MapFeatureModes.TRAFFIC_FLOW_REGION_SPECIFIC is only rendered for credentials that enable detailed map data for Japan. By default, use MapFeatureModes.TRAFFIC_FLOW_WITH_FREE_FLOW instead.
  • Removed the previously deprecated MilestoneReachedListener. Use instead the MilestoneStatusListener.

API Changes - Deprecations

  • Deprecated TextQuery.includeChains and TextQuery.excludeChains. Please use CategoryQuery.includeChains and CategoryQuery.excludeChains instead.

Resolved Issues

  • OfflineRoutingEngine: Fixed missing walk sections for offline bicycle routing.
  • Navigation: Fixed an issue with Route data that was not considered correctly by some listeners for events such as SafetyCameraWarning or TruckRestrictionWarning.
  • Fixed JunctionViewLaneAssistance events that sometime were triggered too early when approaching a complex junction.
  • It is now possible to update the map cache to a newer map version - independently of offline maps. By calling mapUpdater.performMapUpdate() the map cache will be updated to a newer version (if available) - even if never any Region was installed. If offline maps are available, then they will be updated together with the map cache, like before. If offline maps are installed later after the cache has been updated, the same map version will be used. It is not possible to use different versions for the map cache and offline maps. Note that with HERE SDK 4.12.2.0 or earlier, it was not possible to update the map cache alone when no offline maps data was installed beforehand.

Known Issues

  • Sometimes, a crash may happen for turn-by-turn navigation, when a segment with a ferry set as TransportMode is ahead.
  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • MapDownloader: The sizeOnDiskInBytes property of Region and InstalledRegion slightly differs.
  • By default, MapScene.Layers.TRAFFIC_FLOW is no longer visible on the map. This is a license issue which affects all Navigate and Explore Edition users. Please contact us and ask for a HERE SDK license update to get traffic flow data. Your credentials will then be enabled to get access. Explore users can go directly to developer.here.com (instead of the HERE platform self-serve portal) as only the self-serve portal is affected.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Turn-by-turn navigation does not start until an offline maps update or download is happening in parallel.
  • MapViewPin instances do not disappear after tilting and panning the map far away: The pins still show up above the horizon.
  • MapDownloader: It is not possible to delete a Region when another download was interrupted. Workaround: The app needs to be restarted.
  • When a feature configuration is applied, then the MapDownloader does not accurately show the updated size of a Region. This does not affect the actual size on disk.
  • Indoor maps: Due to a HERE platform issue with credentials handling, indoor maps cannot be rendered together with the default map schemes. For now, only the indoor map can be seen, while the background with the map view stays gray. This issue only appears when you attempt to use indoor maps.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • The newly introduced TruckAmenities feature is not highlighted as a beta API in the API Reference.
  • An unexpected large number of mountain peak labels is present on the map of USA, which reduces map readability and to a smaller extent performance.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Changes from Previous Releases

This section documents major changes from past releases. We encourage you to use the latest release, 4.12.3.0.

Version 4.12.2.0

New Features

  • Search Details now contain EVChargingStationAttributes - if applicable for a Place.
  • Added a TrafficDataProvider interface that allows to integrate radio station signals providing traffic broadcasts. A TrafficBroadcast is expecting the RDS-TMC format and it can be used when there is no internet connection, so that the OfflineRoutingEngine can utilize traffic data coming over the radio channel. The activate() method needs to be called to receive traffic data events. This class continuously reacts to new locations provided from a location source and acts as a LocationListener. The location must be updated regardless of calling activate(). In order to adopt the interface special hardware is required. Talk to your HERE representative for more details. This is released as a beta feature.

API Changes - Breaking

  • Added support for RoutePrefetcher to VisualNavigator. Previously, the feature was only available for the Navigator. Replaced Navigator with NavigatorInterface in RoutePrefetcher.
  • Removed connectorTypeId from the search type EVChargingStation. The API is still in beta state.

Resolved Issues

  • Fixed: Using JunctionViewLaneAssistance can slow down the time until guidance starts when no suitable map data is available in the cache.
  • OfflineSearchEngine: Corrected the allowed range of SearchOptions.maxItems to [1, 100]. When not set, results will be limited to 20, by default (previously it was 5). This applies also to auto suggestion results.
  • SearchEngine: Corrected the allowed range of SearchOptions.maxItems to [1, 100]. When not set, results will be limited to 20, by default. This applies also to auto suggestion results.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • MapDownloader: The sizeOnDiskInBytes property of Region and InstalledRegion slightly differs.
  • By default, MapScene.Layers.TRAFFIC_FLOW is no longer visible on the map. This is a license issue which affects all Navigate and Explore Edition users. Please contact us and ask for a HERE SDK license update to get traffic flow data. Your credentials will then be enabled to get access. Explore users can go directly to developer.here.com (instead of the HERE platform self-serve portal) as only the self-serve portal is affected.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances do not disappear after tilting and panning the map far away: The pins still show up above the horizon.
  • MapDownloader: It is not possible to delete a Region when another download was interrupted. Workaround: The app needs to be restarted.
  • When a feature configuration is applied, then the MapDownloader does not accurately show the updated size of a Region. This does not affect the actual size on disk.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • An unexpected large number of mountain peak labels is present on the map of USA, which reduces map readability and to a smaller extent performance.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.12.1.0

New Features

  • EV routing: Added PostAction.chargingDetails to get ChargingActionDetails, which supports additional parameters for EV charging such as arrivalChargeInKilowattHours and targetChargeInKilowattHours. The latter indicates the kWh level to which a vehicle's battery should be charged at a stop.
  • Added support for our new web-based unified HERE Style Editor that is available on the HERE platform. With the HERE Style Editor you can create highly customizable map styles. Note that custom map styles that have been made with the legacy desktop editor need to be migrated to the new HERE Style Editor format. Get in touch with your HERE representative to convert your existing styles. The HERE Style Editor is available via self-serve on the HERE platform.
  • Replaced MapScene.Layers with a more flexible solution: All map layers can now be enabled or disabled as MapFeatures specifying one ore more MapFeatureModes. Pass a map of key / value pairs to the new MapScene method void enableFeatures(@NonNull Map<String, String> features). Hide a layer via void disableFeatures(@NonNull final List<String> features). Query supported map features via @NonNull Map<String, List<String>> getSupportedFeatures() and check currently active map features with @NonNull Map<String, String> getActiveFeatures(). Note that this is a beta release of this feature.
  • Guidance: Added EXIT_ROUNDABOUT as first maneuver when starting in a roundabout.
  • This version of the HERE SDK is delivered with map data version 47.
  • Added a simplified way to initialize the HERE SDK manually. Using the default automatic initialization is still possible, but has been deprecated. Added SDKNativeEngine.makeSharedInstance() to safely initialize a shared instance of the SDKNativeEngine. Calling this method also gracefully destroys any previous instance (if any). In order to deactivate auto-init, for now it is still required to disable the deprecated InitProvider via AndroidManifest. For this it is also required to remove credentials from manifest and to set them instead via SDKOptions. As a result, the HERE SDK SDK will not be created automatically at startup. In addition to InitProvider, also the OptionsReader has been deprecated. Note that now also an android.content.Context needs to be provided. If, in rare cases, there's a need for multiple instances of the SDKNativeEngine, a new constructor has been added with SDKNativeEngine(android.content.Context, SDKOptions). The existing constructor SDKNativeEngine(SDKOptions) that does not require a context has been deprecated.
  • Search: Added TextQuery.includeChains and TextQuery.excludeChains that support search filtering by adding a list of PlaceChain items. More information on chain IDs that correlate to specific places such as shops or stores can be found here.
  • Added map layer options for truck related vehicle restrictions. Added class MapContentSettings with the following methods: public static void filterVehicleRestrictions(@NonNull final TruckSpecifications truckSpecifications, @Nullable final List<HazardousMaterial> hazardousMaterials, @Nullable final TunnelCategory tunnelCategory) public static void resetVehicleRestrictionFilter() which controls filtering of displayed vehicle restrictions on the map when the MapScene.Layers.VEHICLE_RESTRICTIONS layer is visible. Note that this is a beta release of this feature.

API Changes - Breaking

  • Removed the previously deprecated DynamicRoutingEngineListener. User instead DynamicRoutingListener.

API Changes - Deprecations

  • In rare cases an application using the HERE SDK may crash due to a Storage.LevelDB error or the initialization of the HERE SDK may fail with a FAILED_TO_LOCK_CACHE_FOLDER error. Deprecated the related 'void InitProvider.destroyLockingProcess(SDKOptions options, long maxTimeoutInMilliseconds)' and SDKNativeEngine.getLockingProcessId(SDKOptions options). Use instead the LockingProcess class to prevent such crashes. The related function OptionsReader.getActionOnCacheLock(Context context) and OptionsReader.ActionOnCacheLock have been removed as they are no longer needed.
  • Deprecated all constants defined in MapScene.Layers. Instead of using those constants with MapScene.setLayerVisibility(), use the newly introduced MapScene.enableFeatures() and MapScene.disableFeatures() with the constants from MapFeatures and MapFeatureModes. Note that unlike layer visibility state, a map feature state is reset on loadScene().
  • Online RoutingEngine: Deprecated RoadFeatures.DIFFICULT_TURNS. Use instead RoadFeatures.U_TURNS.

Resolved Issues

  • The response time to calculate routes with the RoutingEngine has been heavily improved.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • MapDownloader: The sizeOnDiskInBytes property of Region and InstalledRegion slightly differs.
  • By default, MapScene.Layers.TRAFFIC_FLOW is no longer visible on the map. This is a license issue which affects all Navigate and Explore Edition users. Please contact us and ask for a HERE SDK license update to get traffic flow data. Your credentials will then be enabled to get access. Explore users can go directly to developer.here.com (instead of the HERE platform self-serve portal) as only the self-serve portal is affected.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances do not disappear after tilting and panning the map far away: The pins still show up above the horizon.
  • MapDownloader: It is not possible to delete a Region when another download was interrupted. Workaround: The app needs to be restarted.
  • When a feature configuration is applied, then the MapDownloader does not accurately show the updated size of a Region. This does not affect the actual size on disk.
  • Using JunctionViewLaneAssistance can slow down the time until guidance starts when no suitable map data is available in the cache.
  • An unexpected large number of mountain peak labels is present on the map of USA, which reduces map readability and to a smaller extent performance.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.12.0.0

New Features

  • We have launched a web-based HERE Style Editor to create custom map styles. The editor will be available for use with the upcoming release of HERE SDK 4.12.1.0.
  • This version of the HERE SDK is delivered with map data version 45.

API Changes - Breaking

  • Removed previously deprecated void MapScene.setLayerState​(@NonNull java.lang.String layerName, @NonNull MapScene.LayerState newState). Use MapScene.setLayerVisibility(java.lang.String, com.here.sdk.mapview.VisibilityState) instead. Removed previously deprecated enum MapScene.LayerState, use VisibilityState instead.
  • The style for MapScheme.NORMAL_NIGHT has been updated to improve readability: Increased brightness, saturation and contrast and reduced the number of different color tones.
  • A new web-based unified HERE Style Editor was made available on the HERE platform. The editor will be available for use with the upcoming release of HERE SDK 4.12.1.0. It is compatible with the Maps API for JavaScript (JSAPI) and the HERE SDK. Custom map styles that have been made with the legacy desktop editor need to be migrated to the new HERE Style Editor format. Get in touch with your HERE representative to discuss potential style updates until then. HERE SDK 4.12.0.0 is the last release that supports the old desktop format.
  • Instantiation of VenueEngine requires now to catch a InstantiationErrorException.
  • Monthly active users (MAU) are no longer counted when the HERE SDK is initialized. Instead, only usage counts, for example, when a MapView is shown, or when any engine like SearchEngine, RoutingEngine or any other engine - including MapDownloader, RoutePrefetcher, Navigator and VisualNavigator (for users of the Navigate Edition) - is instantiated. If credentials are changed at runtime, then usage is counted again.

API Changes - Deprecations

  • Deprecated ACCOMODATION, ACCOMODATION_HOTEL_MOTEL and ACCOMODATION_LODGING constants in PlaceCategory. Use the newly added ACCOMMODATION, ACCOMMODATION_HOTEL_MOTEL and ACCOMMODATION_LODGING constants instead.
  • The MapLoaderError.TOO_MANY_REQUESTS error code has been renamed and deprecated. Use instead the newly introduced MapLoaderError.REQUEST_LIMIT_REACHED error code.

Resolved Issues

  • Fixed backwards movement of LocationIndicator for VisualNavigator when spans with zero length were present in a Route.
  • Fixed redundant U-turn maneuvers that can happen sometimes for bicycle routes that have been created with the OfflineRoutingEngine.
  • Calling SpatialManeuverAudioCuePanning.startPanning(null) does now work correctly. It is no longer necessary to call the method with CustomPanningData(null, null, null) as parameter as workaround.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • MapDownloader: The sizeOnDiskInBytes property of Region and InstalledRegion slightly differs.
  • By default, MapScene.Layers.TRAFFIC_FLOW is no longer visible on the map. This is a license issue which affects all Navigate and Explore Edition users. Please contact us and ask for a HERE SDK license update to get traffic flow data. Your credentials will then be enabled to get access. Explore users can go directly to developer.here.com (instead of the HERE platform self-serve portal) as only the self-serve portal is affected.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances do not disappear after tilting and panning the map far away: The pins still show up above the horizon.
  • MapDownloader: It is not possible to delete a Region when another download was interrupted. Workaround: The app needs to be restarted.
  • When a feature configuration is applied, then the MapDownloader does not accurately show the updated size of a Region. This does not affect the actual size on disk.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.11.4.0

New Features

  • Positioning: Added LocationTechnology to indicate the technology or the provider of a location update that was received with the LocationEngine. Added optional locationTechnology field to Location class. Added optional gnssTime to Location class to provide another time format at which a location was determined.
  • This version of the HERE SDK is delivered with map data version 44.
  • Navigation: Enhanced the MapMatchedLocation class with segmentReference, segmentOffset and confidence - which ranges between 0 (poor accuracy) and 1 (best accuracy). Added localId and tilePartition_id to SegmentReference. SegmentReference is released as a beta feature to support upcoming features.
  • A Route contains now indexes for traffic incidents: Added getTrafficIncidentIndexes() to Span. The indexes are related to the traffic incidents in the parent Section. This helps to find the exact positions of traffic incidents on a route.
  • EV routing: Added availableConnectorCount to EVChargingStation. It represents the number of available physical connectors at a charging station.
  • Added support for spatial audio maneuver notifications during navigation that allow to adjust the stereo panorama of the text-to-speech in real-time. This happens based on the maneuver location in relation to a driver sitting in a vehicle. Added SpatialManeuverNotificationListener and SpatialManeuverAzimuthListener. The first listener triggers notifications when spatial maneuvers are available. Meanwhile, the second one delivers SpatialTrajectoryData: It contains the next azimuth angle to be used and it indicates wether the spatial audio trajectory has finished or not. Added SpatialManeuver data, which contains the required data to spatialize the audio cues and SpatialManeuverAudioCuePanning to create the designed spatial audio maneuvers. It takes CustomPanningData as argument to startPanning() - this allows not only to update the estimatedAudioCueDuration of the SpatialManeuver but also to customize its initialAzimuthInDegrees and sweepAzimuthInDegrees properties.
  • Added setGeoCoordinates() and getGeoCoordinates() to Metadata.

API Changes - Breaking

  • Aligned the return value of PickMapContentResult.TrafficIncidentResult.getOriginalId() to return a String instead of an integer.
  • Indoor Maps: It is now required to set a HRN value in order to use the VenueService. Added the setHrn() method to VenueService to set the HRN value for a platform catalog to fetch only the data for which an app is authorized. Internally, the HERE SDK renders indoor map data now in a new indoor map data format (MOM) which requires the HRN value. The visual representation of indoor map data is almost the same as before - except that the styling of selected indoor map features has been updated.
  • Positioning: It is no longer necessary to add the previously required Android permission ACTIVITY_RECOGNITION. The permission can be removed - if it is not used otherwise by an application.
  • Removed the IndoorRoutingEngine as indoor routing is no longer supported for venues.
  • The zoom level behavior of the MapCamera has been aligned: Internally, the HERE SDK calculates now a zoom level with a pixel scale as reference instead of ppi. As a result, when a zoom level is set, the MapView is zoomed in a bit less than previously. Note that this affects only the zoom level and not the camera's distance setting to earth. In addition, the maximum zoom level has been increased from 22 to 23.

Resolved Issues

  • Fixed an issue with maneuver notification updates during navigation.
  • Navigation: Fixed handling of truck speed limits on limited access roads for some countries.
  • offlineRoutingEngine.returnToRoute() now properly updates the departure and arrival times of the resulting Route.
  • Fixed offlineRoutingEngine.returnToRoute() when it returns to a section after the first one.
  • A Route created with the RoutingEngine differentiates now between sections for stops and sections created due to a transport mode change: The waypointIndex of the first departure place and the last arrival place are now set according to the waypoints indexes.
  • GPX coordinates are now explicitly converted to degrees in a GPXDocument before writing to a file.
  • Fixed crash in VisualNavigator: Each incoming maneuver refers now to its polyline as derived from its own section. Previously, all the maneuvers referred to the current section polyline.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • MapDownloader: The sizeOnDiskInBytes property of Region and InstalledRegion slightly differs.
  • By default, MapScene.Layers.TRAFFIC_FLOW is no longer visible on the map. This is a license issue which affects all Navigate and Explore Edition users. Please contact us and ask for a HERE SDK license update to get traffic flow data. Your credentials will then be enabled to get access. Explore users can go directly to developer.here.com (instead of the HERE platform self-serve portal) as only the self-serve portal is affected.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances do not disappear after tilting and panning the map far away: The pins still show up above the horizon.
  • MapDownloader: It is not possible to delete a Region when another download was interrupted. Workaround: The app needs to be restarted.
  • When a feature configuration is applied, then the MapDownloader does not accurately show the updated size of a Region. This does not affect the actual size on disk.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Calling SpatialManeuverAudioCuePanning.startPanning(null) does not work correctly. Instead, call the method with CustomPanningData(null, null, null) as parameter.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.11.3.0

New Features

  • ManeuverViewLaneAssistance is now guaranteed to support left-hand and right-hand driving countries. No API change involved.
  • Added class PickMapContentResult.TrafficIncidentResult containing all data of a picked traffic incident. Added PickMapContentResult.getTrafficIncidents for retrieving picked traffic incidents.
  • This version of the HERE SDK is delivered with map data version 41.
  • Added void MapCamera.lookAt(GeoCoordinates, MapMeasure) and void MapCamera.lookAt(GeoCoordinates, GeoOrientationUpdate, MapMeasure).
  • Added sdk.transport.TruckSpecifications as replacement for the deprecated sdk.routing.TruckSpecifications.

API Changes - Breaking

  • By default, the RoutePrefetcher prefetched map data around a location with a radius of 10 km. This was reduced to 2 km.

API Changes - Deprecations

  • Deprecated sdk.routing.TruckSpecifications class. Use 'sdk.transport.TruckSpecifications' instead.
  • Deprecated void MapCamera.lookAt(GeoCoordinates, double) and void MapCamera.lookAt(GeoCoordinates, GeoOrientationUpdate, double). Use instead the newly added lookAt() methods to set a MapMeasure, which allows now to specify if distance, scale or zoom level should be changed.
  • Added EVTruckOptions.truck_specifications as replacement for the deprecated EVTruckOptions.specifications.
  • Added TruckOptions.truck_specifications as replacement for deprecated TruckOptions.specifications.
  • Deprecated TruckOptions.specifications. Use TruckOptions.truck_specificationsinstead.
  • Deprecated EVTruckOptions.specifications. Use EVTruckOptions.truck_specificationsinstead.

Resolved Issues

  • Fixed: SafetyCameraWarning notifications are repeated too often. The notifications for the safety cameras ahead are now given only once.
  • Fixed a random crash for RoutePrefetcher that happend after route deviation.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • MapDownloader: The sizeOnDiskInBytes property of Region and InstalledRegion slightly differs.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • Sometimes, turn-by-turn maneuver instructions on a highway result in "left fork" or right fork" instructions instead of just "continue on highway".
  • When a feature configuration is applied, then the MapDownloader does not accurately show the updated size of a Region. This does not affect the actual size on disk.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.
  • By default, MapScene.Layers.TRAFFIC_FLOW is no longer visible on the map. This is a license issue which affects all Navigate and Explore Edition users. Please contact us and ask for a HERE SDK license update to get traffic flow data. Your credentials will then be enabled to get access. Explore users can go directly to developer.here.com (instead of the HERE platform self-serve portal) as only the self-serve portal is affected.

Version 4.11.2.0

New Features

  • Extended feature configurations: 3D landmarks can now be enabled or disabled as feature. Added the value "LANDMARKS3D" that can be specified in the _AndroidManifest for the "com.here.sdk.feature_configuration" meta-data name.
  • Added offline support for 3D landmarks. When the MapScene.Layers.LANDMARKS is set to be visible, landmarks will be also visible offline when enough map data was loaded into the cache - or when the corresponding Region was downloaded.
  • OfflineRoutingEngine: Added support for Waypoint.sideOfStreetHint.
  • Added RoutePrefetcher.prefetchAroundLocation() which prefetches map data within a circle of radius 10 km of around a location. It is recommended to call this method once before starting navigation for a smooth user experience.
  • Added method setCustomOptions() to RoutingEngine which allows adding custom options to each routing query. Use this feature at your own risk to experiment with Routing API v8 backend features that are not yet supported by the HERE SDK.

API Changes - Breaking

  • Moved class com.here.sdk.routing.RoutePrefetcher to com.here.sdk.prefetcher.RoutePrefetcher.
  • Offline maps: Before downloading or deleting a Region, it is required to call getDownloadableRegions() - only if a map update was performed beforehand. As a recommendation: Once MapUpdater has completed an update process, call getDownloadableRegions() to internally update the list of available Region data.

API Changes - Deprecations

  • SearchEngine: Deprecated existing constructors of sdk.search.TextQuery and sdk.search.CategoryQuery. Use newly added constructors taking sdk.search.TextQuery.Area and sdk.search.CategoryQuery.Area instead.
  • Deprecated Section.getDepartureTime() and Section.getArrivalTime() methods. Use Section.getDepartureLocationTime() and Section.getArrivalLocationTime() methods instead. Added LocationTime class which provides the local time, UTC time and the UTC offset, including DST time variations.
  • Deprecated MapViewBase.pickMapFeatures(Rectangle2D, MapViewBase.PickMapFeaturesCallback), MapView.pickMapFeatures(Rectangle2D, MapViewBase.PickMapFeaturesCallback), MapSurface.pickMapFeatures(Rectangle2D, MapViewBase.PickMapFeaturesCallback), MapViewBase.PickMapFeaturesCallback, PickMapFeaturesResult. Use instead the newly introduced MapViewBase.pickMapContent(Rectangle2D, MapViewBase.PickMapContentCallback), MapView.pickMapContent(Rectangle2D, MapViewBase.PickMapContentCallback), MapViewBase.PickMapContentCallback, PickMapContentResult.

Resolved Issues

  • Fixed failing traffic incident queries for TrafficEngine.
  • Fixed incorrectly reported SpeedLimit notifications for trucks that happened in some situations.
  • OfflineRoutingEngine: Fixed unnecessary detours that happened when waypoints are close to junctions.
  • ManeuverNotificationOptions.enableHighwayExit is now considered when notifications are received by ManeuverNotificationListener.
  • Bus routes may not be fully accurate and the TransportMode of such routes is incorrectly changed to CAR. Fixed value returned by the getSectionTransportMode() method of a Section for bus routes.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • MapDownloader: The sizeOnDiskInBytes property of Region and InstalledRegion slightly differs.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • Sometimes, turn-by-turn maneuver instructions on a highway result in "left fork" or right fork" instructions instead of just "continue on highway".
  • When a feature configuration is applied, then the MapDownloader does not accurately show the updated size of a Region. This does not affect the actual size on disk.
  • SafetyCameraWarning notifications are repeated too often.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.11.1.0

New Features

  • Added 'MapImage(@NonNull byte[] imageData, @NonNull ImageFormat imageFormat, long width, long height)' to set a custom size. It will also accept PNG image data.
  • Search: Added Suggestion.getId() that returns an auto suggest item ID.
  • Added methods to MapView to set a HERE watermark margin with mapView.setWatermarkPlacement(@NonNull final WatermarkPlacement placement, final int bottomMargin) and mapSurface.setWatermarkPlacement(@NonNull final WatermarkPlacement placement, final int bottomMargin).

API Changes - Breaking

  • Removed the previously deprecated constructor Location(@NonNull final GeoCoordinates coordinates, @NonNull final Date timestamp), the class Location.Builder and the field Location.timestamp. Use the default constructor instead and set the values afterwards.

API Changes - Deprecations

  • Deprecated the methods MapView.setWatermarkPosition(final WatermarkPlacement placement, final long bottomCenterMargin) and MapSurface.setWatermarkPosition(final WatermarkPlacement placement, final long bottomCenterMargin). Use the related setWatermarkPlacement() method instead.

Resolved Issues

  • Dark background issue fixed for MapView when using a webMercator projection.
  • Fixed: Finding traffic on a route via trafficEngine.queryForIncidents fails unexpectedly for GeoCorridor objects that are much shorter than 500 km.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • MapDownloader: The sizeOnDiskInBytes property of Region and InstalledRegion slightly differs.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • Bus routes may not be fully accurate and the TransportMode of such routes is incorrectly changed to CAR.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Custom raster tiles may not be rendered for some cases after panning and zooming the map.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.11.0.0

New Features

  • Added support for offline Bus route calculation via OfflineRoutingEngine and turn-by-turn navigation via Navigator / VisualNavigator.
  • Added low-level 3D support to programmatically add custom 3D objects on the map. Added MeshBuilder, TriangleMeshBuilder and QuadMeshBuilder to construct different kinds of meshes from points in 3D space via Point3D. The resulting Mesh container can be used with a texture graphic to create MapMarker3D objects.
  • MapMarker3D objects can now be scaled using a RenderSize.Unit in meters, pixels and densityIndependentPixels.
  • Added CategoryQuery.excludeCategories to add a list of PlaceCategory items that should be excluded from a category search for places. These categories can be set with CategoryQuery.withExcludeCategories.
  • Added enhanced animation support for MapMarker objects via the new MapMarkerAnimation class. Such animations are based on a MapItemKeyFrameTrack that stores keyframes for interpolation of a map item property. It can be constructed by calling MapItemKeyFrameTrack.moveTo(@NonNull List<GeoCoordinatesKeyframe> keyframes, @NonNull EasingFunction easingFunction, @NonNull KeyframeInterpolationMode interpolationMode). The animation can be started or cancelled via mapMarker.startAnimation(mapMarkerAnimation)/cancelAnimation(mapMarkerAnimation).
  • Added support for online Bus route calculation via RoutingEngine. Added TransportMode.BUS and BusOptions.
  • Added RoutePrefetcher to improve the navigation experience. By calling its prefetchAroundRouteOnIntervals() method it downloads map data in advance that may be needed during a trip. The data will be loaded automatically to the map cache and it will be used when the device is temporary offline - unless the device is fully operating offline using offline maps.
  • Added fade animations for MapMarker by calling setFadeDuration(Duration). The marker will automatically fade-in when being added to the MapView and fade-out when being removed. By default, this feature is disabled. The current fade duration can be retrieved by calling getFadeDuration(). It defaults to 0.
  • Added explicit support for flat MapMarker3D objects. Added a convenience constructor for MapMarker3D with a MapImage parameter to create a flat map marker. Use RenderSize.Unit with densityIndependentPixels to create flat marker with a fixed size - independent of zoom level.
  • Added support for the travelling salesman use case. Multiple stopover Waypoint items along a Route can now be ordered automatically by setting RouteOptions.optimizeWaypointsOrder. If set to true, the OfflineRoutingEngine will try to optimize the waypoints order to reach the destination faster or to make the route shorter. The feature is not yet supported for the online RoutingEngine. Note that this is a beta release of this feature.
  • Added support to record a navigation session for later use with the new GPXTrackWriter - for example, to test new app features or to replay and analyse unexpected behavior. Add the GPXTrackWriter as a listener to LocationEngineBase via addLocationListener() for GPX track recording. Use the GPXDocument to load the GPX track from file or from a recorded track. Only track data is used from the GPX format. Any unknown elements in the file are ignored. Any known element with an invalid value returns an error. Elevation values are ignored. Use GPXDocument.save() to save loaded tracks to a file pointed by name: It returns true if succeeded and false otherwise.
  • Added enhanced camera animations with MapCameraAnimationFactory.flyTo(GeoCoordinatesUpdate, double, Duration), MapCameraAnimationFactory.flyTo(GeoCoordinatesUpdate, GeoOrientationUpdate, double, Duration), MapCameraAnimationFactory.flyTo(GeoCoordinatesUpdate, MapMeasure, double, Duration), MapCameraAnimationFactory.flyTo(GeoCoordinatesUpdate, GeoOrientationUpdate, MapMeasure, double, Duration).
  • Added offline support for RouteOptions.arrivalTime. This field will be ignored if RouteOptions.enableTrafficOptimization is set to false. Cannot be set along with RouteOptions.departureTime.

API Changes - Breaking

  • Removed the previously deprecated InstantiationErrorCode.FAILED_TO_LOCK_PERSISTENT_MAP_STORAGE_FOLDER. Nothing to use instead: The persistent storage directory is no longer locked.
  • Removed the previously deprecated SectionNoticeCode.VIOLATED_PEDESTRIAN_OPTION symbol. Nothing to use instead as this is is no longer supported.

API Changes - Deprecations

  • Deprecated MapCamera.FlyToOptions`` and allMapCamera.flyToAPIs. UseMapCameraAnimationFactory.flyTo` APIs instead.
  • Deprecated Section.getTrafficSpeeds() method. Use instead Span.getTrafficSpeed().

Resolved Issues

  • The TrafficEngine can handle now GeoCorridor objects without a radius. When the radius via halfWidthInMeters is unset, a default value of 30 meters is used.
  • A GPXDocument no longer ignores the timezone in the GPX track point time of the imported GPX file. It reads now correctly the track point timezone as UTC.
  • Fixed an issue for TTS maneuver notifications where abbreviated names have been incorrectly translated in German when using the ManeuverNotificationListener.
  • The returnToRoute() feature of the RoutingEngine now routes back to the first untravelled waypoint and the routeFractionTraveled parameter is no longer ignored.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • Finding traffic on a route via trafficEngine.queryForIncidents fails unexpectedly for GeoCorridor objects that are much shorter than 500 km.
  • MapDownloader: The sizeOnDiskInBytes property of Region and InstalledRegion slightly differs.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Custom raster tiles may not be rendered for some cases after panning and zooming the map.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.10.5.0

New Features

  • Added MapMeasureRange class to hold a MapMeasure range, MapCameraLimits.setZoomRange(MapMeasureRange) and MapCameraLimits.getZoomRange methods.
  • Added support for custom backends with the new EngineBaseURL enum and the customEngineBaseUrls field in SDKOptions.
  • Added MapCameraLimits.setTiltRange(AngleRange) and MapCameraLimits.getTiltRange methods.
  • Added support for Pedestrian routes and transport mode in OfflineRoutingEngine and for navigation.
  • Japan is now available as a separate offline maps Region download via MapDownloader. With enabled credentials, high-quality Japan map data can be downloaded. By default, only low-quality basic map data is available for download. Talk to your HERE representative to enable high-quality Japan map data. Note that this feature is already available since v4.10.4.0.
  • Route alternatives are now fully supported for electric vehicles. EV route alternatives are enabled when routeOptions.alternatives is in the range [1, 6]. Note that this feature is already available since v4.10.4.0.
  • Added MapCameraLimits.setBearingRangeAtZoom(MapMeasure, AngleRange), MapCameraLimits.clearBearingRanges, MapCameraLimits.setTiltRangeAtZoom(MapMeasure, AngleRange) and MapCameraLimits.clearTiltRanges.
  • Added MapCamera.cancelAnimation(MapCameraAnimation) and MapCamera.cancelAnimations methods.
  • Added MapCameraListener interface, MapCamera.addListener(MapCameraListener), MapCamera.removeListener(MapCameraListener) and MapCamera.removeListeners methods.

API Changes - Deprecations

  • Location.Builder has been deprecated. Will be removed in v4.11.0. To create a new Location instance use a constructor.
  • Deprecated LocationSimulatorOptions.notificationIntervalInMilliseconds. Use LocationSimulatorOptions.notificationInterval instead.
  • Deprecated Location.timestampSinceBootInMilliseconds. Use Location.timestampSinceBoot instead.
  • Deprecated MapCameraLimits.setMinTilt(double) and MapCameraLimits.setMaxTilt(double). Use MapCameraLimits.setTiltRange(AngleRange) instead.
  • Deprecated MapCamera.cancelAnimation method. Use MapCamera.cancelAnimations instead.
  • Deprecated MapCameraLimits.setMinZoomLevel(double), MapCameraLimits.setMaxZoomLevel(double), MapCameraLimits.ErrorCode, MapCameraLimits.MapCameraLimitsException. Use MapCameraLimits.setZoomRange(MapMeasureRange) instead.
  • Deprecated MapCameraObserver interface, MapCamera.addObserver(MapCameraObserver) and MapCamera.removeObserver(MapCameraObserver) methods. Use MapCamera.addListener(MapCameraListener) and MapCamera.removeListener(MapCameraListener) instead.
  • Deprecated DynamicRoutingEngine.pollIntervalInMinutes. Use DynamicRoutingEngine.pollInterval instead.

Resolved Issues

  • Fixed incorrect handling of RouteOptions.occupantsNumber while requesting a route.
  • Routing: Fixed incorrect offset calculation for departure/arrival time that happens when converting to UTC time.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • Finding traffic on a route via trafficEngine.queryForIncidents fails unexpectedly for GeoCorridor objects that are much shorter than 500 km.
  • MapDownloader: The sizeOnDiskInBytes property of Region and InstalledRegion slightly differs.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Custom raster tiles may not be rendered for some cases after panning and zooming the map.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.10.4.0

New Features

  • Added sdk.transport.TruckType enum. It is meant to replace the deprecated sdk.routing.TruckType.
  • Added TruckOptions.hazardous_materials. It is meant to replace the deprecated TruckOptions.hazardous_goods.
  • Added RouteOptions.occupantsNumber support when using the OfflineRoutingEngine.
  • Added sdk.transport.HazardousMaterial enum. It is meant to replace the deprecated sdk.routing.HazardousGood.
  • Added EVTruckOptions.hazardous_materials. It is meant to replace the deprecated EVTruckOptions.hazardous_goods.
  • Added ManeuverNotificationTimingOptions in Navigator to configure maneuver notification timings. This allows to customize the default distance and time thresholds that are used for TTS voice guidance.
  • Traffic incident queries can now be canceled by calling the cancel() method of the TaskHandle object returned by the TrafficEngine.
  • Added routing.TruckSpecifications.truck_type. It is meant to replace the deprecated routing.TruckSpecifications.type.

API Changes - Deprecations

  • Deprecated routing.TruckSpecifications.type. Use routing.TruckSpecifications.truck_type instead.
  • Deprecated sdk.routing.HazardousGood enum. Use 'sdk.transport.HazardousMaterial' instead.
  • Deprecated EVTruckOptions.hazardous_goods. Use EVTruckOptions.hazardous_materials instead.
  • Deprecated routing.TruckType enum. Use transport.TruckType instead.
  • Deprecated TruckOptions.hazardous_goods enum. Use 'TruckOptions.hazardous_materials' instead.

Resolved Issues

  • The HERE SDK now uses sdk.transport.TransportMode instead of sdk.routing.TransportMode as argument in sdk.Navigator.getManeuverNotificationTimingOptions and sdk.Navigator.setManeuverNotificationTimingOptions.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • MapDownloader: The sizeOnDiskInBytes property of Region and InstalledRegion slightly differs.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Custom raster tiles may not be rendered for some cases after panning and zooming the map.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.10.3.0

New Features

  • Added sdk.transport.TunnelCategory. It is meant to replace deprecated sdk.routing.TunnelCategory.
  • Added altitude handling for offline routing.
  • Added methods isDepthCheckEnabled() and setDepthCheckEnabled(final boolean value) to MapMarker3D class. This improves rendering for complex 3D objects such as a torus.
  • Added support for UNKNOWN value from TrafficIncidentImpact and TrafficIncidentType enums to enable filtering for traffic incidents. This value indicates that all types/impacts are requested from the backend and filtering will be applied thereafter by the HERE SDK.
  • Added EVTruckOptions.link_tunnel_category. It is meant to replace deprecated EVTruckOptions.tunnel_category.
  • Added TruckOptions.link_tunnel_category. It is meant to replace deprecated TruckOptions.tunnel_category.
  • Added MapCameraUpdateFactory.setNormalizedPrincipalPoint(Anchor2D) method to animate camera's principal point using normalized screen coordinates.
  • Added Anchor2DKeyframe class to be used in animation of normalized principal point. Added MapCameraKeyframeTrack.normalizedPrincipalPoint(List<Anchor2DKeyframe>, EasingFunction, KeyframeInterpolationMode) that creates keyframe track for animating normalized principal point. Added MapCameraKeyframeTrack.getAnchor2DKeyframes() method. Added MapCameraUpdateFactory.setNormalizedPrincipalPoint(Anchor2D) method.
  • Visibility of embedded default carto POIs on the map has been improved.
  • Added colors related to landuse area polygons in the night scheme have been updated.
  • Added MapIdleListener to detect whether the map is idle or busy. Added HereMap.addMapIdleListener(MapIdleListener) to start receiving idle state notifications and HereMap.removeMapIdleListener(MapIdleListener) to stop receiving idle state notifications.
  • Added constructors to 'RasterDataSource'.
  • Added initialBackgroundColor to MapViewOptions and constructor to set initial background color. Initial background color will be shown until the first map scene has been loaded.
  • Updated colors related to street network elements for the night scheme.

API Changes - Deprecations

  • Deprecated unsupported method RasterDataSource.changeConfiguration(String). Use the another constructor instead.
  • Deprecated BatterySpecifications.changingSetupDurationInSeconds. Use BatterySpecifications.changingSetupDuration instead.
  • Deprecated TruckOptions.tunnel_category enum. Use 'TruckOptions.link_tunnel_category' instead.
  • Deprecated Maneuver.durationInSeconds. Use Maneuver.duration instead.
    • Deprecated Section.durationInSeconds. Use Section.duration instead.
    • Deprecated Section.trafficDelayInSeconds. Use Section.trafficDelay instead.
  • Deprecated SpeedLimit(speedLimitInMetersPerSecond, advisorySpeedLimitInMetersPerSecond, snowSpeedLimitInMetersPerSecond, rainSpeedLimitInMetersPerSecond, fogSpeedLimitInMetersPerSecond, optimal_weatherSpeedLimitInMetersPerSecond, school_zoneSpeedLimitInMetersPerSecond, time_dependentSpeedLimitInMetersPerSecond) constructor. Please use the default constructor instead.
  • Deprecated SectionProgress.remainingDurationInSeconds. Use SectionProgress.remainingDuration instead.
    • Deprecated SectionProgress.trafficDelayInSeconds. Use SectionProgress.trafficDelay instead.
    • Deprecated SectionProgress constructor with parameters. Use the default constructor instead.
    • Deprecated ManeuverProgress.remainingDurationInSeconds. Use ManeuverProgress.remainingDuration instead.
    • Deprecated ManeuverProgress constructor with parameters. Use the default constructor instead.
  • Deprecated RasterDataSourceFactory. Use the existing RasterDataSource() constructor instead.
  • Deprecated Waypoint.durationInSeconds. Use Waypoint.duration instead.
  • Deprecated RoadAttributes(isDirtRoad, isTunnel, isBridge, isRamp, isControlledAccess, isPrivate, isNoThrough, isTollway, isDividedRoad, isRightDrivingSide, isRoundabout) constructor. Please use the default constructor instead.
  • Deprecated DynamicRoutingEngineOptions.minTimeDifferenceInSeconds. Use DynamicRoutingEngineOptions.minTimeDifference instead.
  • Deprecated sdk.routing.TunnelCategory enum. Use 'sdk.transport.TunnelCategory' instead.
  • Navigation: Deprecated SpeedLimitOffset(lowSpeedOffsetInMetersPerSecond, highSpeedOffsetInMetersPerSecond, highSpeedBoundaryInMetersPerSecond) constructor. Please use the default constructor instead.
  • Deprecated Route.durationInSeconds. Use Route.duration instead.
    • Deprecated Route.trafficDelayInSeconds. Use Route.trafficDelay instead.
  • Deprecated MapCameraUpdateFactory.setPrincipalPointOffset(Point2D) method. Use MapCameraUpdateFactory.setNormalizedPrincipalPoint(Anchor2D) instead.
  • Deprecated EVTruckOptions.tunnel_category. Use EVTruckOptions.link_tunnel_category instead.
  • Deprecated PostAction.durationInSeconds. Use PostAction.duration instead.
    • Deprecated PostAction constructor with parameters. Use the default constructor instead.
    • Deprecated PreAction.durationInSeconds. Use PreAction.duration instead.
    • Deprecated PreAction constructor with parameters. Use the default constructor instead.
  • Deprecated TransitStop.durationInSeconds. Use TransitStop.duration instead. Deprecated TransitStop(departure, durationInSeconds) constructor with parameters. Use the default constructor instead.
  • Deprecated getLinks in sdk.routing.Section. Use getSpans instead.

Resolved Issues

  • Fixed: Sometimes the VisualNavigator informs too late on RouteProgress after guidance start.
  • Truck guidance no longer ignores truck specific legal speed limits (CVR). Limits are provided as part of the SpeedLimit event when transport mode TRUCK is set. Use map version 32 or newer.
  • Adding custom raster layers no longer hides the HERE logo.
  • Removed copying geometry when there is only one section.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • sdk.Navigator.getManeuverNotificationTimingOptions and sdk.Navigator.setManeuverNotificationTimingOptions accept sdk.routing.TransportMode as argument, it will be changed to sdk.transport.TransportMode in the next minor release.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.10.2.0

New Features

  • Find traffic along a route: Added class TrafficIncidentOnRoute and method Section.getTrafficIncidents(). It represents traffic incidents on the route that are relevant for the section.
  • The RoutingEngine is now able to provide routes that contain altitude values along the route.
  • Added support for project scopes: With the new AndroidManifest meta-data option to specify a com.here.sdk.access_scope an app can set the HRN value as defined by your project ID. Each app belongs to at least one or multiple projects. A possible use case can be to define a debugScope. See SDKOptions and the IAM Guide for more details.
  • Added isTruckLight flag to TruckSpecifications. It indicates that the truck can be classified as a car and that it is therefore excluded from legal restrictions (such as truck speed limits) for normal trucks when calculating the route. Note that specifications such as the physical dimensions, cargo, and others, are still taken into account.
  • Feature configurations can now be updated at the next application update. Added performFeatureUpdate method to MapUpdater class. Call this method once a feature configuration has been updated in AndroidManifest file. As a result, the cached map data will be deleted and subsequently updated. Also, the downloaded regions will be updated to reflect the changes. Note that it is the developer's responsibility to decide when to perform the update. The HERE SDK does not decide or notify when such an update can be made. Calling performFeatureUpdate is only necessary once, after an application has been updated. Use feature configurations to limit the map data that is downloaded when panning and zooming the map view - or when downloading offline regions.

API Changes

  • Deprecated sdk.routing.EVConsumptionModel(ascentConsumptionInWattHoursPerMeter, descentRecoveryInWattHoursPerMeter, freeFlowSpeedTable, trafficSpeedTable, auxiliaryConsumptionInWattHoursPerSecond) constructor. Use one of the other constructors instead.
  • Deprecated sdk.location.NotificationOptions(desiredIntervalMilliseconds, smallestIntervalMilliseconds) constructor. Use one of the other constructors instead.
  • Deprecated sdk.routing.TransitRouteOptions(departureTime, arrivalTime, alternatives, changes, modeFilter, modes, pedestrianSpeedInMetersPerSecond, pedestrianMaxDistanceInMeters, textOptions) constructor. Use one of the other constructors instead.
  • Deprecated sdk.location.CellularPositioningOptions(enabled) constructor. Use one of the other constructors instead.
  • Deprecated Section.getPolyline, use Section.getGeometry instead.
  • Deprecated sdk.routing.AvoidanceOptions(roadFeatures, countries, avoidAreas, zoneCategories, segments) constructor. Use one of the other constructors instead.
  • Deprecated sdk.routing.IndoorRouteOptions(routeOptions, transportMode, indoorAvoidanceOptions, outdoorAvoidanceOptions, walkSpeedInMetersPerSecond) constructor. Use one of the other constructors instead.
  • Deprecated FarePrice.validityPeriodInSeconds. Use FarePrice.validityPeriod instead. Deprecated FarePrice constructor with parameters. Use the default constructor instead.
  • Deprecated AuthenticationData.expiryTimeInSeconds. Use AuthenticationData.expiryTime instead. Deprecated AuthenticationData constructor with parameters. Use the default constructor instead.
  • Deprecated Route.getPolyline, use Route.getGeometry instead.
  • Deprecated sdk.location.SensorOptions(enabled) constructor. Use one of the other constructors instead.
  • Deprecated sdk.routing.PedestrianOptions(routeOptions, textOptions, avoidanceOptions, walkSpeedInMetersPerSecond) constructor. Use one of the other constructors instead.
  • Deprecated sdk.routing.IndoorAvoidanceOptions(indoorFeatures) constructor. Use one of the other constructors instead.
  • Deprecated sdk.location.WifiPositioningOptions(enabled) constructor. Use one of the other constructors instead.
  • Deprecated sdk.routing.TransitSectionDetails(transport, intermediateStops, agency, attributions, fares, incidents) constructor. Use one of the other constructors instead.
  • Deprecated sdk.routing.RouteTextOptions(language, instructionFormat, unitSystem) constructor. Use one of the other constructors instead.
  • Deprecated sdk.routing.FarePrice(type, estimated, currency, validityPeriodInSeconds, minimum, maximum) constructor. Use one of the other constructors instead.
  • Deprecated sdk.routing.ScooterOptions(routeOptions, textOptions, avoidanceOptions, allowHighway) constructor. Use one of the other constructors instead.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • Sometimes the VisualNavigator informs too late on RouteProgress after guidance start.
  • Truck guidance ignores truck specific speed limits (CVR). Currently, only the speed limits as they are valid for cars are provided as part of the SpeedLimit event.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • Transparency for MapPolylines is not supported.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.10.1.0

New Features

  • Routing: Route calculations can now be canceled via the returned TaskHandle when calling calculateRoute() or related methods on engines such as the RoutingEngine.
  • BYOD: Extended GeoPlace to hold more information: Added ExternalID, LocationDetails, WebDetails, BusinessDetails.
  • Added matchSideOfStreet property to Waypoint class. It specifies how the location set by sideOfStreetHint should be handled when reaching a destination.
  • Added value SUB_METER_NAVIGATION to LocationAccuracy enum. It causes HERE positioning to use high accuracy GNSS. Added values NOT_LICENSED and NOT_COMPATIBLE to LocationEngineStatus enum. They indicate additional error states related to HD GNSS. Added value HD_GNSS_POSITIONING to LocationFeature enum: It adds new supported feature to Positioning. Added value hdEnabled to SatellitePositioningOptions struct: If true, HD GNSS positioning is enabled.
  • Added global ParameterConfiguration that holds default values for HERE SDK features. For now, this allows to specify a walkingSpeedInMetersPerSecond to define a default pedestrian movement. Added TransitRouteOptions.fromDefaultParameterConfiguration() and PedestrianOptions.fromDefaultParameterConfiguration() that allow to create TransitRouteOptions and PedestrianOptions that will use the values set via ParameterConfiguration. The created options can then be used as usual for route calculation. Note that this is a beta feature.
  • Navigation: Added SpeedLimit.optimalWeatherSpeedLimitInMetersPerSecond property.
  • Added a new TrafficEngine that allows querying for current traffic incidents. Check the Traffic example app to see how it works. The TrafficEngine supports querying for traffic incidents in a bounding box, a circle, or a corridor. Querying for the exact traffic incident by ID. Traffic incidents can contain an incident type, an incident impact, an incident location (currently, a polyline with length), incident codes, an active time range, localized by the queried language description and summary, relevant vehicle restrictions, and more. It supports representations of traffic incident vehicle restrictions as a set of restricted vehicle properties of some vehicle category and filtering queried incidents by an incident type, an incident impact and an active time range.
  • Added RouteOptions.occupantsNumber: An option reflecting the number of occupants in a vehicle. Supported for CAR and TRUCK transport modes. When it is higher than 1 it affects a vehicles ability to use HOV/carpool lanes. Defaults to 1.
  • Extended MapSurface constructor to add MapViewOptions to support MapProjection.GLOBE and MapProjection.WEB_MERCATOR projections.
  • Added support for truck speed limits and CVR (Commercial Vehicle Regulated) speed limits for SpeedLimitListener and SpeedWarningListener. Governmental regulations can specify an upper speed limit for certain vehicle types, such as trucks. If a local road sign indicates a speed limit of 130 km/h, then this can be overruled: In Germany, for example, the maximum allowed speed for trucks is 100 km/h. When navigation or tracking is started then the SpeedLimitListener and SpeedWarningListener will use the set TransportMode to notify on truck or car speed limits. As a result, a truck driver will receive on German highways never a speed limit notification that is higher than 100 km/h. Note that this feature is only available for map data >= 32 - as indicated by MapUpdater.getCurrentMapVersion().
  • Navigation: Added support for smooth location interpolation. This feature is already effective when using the VisualNavigator. Now it is also possible to get the calculated interpolated locations directly from the newly added InterpolatedLocationListener from a VisualNavigator instance. This allows for more customization options, for example, to smoothly animate map objects or new map view instances that show a different perspective than the main map view display.

API Changes

  • Changed type of RefreshRouteOptions constructor parameter from sdk.routing.TransportMode to sdk.transport.TransportMode.
  • Removed the previously deprecated Maneuver.polyline. Use instead Section.polyline together with Maneuver.sectionIndex and Maneuver.offset.
  • Routing: Deprecated EVConsumptionModel(ascentConsumptionInWattHoursPerMeter, descentRecoveryInWattHoursPerMeter, freeFlowSpeedTable, trafficSpeedTable, auxiliaryConsumptionInWattHoursPerSecond) constructor. Use the default constructor instead.
  • Search: Deprecated SearchOptions constructor that takes all parameters. Please use the default constructor instead.
  • Deprecated SatellitePositioningOptions constructor with a parameter. Use the default constructor instead.
  • Search: Deprecated Address constructor that takes all parameters. Please use the default constructor instead.
  • Navigation: Deprecated LocationSimulatorOptions constructor that takes all parameters. Please use the default constructor instead.
  • Routing: Deprecated TransitRouteOptions(departureTime, arrivalTime, alternatives, changes, modeFilter, modes, pedestrianSpeedInMetersPerSecond, pedestrianMaxDistanceInMeters, textOptions) constructor. Use the default constructor instead.
  • Deprecated NavigatorInterface.trackingTransportMode. Use the newly introduced NavigatorInterface.assumedTrackingTransportMode instead.
  • Deprecated EVCarOptions constructor with all parameters. Use the default constructor instead.
  • Deprecated Route.transportMode. Use the newly introduced Route.requestedTransportMode instead.
  • Routing: Deprecated AvoidanceOptions(roadFeatures, countries, avoidAreas, zoneCategories, segments) constructor. Use the default constructor instead.
  • Navigation: Deprecated GPXOptions constructor that takes speed in meters per second. Please use the default constructor instead.
  • Navigation: Deprecated DynamicRoutingEngineOptions constructor that takes parameters. Please use the newly added default constructor instead.
  • Deprecated CarOptions constructor with all parameters. Use the default constructor instead.
  • Routing: Deprecated a route's Link. Use Span instead.
  • MapDownloader: Deprecated Region constructors that take parameters besides region id. Use the constructor that takes only region id instead.
  • Routing: Deprecated PedestrianOptions(routeOptions, textOptions, avoidanceOptions, walkSpeedInMetersPerSecond) constructor. Use the default constructor instead.
  • Routing: Deprecated TransitWaypoint constructor that takes all parameters. Please use the default constructor instead.
  • Routing: Deprecated TransitSectionDetails(transport, intermediateStops, agency, attributions, fares, incidents) constructor. Use the default constructor instead.
  • Deprecated TruckOptions constructor with all parameters. Use the default constructor instead.
  • Routing: Deprecated RouteTextOptions(language, instructionFormat, unitSystem) constructor. Use the default constructor instead.
  • Deprecated EVTruckOptions constructor with all parameters. Use the default constructor instead.
  • Deprecated sdk.routing.TransportMode enum. Use the newly introduced 'sdk.transport.TransportMode' instead.
  • Routing: Deprecated FarePrice(type, estimated, currency, validityPeriodInSeconds, minimum, maximum) constructor. Use the default constructor instead.
  • Routing: Deprecated ScooterOptions(routeOptions, textOptions, avoidanceOptions, allowHighway) constructor. Use the default constructor instead.
  • Navigation: Deprecated the CameraSettings constructor that takes cameraDistanceInMeters, cameraTiltInDegrees, cameraBearingInDegrees. Please use the default constructor instead.

Resolved Issues

  • Navigation: Fixed an issue with truck vehicle restriction notifications.
  • Fixed: The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Fixed: Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • Fixed: Navigation: Maneuver voice notifications are sometimes triggered too early.
  • Fixed: When cachePath and persistentMapStoragePath are changed via SDKOptions, then it may not change the default path.
  • Fixed ManeuverNotifications for pedestrians: The timing when to trigger voice notifications is now adapted for pedestrians based on the set transport mode.
  • Fixed: Truck routes that are imported via importRoute() may be result in a RoutingError.NO_ROUTE_FOUND error as certain truck restrictions may be violated along the road. This is incorrect and instead the resulting route should contain the violated restrictions as part of the route's SectionNotice.
  • Fixed a crash when MapCameraAnimationFactory.createAnimation(MapCameraUpdate, Duration, EasingFunction) was called.
  • Fixed VisualNavigator that was showing two location indicators when a custom location indicator was set.

Known Issues

  • Outlines for MapPolyline lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • MapPolyline instances ignore alpha color settings and will appear fully opaque.
  • Transparency for MapPolylines is not supported.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • RoutingEngine: The route import feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.

Version 4.10.0.0

New Features

  • Navigation: Added MilestoneStatusListener that informs if a milestone has been reached or missed. For this, check the newly introduced MilestoneStatus.
  • MapView: Added support for mercator projection when a MapView is created programmatically. Note that for a future HERE SDK release it is planned to allow this also for MapView instances that are created from a layout file. Added MapViewOptions and MapProjection that allow to specify the map projection. Examples:
    • mapView = new MapView(context, new MapViewOptions(MapProjection.GLOBE))
    • mapView = new MapView(context, new MapViewOptions(MapProjection.WEB_MERCATOR))
  • Added MapContext class and added getMapContext() method to MapView. A MapContext is needed when custom data sources for map tiles should be created, such as the new RasterDataSource to support custom raster layers on a MapView.
  • MapView: Added support custom raster layers that can be shown as tile overlay on top of the map. 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. The following classes have been added to support custom raster layers:
    • Added RasterDataSourceFactory which is used to create RasterDataSource objects.
    • Added RasterDataSource which represents the source of raster tile data to display. It also allows changing its configuration.
    • Added RasterDataSourceConfiguration which is used to specify a configuration for the data source, including URL, tiling scheme, storage levels and caching parameters.
    • Added TilingScheme enum which specifies how the tile data has to be interpreted.
    • Added RasterDataSourceListener interface which can be used to receive notifications from the RasterDataSource.
    • Added MapLayer class which represents a renderable map overlay and controls its visibility.
    • Added MapLayerBuilder which is used to create MapLayer objects.
    • Added MapLayerPriority which specifies the order of drawing a map layer.
    • Added MapLayerVisibilityRange which specifies at which zoom levels the map layer will become visible.
    • Added MapContentType which specifies the type of data shown by the MapLayer.
  • Added support for feature configurations that allow to specify how much map data should be loaded when panning the MapView or when downloading a new Region for offline usage. For example, if a feature like turn-by-turn navigation is never used in an application, it can be removed. As a result, when panning the MapView less data will be downloaded into the cache. In addition, when downloading a new Region, its size will be smaller. By default, all features are enabled. However, if a "FeatureConfiguration" is present in the AndroidManifest file, then only the listed features will be enabled, all others will be disabled. If you want to disable only one feature, then all other features need to be present, or they will be also disabled. For example, the following enables only navigation and truck features and disables all others: <meta-data android:name="com.here.sdk.feature_configuration" android:value="NAVIGATION, TRUCK" />. As of now, these features can be specified:
    1. "DETAIL_RENDERING": Additional rendering details like buildings. Only used for the MapView.
    2. "NAVIGATION": Map data that is used for map matching during navigation. When not set, navigation may not work properly when being used offline.
    3. "OFFLINE_SEARCH": Map data that is used to search. When not set, the OfflineSearchEngine may not work properly when being used offline.
    4. "OFFLINE_ROUTING": Map data that is used to calculate routes. When not set, the OfflineRoutingEngine may not work properly when being used offline.
    5. "TRUCK": Map data that is used to calculate truck routes. When not set, the OfflineRoutingEngine may not work properly when being used offline 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.
  • MapView: Added support for textured 3D landmarks. Enable 3D landmarks with the new MapScene.Layers.LANDMARKS constant like so: mapView.getMapScene().setLayerVisibility(MapScene.Layers.LANDMARKS, VisibilityState.VISIBLE). Note that landmarks are only supported for newer map data >= 25, see mapUpdater.getCurrentMapVersion(). To ensure that 3D landmarks are visible, a map update may be required. Once a Region was updated, the map cache will be aligned automatically. Note that landmarks are released as beta.
  • Added HereMap class. Added getHereMap() method to MapView. HereMap is used to initialize a MapLayer that can be used with a MapLayerBuilder to support custom raster layers.
  • Import routes: Added RouteHandle​(String handle) constructor that allows to create a RouteHandle from a given string handle. Such a string can be provided from other backend sources such as HERE REST APIs and it is valid for a couple of hours. The string encodes a calculated route and it can be used to import this route via the newly added method importRoute​(@NonNull RouteHandle routeHandle, @NonNull RefreshRouteOptions refreshRouteOptions, @NonNull CalculateRouteCallback callback) of the RoutingEngine for further use with the HERE SDK. Note: This is a beta release of this feature.
  • Search: Added a default constructor for Address.
  • Added support for BYOD (bring your own data) at runtime when searching for places. It's now possible to inject custom data for places that can be found with the OfflineSearchEngine. Such personal places can be found by regular queries. The results are ranked as other places coming directly from HERE. A new GeoPlace class was introduced that can contain custom place data. Multiple GeoPlace instances can be filled into a new data source called MyPlaces. This data source can be attached to the OfflineSearchEngine with its new attach() method. The added OnTaskCompleted event and TaskOutcome class are used to communicate the result of this asynchronous operation.
  • Added HERE positioning support for Android 12. If an application targets Android SDK version 31 or higher, users need to grant the device's "precise" location. When being prompted, it is not enough to select the "approximate" precision. Therefore, ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION permissions need to be present in a manifest file. HERE positioning needs the fine location permission in order to use GNSS and to make cellular and WiFi scans.
  • OfflineRoutingEngine: Maneuver.getExitSignTexts() is now supported when calculating routes offline.
  • Voice guidance: The ManeuverNotificationOptions have been extended with additional options and a ManeuverNotificationType to filter when voice texts are given:
    • enableDestinationReachedNotification: A flag that indicates whether notifications for destination/stopover reached maneuvers should be generated.
    • enableDoubleNotification: A flag that indicates whether double maneuver notification should be generated.
    • enableHighwayExit: A flag that indicates whether highway exit information should be used when generating notifications.
    • enablePhoneme: A flag that indicates whether phoneme for direction information should be used when generating notifications.
    • enableRoundaboutNotification: A flag that indicates whether notifications for roundabout-related maneuvers should be generated.
    • includedNotificationTypes: List of ManeuverNotificationType for which notifications should be generated.
    • roadNumberUsageOption: An option whether road numbers should be used when generating notifications.
    • signpostDirectionUsageOption: An option whether signpost directions should be used when generating notifications.
    • streetNameUsageOption: An option whether street names should be used when generating notifications.

API Changes

  • The lane assistance API is now stable and the beta status has been removed.
  • Deprecated MilestoneReachedListener, please use the newly introduced MilestoneStatusListener instead.
  • Removed the previously deprecated classes MapCamera.Orientation, MapCamera.OrientationUpdate, MapCamera.State.targetOrientation and all methods using them. Use instead the new methods that use the new classes GeoOrientation, GeoOrientationUpdate and MapCamera.State.orientationAtTarget. For example, instead of the removed method MapCamera.lookAt(GeoCoordinates target, MapCamera.OrientationUpdate orientation, double distanceInMeters) use now MapCamera.lookAt(GeoCoordinates target, GeoOrientationUpdate orientation, double distanceInMeters).
  • Removed the previously deprecated GeoCorridor.radiusInMeters property. Use the new property GeoCorridor.halfWidthInMeters instead.
  • Removed the previously deprecated FarePrice.unit property. Use instead the FarePrice.validityPeriodInSeconds property.
  • Removed the previously deprecated Agency.icon property. This feature is no longer supported.
  • Replaced usage of java.time.Duration with com.here.time.Duration across the HERE SDK. This ensures that the HERE SDK stays compatible with Android API level 21. Note that com.here.time.Duration is a subset of java.time.Duration and behaves identically.
  • Removed the previously deprecated map schemes: "preview.normal.day.json", "preview.normal.night.json", "preview.hybrid.day.json", "preview.hybrid.night.json". Use corresponding standard schemes instead: MapScheme.NORMAL_DAY, MapScheme.NORMAL_NIGHT, MapScheme.HYBRID_DAY, MapScheme.HYBRID_NIGHT.
  • Removed the previously deprecated LaneAssistanceListener. Use instead ManeuverViewLaneAssistanceListener.
  • Deprecated the method MapScene.setLayerState(String layerName, MapScene.LayerState newState). Use the new method MapScene.setLayerVisibility(String layerName, VisibilityState visibility) instead. Deprecated the enum MapSceneLayerState. Use the enum VisibilityState instead. Deprecated the enum MapScene.LayerState. Use the enum VisibilityState instead.

Resolved Issues

  • Voice guidance: Fixed errors for Hindi and Korean voice packages, which were causing missing notifications for some cases.
  • Fixed: During navigation, sometimes turn now maneuver notifications are provided too early.
  • Fixed LocationIndicator position on the screen when the MapView is tilted.
  • Routing: It is now possible to set a stop duration for each waypoint so that a better overal ETA can be given. Added 'durationInSeconds' property to Waypoint. It defaults to 0. Note that it will be ignored for pass-through waypoints.
  • Fixed: MapViewLifecycleListener.onAttach() is now called once MapView has been fully initialized.
  • LocationSimulatorOptions.notificationIntervalInMilliseconds: Fixed issues with too short notification intervals. Values less than 1 ms are clamped to 1 ms to guarantee normal location updates during guidance simulation.
  • Fixed: HERE Positioning / LocationEngine does not work yet with Android 12.
  • Fixed: During navigation, the number of sections within RouteProgress may not match the number of sections within the Route. A new MilestoneStatusListener has been added that informs if a milestone has been reached or missed.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Transparency for MapPolylines is not supported.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Navigation: Maneuver voice notifications are sometimes triggered too early.
  • Outlines for MapPolyine lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • Truck routes that are imported via importRoute() may be result in a RoutingError.NO_ROUTE_FOUND error as certain truck restrictions may be violated along the road. This is incorrect and instead the resulting route should contain the violated restrictions as part of the route's SectionNotice.
  • Offline maps: When the same Region is downloaded multiple times, then multiple attempts to download the data are being made instead of answering with an error that a download for this Region is already in progress.
  • When cachePath and persistentMapStoragePath are changed via SDKOptions, then it may not change the default path.

Version 4.9.4.0

New Features

  • Routing: Introduced Departure and Arrival time for each Section of a Route.
  • Routing: Added support for bicycles. Now it is possible to create bicycle routes online with the RoutingEngine using BicycleOptions. Added also TransportMode.bicycle.
  • Routing: Added optional field nameHint to Waypoint. For cases when there are multiple places at the same geographic coordinate, this hint can help the RoutingEngine to find the expected place. For example, "North" can be set to differentiate between interstates "I66 North" and "I66 South".
  • Routing: It's now possible to set TaxiOptions.allowDriveThroughTaxiRoads. It allows to calculate routes that make use of roads and lanes that are reserved for taxis.
  • Bicycle routes are now also supported for turn-by-turn navigation and tracking.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route. In rare cases, this can lead to missed milestone reached events.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Navigation: Maneuver voice notifications are sometimes triggered too early.
  • Outlines for MapPolyine lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • Navigation: Sometimes turn now maneuver notifications are provided too early.
  • HERE Positioning / LocationEngine does not work yet with Android 12. Support is planned with HERE SDK 4.10.
  • Truck routes that are imported via importRoute() may be result in a RoutingError.NO_ROUTE_FOUND error as certain truck restrictions may be violated along the road. This is incorrect and instead the resulting route should contain the violated restrictions as part of the route's SectionNotice.

Version 4.9.3.0

New Features

  • OfflineRoutingEngine: Added support for notice spans - as already known from the online RoutingEngine.
  • Added new map layer with MapScene.Layers.SAFETY_CAMERAS to show safety camera icons on the map.
  • The visibility of embedded carto POIs on the map can now be controlled with the new static method MapScene.setPoiVisibility(@NonNull List<String> categoryIds, @NonNull final VisibilityState visibility) to set a VisibilityState for a list of POI categories.

Resolved Issues

  • OfflineRoutingEngine: For truck routes now a SectionNotice with violated restrictions is provided instead of a route calculation resulting in a RoutingError.
  • Navigation: Improved tunnel extrapolation during tracking mode.
  • Fixed: Picking map features such as embedded POIs and map items via mapView.pickMapItems and mapView.pickMapFeatures is currently not possible at the same time.
  • Fixed enterHigway maneuver action which was incorrectly reported as turn left / right instead of left / right fork.
  • Fixed: Changing SpeedLimit values are now detected correctly during a trip.
  • Fixed: Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • Fixed: The traffic layers MapScene.Layers.TRAFFIC_FLOW and MapScene.Layers.TRAFFIC_INCIDENTS may not be instantly visible when starting an app for the first time.
  • Fixed: Setting the map layer VEHICLE_RESTRICTIONS is currently ignored and the layer is not visible.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route. In rare cases, this can lead to missed milestone reached events.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Navigation: Maneuver voice notifications are sometimes triggered too early.
  • Outlines for MapPolyine lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • Navigation: Sometimes turn now maneuver notifications are provided too early.
  • HERE Positioning / LocationEngine does not work yet with Android 12. Support is planned with HERE SDK 4.10.

Version 4.9.2.0

New Features

  • Added LocationIndicator.updateLocation(Location location, MapCameraUpdate cameraUpdate) to update the location of the indicator and the target coordinates of the MapView at the same time - for example, when tracking the user's location.
  • Offline Routing: Enabled a property for RouteOptions that allows to set an upper limit of the driving speed of a vehicle: speedCapInMetersPerSecond is available for car and truck transport modes. It can affect route path and ETA. Note that this property was already available for online routing.
  • Added feature to observe when a MapCamera animation or flyTo()-call has completed: Added AnimationListener interface, AnimationState enumeration and MapCamera.startAnimation().
  • Added a feature to pick embedded carto POIs. By default, embedded POIs are visible on the map and they can be picked now via mapView.pickMapFeatures() to get a PickMapFeaturesResult that contains a PoiResult. Check the Developer's Guide for a usage example.
  • Added a convenience feature to tie a LocationIndicator directly to the MapView's life cycle'. For example, be calling the new enable() method, the LocationIndicator is visible on the map. This has the same affect as when calling mapView.addLifecycleDelegate(locationIndicator). Added constructor LocationIndicator(@NonNull final MapViewBase mapView), added methods LocationIndicator.enable(@NonNull final MapViewBase mapView), LocationIndicator.disable()
  • MapMarkerCluster items can now be picked - and when picking other map items, clustered markers are no longer returned via pickMapItemsResult.getMarkers(). Instead, call the new pickMapItemsResult.getClusteredMarkers() method. See the MapItems example app and the Developer's Guide for a usage example.

Resolved Issues

  • VisualNavigator: Fixed out of sync maneuver arrows after a route recalculation.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route. In rare cases, this can lead to missed milestone reached events.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • Navigation: Maneuver voice notifications are sometimes triggered too early.
  • The traffic layers MapScene.Layers.TRAFFIC_FLOW and MapScene.Layers.TRAFFIC_INCIDENTS may not be instantly visible when starting an app for the first time.
  • Outlines for MapPolyine lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • Setting the map layer VEHICLE_RESTRICTIONS is currently ignored and the layer is not visible.
  • Picking map features such as embedded POIs and map items via mapView.pickMapItems and mapView.pickMapFeatures is currently not possible at the same time.

Version 4.9.1.0

New Features

  • Offline routing: Added PreActions and PostActions handling related to a time needed to board/disembark a ferry.
  • Added removeMapMarkers() method to MapScene class. It removes multiple map markers in a batch call.

API Changes

  • Removed deprecated tag for PERSISTENT_MAP_STORAGE_FOLDER_ACCESS_DENIED. PERSISTENT_MAP_STORAGE_FOLDER_ACCESS_DENIED is not deprecated anymore.
  • Deprecated MapCamera.FlyToOptions.durationInMs, use MapCamera.FlyToOptions.duration instead.

Resolved Issues

  • Fixed: Route imports no longer fail when Location.time is set.
  • Navigation: Fixed location jumps after leaving tunnels.
  • ReturnToRoute: Fixed rerouting during navigation. It considers now the original RouteOptions.
  • Offline routing: Fixed missing country code value for Maneuver class.
  • Fixed: VisualNavigator now restores/removes map items when attaching or detaching a mapview.
  • Fixed navigation issues when obsolete GPS locations where being queued and processed after new locations were already available.
  • Fixed: Navigation now prefers the optional Location.time when set.
  • Fixed: VisualNavigator now updates MapView based on events sent by MapViewLifecycleListener. This prevents that tracking is stopped after coming back to foreground.
  • Fixed a short pink screen, that can appear before the first display of a MapView.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route. In rare cases, this can lead to missed milestone reached events.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • Navigation: Maneuver voice notifications are sometimes triggered too early.
  • MapMarkerCluster groups are not directly pickable yet. As a workaround, overlapping markers can be identified by setting a unique Metadata key to the contained MapMarker items of a cluster. See the MapItems app for an example.
  • The traffic layers MapScene.Layers.TRAFFIC_FLOW and MapScene.Layers.TRAFFIC_INCIDENTS may not be instantly visible when starting an app for the first time.
  • Outlines for MapPolyine lines can show a minimal gap at certain zoom levels. As a workaround use a round LineCap style.
  • Setting the map layer VEHICLE_RESTRICTIONS is currently ignored and the layer is not visible.

Version 4.9.0.0

New Features

  • Added new animation features to MapCamera with startAnimation(MapCameraAnimation), EasingFunction and KeyframeInterpolationMode. Added related classes GeoCoordinatesKeyframe, GeoOrientationKeyframe, Point2DKeyframe, ScalarKeyframe, MapCameraAnimation, MapCameraAnimationFactory and MapCameraKeyframeTrack.
  • Routes can now be imported: Added routingEngine.importRoute() to import a route from a list of GeoCoordinates and RouteOptions.
  • Added support for map marker clustering with the new classes MapMarkerCluster and MapMarkerCluster.ImageStyle. A marker cluster can be added/removed with MapScene.addMapMarkerCluster()/MapScene.emoveMapMarkerCluster. See the MapItems example app for a usage example.
  • Search: Added support for offline Suggestion results. Check the SearchHybrid example app for a usage example.
  • Added optional field time to Location class to specify the time when the location data was set.
  • Batch support for MapMarker: Added method to add multiple MapMarker items at once. With mapScene.addMapMarkers() a list of MapMarker items can be added to a MapScene with a single batch call.
  • Search: Added PlaceType.INTERSECTION to indicate an intersection of at least two streets. Note: This is a beta feature.

API Changes

  • Removed the previously deprecated constructor in Location class. Use one of the other available contructors instead.
  • Removed the previously deprecated MapRepresentable interface and addMapRepresentable and removeMapRepresentable methods from MapView and MapSurface. Use the MapViewLifecycleListener instead.
  • Removed the previously deprecated NavigableLocation.streetName and NavigableLocation.speedLimitInMetersPerSecond properties. Use the RoadTextsListener and SpeedLimit instead.
  • Map schemes: Removed the previously deprecated scene configuration files: "legacy.grey.day.json", "legacy.grey.night.json", "legacy.hybrid.day.json", "legacy.hybrid.night.json", "legacy.normal.day.json", "legacy.normal.night.json". Use the related MapSchemes instead.
  • Removed the previously deprecated Notice class, NoticeCode enum and Section.getNotices() method. Use SectionNoticeCode, SectionNotice class and Section.getSectionNotices() method instead.
  • Search: Removed the following fields from Address class that have been previously deprecated: stateName, countyName, streetName, additionalData. Please use state, county and street instead. The field additionalData was already unused.
  • Removed the previously deprecated MapLoaderError.DUPLICATE_CATALOG. Now MapLoaderError.INTERNAL_ERROR is returned in case of a duplicated catalog.
  • Search: Removed the perviously deprecated OPTION_NOT_AVAILABLE value from the SearchError enum. It was replaced by the SearchError.INVALID_PARAMETER value.
  • Removed the previously deprecated GREY_DAY and GREY_NIGHT from MapScheme enum. Use the normal map scheme variants instead.
  • Removed the previously deprecated LocationUpdateListener class. LocationListener should be used instead.
  • Deprecated field timestamp in Location class, please use the newly introduced time field instead.

Resolved Issues

  • Improved guidance user experience: Now incoming locations are discarded if the processing of previous location updates has not yet been completed.
  • Fixed: Sometimes, physical road dividers are not considered for offline routing.
  • Navigation: Fixed flickering of LocationIndicator.
  • Fixed: Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Fixed: MapUpdater: After initial download of a region a newer version is already available for download.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route. In rare cases, this can lead to missed milestone reached events.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • Navigation: Maneuver voice notifications are sometimes triggered too early.
  • MapMarkerCluster groups are not directly pickable yet. As a workaround, overlapping markers can be identified by setting a unique Metadata key to the contained MapMarker items of a cluster. See the MapItems app for an example.
  • The traffic layers MapScene.Layers.TRAFFIC_FLOW and MapScene.Layers.TRAFFIC_INCIDENTS may not be instantly visible when starting an app for the first time.

Version 4.8.4.0

New Features

  • Navigation: Added distanceType to SafetyCameraWarning and TruckRestrictionWarning. It tells if the event is ahead or was just passed by.
  • Routing: Added getDurationInSeconds method to the Maneuver class to get the estimated duration of a maneuver.
  • Added new factory method for DMS and decimal GeoCoordinates to convert one into the other with GeoCoordinates.fromString().
  • Added support for Android Auto. Now it's possible to render the MapView onto a provided surface with the newly added class MapSurface.
  • Search: Added ResponseDetails as result type that provides the requestId of a search request and a correlationId to identify multiple, related queries.
  • Routing: Added a static fromString method to SegmentReference to generate instances of this class from a well-formatted String. Usually, SegmentReference instances are only accessible from the Span of a Route's Segment.

API Changes

  • Routing: For the new toll cost API, now the newly added RouteOptions.enableTolls flag must be set to get toll costs. It is set to false by default. When this flag is enabled, toll data is requested for toll applicable transport modes.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route. In rare cases, this can lead to missed milestone reached events.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • MapUpdater: After initial download of a region a newer version is already available for download.
  • Navigation: Maneuver voice notifications are sometimes triggered too early.

Version 4.8.3.0

New Features

  • Public transit routes: Added support for new PEDESTRIAN sections to provide better information on in-station walks, for example, when walking from a place of type ACCESS_POINT type to a place of type STATION.
  • Routing: Added RouteOptions.enableTrafficOptimization field which is true by default, and when set to false, it doesn't consider traffic information and ignores RouteOptions.departureTime.
  • Routing: It's now possible to avoid individual segments on a Route. With the newly added segments field in AvoidanceOptions users can specify the parts of a route they would like to avoid after a recalculation. The segments can be identified via Route -> Section -> Span -> SegmentReference.
    • Added SegmentReference class that represents a reference to a segment id with a travel direction.
    • Added getSegmentReference method to the Span class.
    • Added TravelDirection enum that indicates the travel direction along a segment.
  • Offline routing: When using OfflineRoutingEngine.returnToRoute() the new route contain now the initial RouteHandle.
  • Added enhanced APIs to control the MapCamera with the new classes MapCameraUpdate, MapCameraUpdateFactory and MapMeasure. Added the applyUpdate method to MapCamera that accepts a MapCameraUpdate as parameter.
  • Added VIOLATED_AVOID_SEASONAL_CLOSURE, VIOLATED_AVOID_TOLL_TRANSPONDER, SEASONAL_CLOSURE, TOLL_TRANSPONDER, TOLLS_DATA_UNAVAILABLE and CHARGING_STOP_NOT_NEEDED symbols to the SectionNoticeCode enum.
  • Navigation: Voice guidance now supports four additional regional languages in India: Bengali, Kannada, Malayalam, and Telugu.

API Changes

  • Transit routes no longer provide fare information and the TransitSectionDetails.fares list is always empty.
  • Routing: Deprecated SectionNoticeCode.VIOLATED_PEDESTRIAN_OPTION symbol. It will be removed in v4.11.0 as it is no longer supported.
  • Deprecated PERSISTENT_MAP_STORAGE_FOLDER_ACCESS_DENIED and FAILED_TO_LOCK_PERSISTENT_MAP_STORAGE_FOLDER values from the InstantiationErrorCode enum. The persistent storage directory is no longer locked.

Resolved Issues

  • Fixed: Missing language support for no-NB and pt-BR for distant maneuver notifications.
  • Fixed: It is not possible to set both RouteOptions.departureTime and RouteOptions.arrivalTime at the same time. Plus, RouteOptions.arrivalTime is ignored when RouteOptions.enableTrafficOptimization is set to false.
  • Voice navigation: For Russian maneuver notifications, the abbreviations and declensions handling has been fixed.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route. In rare cases, this can lead to missed milestone reached events.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • MapUpdater: After initial download of a region a newer version is already available for download.
  • Navigation: Maneuver voice notifications are sometimes triggered too early.

Version 4.8.2.0

New Features

  • Improved search for electric vehicle charging stations: Added classes EVChargingPool and EVChargingStation. A charging pool for electric vehicles is an area equipped with one or more charging stations. A charging station defines a group of connectors for electrical vehicles that share a common charging connector type and max power level. Note: This is a beta feature.
  • Navigation: Improved TruckRestrictionWarning and SafetyCameraWarning events. With the new WarningType you can now get notified if the location of the truck restriction or the safety camera lies ahead or if it was just passed by.
  • Improved search for electric vehicle charging stations: Added property Details.evChargingPool that represents the details of the charging pool for electric vehicles. Note: This is a beta feature.
  • Routing: Added information on toll costs with a new PaymentMethod enum, TollFare & Toll classes and Section.getTolls() method. Note: This is a beta feature.

API Changes

  • Deprecated DynamicRoutingListener which is replaced by the newly introduced DynamicRoutingEngineListener. The listener is now set with the new DynamicRoutingEngine.start(route, listener) method which can throw a StartException if no RouteHandle was requested for the route. Route calculation errors are propagated via the newly added DynamicRoutingListener.onRoutingError(). Check the Navigation example app for a usage example.

Resolved Issues

  • ReturnToRoute: Fixed rare cases that could lead to a crash or invalid maneuvers when the feature was used offline.
  • Corrected the Hindi translation for "yards".
  • Navigation: Corrected the Greek translation of the "turn sharp" maneuver notification.
  • ReturnToRoute during navigation: Fixed possible negative values for maneuver lengths and removed maneuvers with no geometry for cases when returnToRoute was called multiple times. As a benefit, now a longer part of the original route can be preserved.
  • Fixed: In rare cases, Storage.LevelDB related crashes can occur when starting the app.
  • Fixed: Voice navigation: The voice announcements for multiple speed cameras that are very close to each other are delivered for both cameras at the same time, so that the first event may be skipped.
  • Fixed: Navigation: When using JunctionViewLaneAssistance for very long routes then a significant delay can occur before navigation is actually started. Currently, this happens because the entire route is traversed beforehand.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route. In rare cases, this can lead to missed milestone reached events.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • MapUpdater: After initial download of a region a newer version is already available for download.
  • Navigation: Maneuver voice notifications are sometimes triggered too early.

Version 4.8.1.0

New Features

  • Offline Maps: Extended the MapDownloader to check for broken maps with getInitialPersistentMapStatus(). Added also repairPersistentMap(), so that broken maps can be repaired asynchronously. Check the Developer's Guide or the OfflineMaps example app for a usage example.
  • Routing: Added NoRouteHandle enum value to RoutingError to indicate that the route did not contain the required RouteHandle, which is needed, for example, to refresh a route.
  • Search: Added new name property to PlaceCategory that provides a level 3 description.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route. In rare cases, this can lead to missed milestone reached events.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • MapUpdater: After initial download of a region a newer version is already available for download.
  • In rare cases, Storage.LevelDB related crashes can occur when starting the app.
  • Voice navigation: The voice announcements for multiple speed cameras that are very close to each other are delivered for both cameras at the same time, so that the first event may be skipped.
  • Navigation: When using JunctionViewLaneAssistance for very long routes then a significant delay can occur before navigation is actually started. Currently, this happens because the entire route is traversed beforehand.

Version 4.8.0.0

New Features

  • Truck navigation: Added a listener for TruckRestrictionWarning to the Navigator and VisualNavigator, which is called at a specific distance while navigating along a route in order to warn about a truck restrictions ahead. It can contain multiple truck restrictions. For now, the following restrictions are possible: WeightRestriction and DimensionRestriction. Check the Navigation example app for an usage example.
  • Lane assistance: Added a JunctionViewLaneAssistance listener to Navigator and VisualNavigator that informs on the possible lanes and complex junctions.

API Changes

  • Deprecated MapCamera.Orientation - replaced with GeoOrientation.
  • Deprecated MapCamera.OrientationUpdate - replaced with GeoOrientationUpdate.
  • Deprecated MapCamera.State.targetOrientation - replaced with MapCamera.State.orientationAtTarget.
  • Deprecated MapCamera.flyTo(GeoCoordinates target, MapCamera.OrientationUpdate orientation, double distanceInMeters, MapCamera.FlyToOptions animationOptions) - replaced with MapCamera.flyTo(GeoCoordinates target, GeoOrientationUpdate orientation, MapCamera.FlyToOptions animationOptions).
  • Deprecated MapCamera.flyTo(GeoCoordinates target, MapCamera.OrientationUpdate orientation, MapCamera.FlyToOptions animationOptions) - replaced with MapCamera.flyTo(GeoCoordinates target, MapCamera.OrientationUpdate orientation, MapCamera.FlyToOptions animationOptions).
  • Deprecated MapCamera.flyTo(GeoCoordinates target, MapCamera.OrientationUpdate orientation, MapCamera.FlyToOptions animationOptions) - replaced with MapCamera.lookAt(GeoBox target, GeoOrientationUpdate orientation).
  • Deprecated MapCamera.lookAt(GeoCoordinates target, MapCamera.OrientationUpdate orientation, double distanceInMeters) - replaced with MapCamera.lookAt(GeoCoordinates target, MapCamera.OrientationUpdate orientation, double distanceInMeters).
  • Deprecated MapCamera.orbitBy(MapCamera.OrientationUpdate delta, Point2D origin) - replaced with MapCamera.orbitBy(GeoOrientationUpdate delta, Point2D origin).
  • Deprecated MapCamera.setTargetOrientation(MapCamera.OrientationUpdate orientation) - replaced with MapCamera.setOrientationAtTarget(GeoOrientationUpdate orientation).
  • Deprecated MapCamera.setOrientationAtTarget(GeoOrientationUpdate orientation) - replaced with MapCamera.lookAt(GeoBox target, GeoOrientationUpdate orientation, Rectangle2D viewRectangle).
  • Removed the previously deprecated updateGeometry() method from MapPolyline and MapPolygon.
  • Search: Removed previously deprecated fields in Contact: emailAddresses, landlinePhoneNumbers, mobilePhoneNumbers, websiteAddresses.
  • Routing: Removed the previously deprecated Arrival and Departure classes.
  • Changed the DynamicRoutingEngine event from etaDifferenceInMinutes to etaDifferenceInSeconds.

Resolved Issues

  • Navigation: Fixed a problem where intense CPU usage and memory consumption was observed for some routes when an application was listening for SpeedLimits.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • MapUpdater: After initial download of a region a newer version is already available for download.
  • In rare cases, Storage.LevelDB related crashes can occur when starting the app.
  • Voice navigation: The voice announcements for multiple speed cameras that are very close to each other are delivered for both cameras at the same time, so that the first event may be skipped.

Version 4.7.7.0

New Features

  • Search: Added politicalView member to Place class. The optional value can be checked if it is matching the one that was set beforehand via SDKOptions.
  • MapUpdater: The current map version of a downloadable region is now exposed. This can be useful for debugging potential map data issues.
  • Added a new DynamicRoutingEngine that allows to periodically request traffic-optimized routes. This can be useful to notify users on better routes while staying in a route planner or during a guidance context when the traffic situation has changed.

API Changes

  • The map styles for NORMAL_DAY, NORMAL_NIGHT, HYBRID_DAY and HYBRID_NIGHT have been updated to the ones that have been made available as preview beforehand. The new map styles feature a clean and neutral base map and a street network with improved gray scales that allow a better hierarchy of elements that can be added on top.
  • MapView: "Simplified Chinese", "Traditional Taiwan" and "Traditional Hong Kong" language labels are now supported.
  • Routing: Updated the API for the returnToRoute and refreshRoute features for RoutingEngine and OfflineRoutingEngine:
    • Changed the parameter order of RoutingInterface.returnToRoute(): The startingPoint parameter is now the second parameter, not the third parameter. The feature is still in beta.
    • Added a startingPoint parameter to the RoutingEngine.refreshRoute() method. In return, deleted RefreshRouteOptions.updateStartingPoint(). The feature is still in beta.
    • Deleted the ReturnToRouteEngine. Use the newly introduced RoutingInterface.returnToRoute() method instead.

Resolved Issues

  • Fixed: A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • Fixed: When MapMarker.setOverlapAllowed() is set to false and the map is zoomed, this can lead to a flickering of the marker assets.
  • Fixed: Navigation: In some cases, speed limit data may be missing, although it is available in HERE's database.
  • VisualNavigator: An issue was fixed, where in a rare conditions map matched positions are temporarily missing between interpolations causing the map to rotate to a wrong direction or to not rotate at all.
  • The VisualNavigator now renders correctly, even if the principal point of the map view was changed by an application.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • In rare cases, when an app is started a cache lock error indicated by InstantiationErrorCode.FAILED_TO_LOCK_CACHE_FOLDER or InstantiationErrorCode.FAILED_TO_LOCK_PERSISTENT_MAP_STORAGE_FOLDER can happen when another app process is locking the map cache. At the moment, this can only be resolved by reinstalling the app or by calling InitProvider.destroyLockingProcess(sdkOptions, timeoutInMs) before initializing the HERE SDK.
  • MapUpdater: After initial download of a region a newer version is already available for download.

Version 4.7.6.0

New Features

  • Offline maps: Added MapUpdater class that allows to update previously downloaded regions. It also allows to check if one or more updates are available. A usage example can be seen in the OfflineMaps example app.
  • Improved map rendering performance on low end devices.
  • Navigation: Added support for Serbian voice maneuver notifications during guidance.

Resolved Issues

  • Fixed: Offline maps: Some downloadable region names are not fully localized yet.
  • Fixed: Offline routing: Offline routes cannot be calculated in Japan.
  • Offline Maps: A retryable error is not returned via MapDownloader.onPause(), instead the download is stopped and must be restarted instead of resumed.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • When MapMarker.setOverlapAllowed() is set to false and the map is zoomed, this can lead to a flickering of the marker assets.
  • In rare cases, when an app is started a cache lock error indicated by InstantiationErrorCode.FAILED_TO_LOCK_CACHE_FOLDER or InstantiationErrorCode.FAILED_TO_LOCK_PERSISTENT_MAP_STORAGE_FOLDER can happen when another app process is locking the map cache. At the moment, this can only be resolved by reinstalling the app or by calling InitProvider.destroyLockingProcess(sdkOptions, timeoutInMs) before initializing the HERE SDK.
  • Navigation: In some cases, speed limit data may be missing, although it is available in HERE's database.

Version 4.7.5.0

New Features

  • Routing: Added avoidance options for pedestrians with PedestrianOptions.avoidanceOptions.
  • Search: Added support to search along longer route polylines with a GeoCorridor. Either increase halfWidthInMeters when set via constructor or do not set it - by using the GeoCorridor constructor that only allows to set the GeoPolyline. The parameter radiusInMeters has been deprecated: Please only use halfWidthInMeters as constructor parameter to specify the thickness of the route corridor. When increasing halfWidthInMeters then a greater simplification of the polyline shape can be achieved resulting in a longer route that can be searched along. On the downside the results are less accurate and can lie farther away from the route. When halfWidthInMeters is not set, a suitable value is set internally based on "best guess".
  • The LocationIndicator now supports a gray state that can be set via LocationIndicator.isActive(boolean).
  • Navigation: Added support for Vietnamese voice maneuver notifications during guidance.
  • Navigation: Added a RoadAttributesListener that informs on the following new road attributes: isDirtRoad, isTunnel, isBridge, isRamp, isControlledAccess, isPrivate, isNoThrough, isTollway, isDividedRoad, isRightDrivingSide, isRoundabout.
  • Offline routing now also supports AvoidanceOptions for rectangular areas.
  • Offline maps: Added more granular error states to MapLoaderError.

Resolved Issues

  • VisualNavigator: The camera now moves instantly to the initial location when the first Location update is received.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Offline maps: Some downloadable region names are not fully localized yet.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • Offline routing: Offline routes cannot be calculated in Japan.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.countries are currently ignored.
  • When MapMarker.setOverlapAllowed() is set to false and the map is zoomed, this can lead to a flickering of the marker assets.
  • Offline Maps: A retryable error is not returned via MapDownloader.onPause(), instead the download is stopped and must be restarted instead of resumed.
  • In rare cases, when an app is started a cache lock error indicated by InstantiationErrorCode.FAILED_TO_LOCK_CACHE_FOLDER or InstantiationErrorCode.FAILED_TO_LOCK_PERSISTENT_MAP_STORAGE_FOLDER can happen when another app process is locking the map cache. At the moment, this can only be resolved by reinstalling the app.
  • Navigation: In some cases, speed limit data may be missing, although it is available in HERE's database.

Version 4.7.4.0

New Features

  • Routing: Added TruckType enum to specify the type of a truck for the TruckSpecifications.
  • Routing: Added TruckSpecifications.trailerCount to specify the number of trailers.
  • Routing: Added accessPoint to RoutePlaceType enum. It allows to differentiate Section's based on RoutePlace.type.
  • Public transit: Added FarePriceType enum, FarePrice.type, FarePrice.minimum and FarePrice.maximum properties. FarePrice provides the actual price value.

API Changes

  • Gestures: A finger down gesture stops now any ongoing animation including kinetic panning.
  • Offline maps: Added ALREADY_INSTALLED enum value to MapLoaderError. Now, downloading an existing map region will result in ALREADY_INSTALLED error instead of getting a SUCCESS.
  • Routing: Deprecated FarePrice.unit, use the newly introduced FarePrice.validityPeriodInSeconds property instead.
  • Routing: Deprecated the unsupported Agency.icon property. This property is no longer supported and will be removed with HERE SDK release v4.10.0.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Offline maps: Some downloadable region names are not fully localized yet.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • Offline routing: Offline routes cannot be calculated in Japan.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.avoidAreas and AvoidanceOptions.countries are currently ignored.
  • When MapMarker.setOverlapAllowed() is set to false and the map is zoomed, this can lead to a flickering of the marker assets.
  • Offline Maps: A retryable error is not returned via MapDownloader.onPause(), instead the download is stopped and must be restarted instead of resumed.

Version 4.7.3.0

New Features

  • Routing: Added support for EVCarOptions and EVTruckOptions for the RefreshRouteOptions class.
  • EV Routing: Added new parameters to BatterySpecifications:
    • minChargeAtChargingStationInKilowattHours: The minimum charge when arriving at a charging station.
    • minChargeAtDestinationInKilowattHours: The minimum charge at the final route destination.
    • maxChargingVoltageInVolts: The maximum charging voltage supported by the vehicle's battery.
    • maxChargingCurrentInAmperes: The maximum charging current supported by the vehicle's battery.
    • chargingSetupDurationInSeconds: The time spent after arriving at a charging station, but before actually charging.
  • SearchEngine: For reverse geocoding it is now possible to search in a GeoCircle with search(GeoCircle circle, SearchOptions options, SearchCallback callback).

API Changes

  • Navigation: Deprecated the LaneAssistance class and the related Navigator.set/getLaneAssistanceListener() methods. Use the newly introduced ManeuverViewLaneAssistance class and the Navigator.set/getManeuverViewLaneAssistanceListener() instead.

Resolved Issues

  • Fixed: Offline routing - RouteOptions are currently ignored completely and only default values will be used.
  • Fixed: ReturnToRouteEngine: The guidance maneuver at the merging point between the new route and the old route is not properly generated.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Offline maps: Some downloadable region names are not fully localized yet.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • Offline routing: Offline routes cannot be calculated in Japan.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Offline routing: For RouteOptions: AvoidanceOptions.avoidAreas and AvoidanceOptions.countries are currently ignored.
  • When MapMarker.setOverlapAllowed() is set to false and the map is zoomed, this can lead to a flickering of the marker assets.

Version 4.7.2.0

New Features

  • Added a feature to refresh a Route: Added the RouteOptions.enableRouteHandle flag to get a RouteHandle, a RefreshRouteOptions class and a RoutingEngine.refreshRoute() method. Note that currently EVRouteOptions are not supported. See the related chapter in the Developer's Guide for more information.
  • LocationIndicator: Added a new style for pedestrians. The new style is added to IndicatorStyle and can be set to a LocationIndicator instance to switch the default 3D map marker model to indicate the current heading and location. Optionally, the style can be customized.
  • Added an option to affect FPS rendering of the map view by decreasing or increasing the frameRate with MapView.get/setFrameRate(). This can be useful to reduce CPU usage for low end devices. The default FPS is 60 frames per second. It is also possible to deactivate automatic render cycles by setting FPS to 0.
  • Offline maps: Added MapDownloader.clearPersistentMapStorage() to clear the persistent storage to remove all downloaded map data.
  • Simplified usage of special speed limits: Now the lowest current special speed limit is optionally exposed via effectiveSpeedLimitInMetersPerSecond(). It's no longer necessary to set a Date(), the HERE SDK handles this now internally based on the device's clock settings. The related APIs (TimeDomain, SpecialSpeedSituationType, SpecialSpeedSituation) have been deprecated. Added the following new fields to the SpeedLimit class:
    • @Nullable Double advisorySpeedLimitInMetersPerSecond
    • @Nullable Double snowSpeedLimitInMetersPerSecond
    • @Nullable Double rainSpeedLimitInMetersPerSecond
    • @Nullable Double fogSpeedLimitInMetersPerSecond
    • @Nullable Double schoolZoneSpeedLimitInMetersPerSecond
    • @Nullable Double timeDependentSpeedLimitInMetersPerSecond

API Changes

  • MapDownloader: Added new pause / resume events to DownloadRegionsStatusListener to know when a download of a region or a list of regions was paused or resumed. Introduced these two new methods: void onPause(@Nullable MapLoaderError error) and void onResume(). The error is populated when the download was paused by the MapDownloader due to a retryable error.
  • VisualNavigator rendering is, by default, smooth again with a target frame rate set to 60 FPS. This can be adjusted for low end devices. See the frameRate setting for MapView.

Resolved Issues

  • Fixed: MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • Fixed: Offline maps: Once any download for a Region fails or is cancelled, all already downloaded regions will be deleted as well.

Known Issues

  • The VisualNavigator API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Offline maps: Some downloadable region names are not fully localized yet.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: RouteOptions are currently ignored completely and only default values will be used.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • Offline routing: Offline routes cannot be calculated in Japan.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • ReturnToRouteEngine: The guidance maneuver at the merging point between the new route and the old route is not properly generated.

Version 4.7.1.0

Highlights

  • Added a default 3D LocationIndicator to show the current location and travel direction of a user. It can be added to the map view with MapView.addMapLifecycleListener(). Update its location via Mapview.updateLocation() that accepts a Location as parameter. The look of the default asset can be customized by setting a MapMarker3DModel as parameter to LocationIndicator.setMarker3dModel(). You can also specify the MarkerType: In the future, it may be used to enable different styles of markers for different use cases.
  • Introduced customizable visual navigation. Added CameraSettings that can be set for VisualNavigator. You can specify cameraDistanceInMeters to define the distance to earth, the cameraTiltInDegrees to specify the 3D effect (a value of 0 switches to a flat 2D view) and cameraBearingInDegrees which can be set to null to rotate the map into the travel direction (any other value will stop the rotation - for example, set it to 0 to enable north up mode). By default, rotations are enabled.

New Features

  • Introduced taxi routes. Added TransportMode.TAXI type and a TaxiOptions class to calculate routes optimized for taxis via RoutingEngine.calculateRoute(). Note: This is a beta release of this transport mode, so there could be a few bugs and unexpected behaviors.
  • Routing: Added RouteOptions.speedCapInMetersPerSecond to limit the maximum allowed speed for a vehicle. When set, the route duration will be shorter for car and truck transport modes. For scooter routes it may also affect the route geometry. Other transport modes are ignored.

Resolved Issues

  • Fixed: Public transit routes do not contain maneuvers.

Known Issues

  • The VisualNavigator API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Offline maps: Once any download for a Region fails or is cancelled, all already downloaded regions will be deleted as well.
  • Offline maps: Some downloadable region names are not fully localized yet.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: RouteOptions are currently ignored completely and only default values will be used.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • Offline routing: Offline routes cannot be calculated in Japan.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • ReturnToRouteEngine: The guidance maneuver at the merging point between the new route and the old route is not properly generated.

Version 4.7.0.0

Highlights

  • Introduced public transit routing with a new TransitRoutingEngine that can calculate public transit routes. It uses TransitWaypoint type waypoints and a TransitRouteOptions class to specify various transit related options. Note that the API is in an early development stage. More features and overall stabilization are planned for the next releases.
  • Added a new VEHICLE_RESTRICTIONS layer to MapScene. It can be activated with MapScene.setLayerState() and it shows the current vehicle restrictions on the map. For example, weight or height restrictions for trucks at bridges.

New Features

  • Along with the newly introduced TransitRoutingEngine (see above), the following supportive types have been added: AttributionType enum, FarePriceType enum, FareReason enum, PreActionType enum, TransitDepartureStatus enum, TransitIncidentType enum, TransitIncidentEffect enum, TransitMode enum, TransitModeFilter enum, Agency class, Attribution class, Fare class, FarePrice class, PreAction class, TransitIncident class, TransitDeparture class, TransitSectionDetails class, TransitStop class, and TransitTransport class.
  • Routing: Introduced a new Span class that is accessible from a Section on a Route. It points to the related section notices to indicate possible route violations. With the Span class these violations can now be identified on the Route as they contain the length in meters and the geometry.
  • Routing: Added additional constructor for IsolineOptions.Calculation: IsolineOptions.Calculation(@NonNull final IsolineRangeType rangeType, @NonNull final List<Integer> rangeValues, @NonNull final IsolineCalculationMode isolineCalculationMode).
  • Search: Added new method to SearchEngine to get place details for a Suggestion that contains a href String. Use the new sendRequest() method for this.

API Changes

  • Added a new MapViewLifecycleListener that replaces the deprecated MapRepresentable. It can be added or removed from a Mapview. Use this to get notified on the map view's lifecycle.
  • Deprecated MapRepresentable and the related methods to add or remove it from a MapView. Use the newly introduced MapViewLifecycleListener instead.
  • Removed the previously deprecated GeoBox.intersects(GeoBox) and GeoBox.contains(GeoBox).
  • Speed limits: Made SpecialSpeedSituation.specialSpeedLimitInMetersPerSecond non-optional and removed the enum items SPEED_BUMPS_PRESENT and LANE_DEPENDENT from SpecialSpeedSituationType, because they do not contain a special speed limit.
  • Added a new RoadTextsListener to get notified on the current road name.
  • Deprecated NavigableLocation.streetName. Use the newly introduced RoadTextsListener instead.
  • Removed the previously deprecated UnitSystem.IMPERIAL enum item.
  • Removed the previously deprecated LocationProvider and the LocationListener.onLocationTimeout() method.
  • Removed the previously deprecated Section.getTransportMode() method.
  • Removed the previously deprecated GeoCorridor(List<GeoCoordinates>, Double) constructor.
  • Removed the previously deprecated Place.getCoordinates().
  • Removed the previously deprecated fields and constructors from com.here.sdk.core.Color.

Resolved Issues

  • Fixed: During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
  • Fixed: Offline maps: Region.sizeOnDiskInBytes is 0 for any Region.
  • Fixed: The opening hours for a Place that closes after midnight end at midnight.
  • Fixed: Navigation: Maneuver arrows are not rendered correctly for offline routes.

Known Issues

  • The VisualNavigator API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Offline maps: Once any download for a Region fails or is cancelled, all already downloaded regions will be deleted as well.
  • Offline maps: Some downloadable region names are not fully localized yet.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: RouteOptions are currently ignored completely and only default values will be used.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • Offline routing: Offline routes cannot be calculated in Japan.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • ReturnToRouteEngine: The guidance maneuver at the merging point between the new route and the old route is not properly generated.
  • Public transit routes do not contain maneuvers.

Version 4.6.5.0

New Features

  • Added support for political views. SDKOptions allow now to specify the politicalView string. It's a three letter country code defined by ISO 3166-1 alpha-3. When set, all map data will respect the point of view of this country. Note that this is a beta feature and thus there can be bugs and unexpected behaviour.
  • A Place can now be serialized or deserialized with serializeCompact() and deserialize() to or from a String.
  • Routing: Added SectionNoticeCode and NoticeSeverity enums, SectionNotice class and Section.getSectionNotices() method to get informed on possible route violations.
  • Isoline Routing:
    • Added RoutePlaceDirection enum with values ARRIVAL and DEPARTURE.
    • Added isolineDirection field inside IsolineOptions.Calculation structure (with default value of RoutePlaceDirection.DEPARTURE)
    • Extended the existing IsolineOptions.Calculation constructor to accept the new RoutePlaceDirection enum.
    • Added RouteOptions.arrivalTime to set an optional time when a travel is expected to end. Note that this parameter is currently only supported for isoline route calculation.
  • Navigation: Added an API to notify users about changes of the current speed limit. Now a SpeedLimitListener can be set that allows to get the SpeedLimit as before, but optionally it may also contain information on SpecialSpeedSituation events that overrule the default speed limit. Reasons for this are defined in the SpecialSpeedSituationType enum. A TimeDomain value informs whether this speed limit is currently active or not.
  • Navigation: Added a new ReturnToRouteEngine that allows the calculate a new route when a deviation from the original route was detected. This engine works offline on already downloaded or cached map data.
  • Introduced new SDKCache class and SDKCacheCallback that allows to clear the temporarily downloaded map data via the new clearCache() method. Note: This will not delete downloaded offline maps data.
  • Offline Search: Added new OfflineSearchEngine.search() method that accepts PlaceIdQuery and an optional LanguageCode to lookup a Place ID.

API Changes

  • Routing: Deprecated the Notice class and NoticeCode enum along with Section.getNotices() method, use the newly introduced SectionNoticeCode, SectionNotice class and Section.getSectionNotices() method instead.
  • Search: Deprecated SearchError.OPTION_NOT_AVAILABLE enum value, it will be replaced by the existing SearchError.INVALID_PARAMETER value.
  • Navigation: Deprecated NavigableLocation.speedLimitInMetersPerSecond. Use the newly introduced SpeedLimit instead.

Resolved Issues

  • Fixed: Offline maps: The new method to get installed regions may result in an error. As a workaround get available map regions beforehand and try again.

Known Issues

  • The VisualNavigator API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Offline maps: Region.sizeOnDiskInBytes is 0 for any Region.
  • Offline maps: Once any download for a Region fails or is cancelled, all already downloaded regions will be deleted as well.
  • Offline maps: Some downloadable region names are not fully localized yet.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: RouteOptions are currently ignored completely and only default values will be used.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • Offline routing: Offline routes cannot be calculated in Japan.
  • The opening hours for a Place that closes after midnight end at midnight.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Navigation: Maneuver arrows are not rendered correctly for offline routes.
  • ReturnToRouteEngine: The guidance maneuver at the merging point between the new route and the old route is not properly generated.

Version 4.6.4.0

New Features

  • Offline maps: It's now possible to pause and resume pending downloads of a map region via the MapDownloaderTask's pause() and resume() methods.
  • Navigation: Maneuver arrows are now rendered by default on the route shown on the map by the VisualNavigator. The next maneuver is shown, and removed once reached.
  • Navigation: The turn-by-turn ManeuverAction for roundabouts is now split into 'roundaboutEnter' and 'roundaboutExit'. The behavior for the HERE SDK remains the same. An additional 'LEFT/RIGHT_TURN' action may be given when exiting a larger roundabout.
  • Routing: Introduced Waypoint.minCourseDistanceInMeters to specify an optional distance parameter during which a user can avoid taking actions.
  • The size of the viewport can now be retrieved from MapView with the new viewportSize property that returns Size2D in physical pixels.
  • Enhanced FlyTo MapCamera animations from A to B with target orientation and target distance: flyTo(@NonNull GeoCoordinates target, double distanceInMeters, @NonNull MapCamera.FlyToOptions animationOptions).
  • New map styles have been introduced as beta versions.
    • The map styles for NORMAL_DAY, NORMAL_NIGHT, HYBRID_DAY and HYBRID_NIGHT will be updated with v4.8.0. The planned new map styles are already accessible under following file names as beta versions:
      • "preview.normal.day.json" - This scheme will update the current NORMAL_DAY in v4.8.0.
      • "preview.normal.night.json" - This scheme will update the current NORMAL_NIGHT in v4.8.0.
      • "preview.hybrid.day.json" - This scheme will update the current HYBRID_DAY in v4.8.0.
      • "preview.hybrid.night.json" - This scheme will update the current HYBRID_NIGHT in v4.8.0.
    • The legacy map styles for NORMAL_DAY, NORMAL_NIGHT, HYBRID_DAY and HYBRID_NIGHT will still be accessible for v4.8.0 until v4.9.0 under the file names listed below. They will be removed with v4.9.0.
      • "legacy.normal.day.json"
      • "legacy.normal.night.json"
      • "legacy.hybrid.day.json"
      • "legacy.hybrid.night.json"
      • "legacy.grey.day.json"
      • "legacy.grey.night.json"

API Changes

  • The map styles MapScheme.greyDay, MapScheme.greyNight have been deprecated and will be removed. Use the NORMAL_ variants instead.
  • Navigation: Safety speed camera warner text notifications were always fired. Now, text notifications are only sent via ManeuverNotificationListener if a SafetyCameraWarningListener is set.

Known Issues

  • The VisualNavigator API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Offline maps: Region.sizeOnDiskInBytes is 0 for any Region.
  • Offline maps: Once any download for a Region fails or is cancelled, all already downloaded regions will be deleted as well.
  • Offline maps: Some downloadable region names are not fully localized yet.
  • Offline maps: The new method to get installed regions may result in an error. As a workaround get available map regions beforehand and try again.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: RouteOptions are currently ignored completely and only default values will be used.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • Offline routing: Offline routes cannot be calculated in Japan.
  • The opening hours for a Place that closes after midnight end at midnight.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.
  • Navigation: Maneuver arrows are not rendered correctly for offline routes.

Version 4.6.3.0

New Features

  • Added new WatermarkStyle enum that defines the style of the HERE watermark logo. The dark watermark should be used for custom styles that are brighter (like daytime) and the light watermark for darker custom schemes (like night or satellite based). Added a new loadScene() method to MapScene to accept the new enum together with a custom style.
  • MapCamera: Added FlyToOptions to customize the fly-to animation from current target GeoCoordinates to a new location. The durationInMs parameter defines how long the animation will run, the bowFactor defines a relative camera height for the ballistic curve that ranges from -1 < 0 (concave curve) to 0 (constant height) to 0 < 1 (convex curve). The maximum height can be achieved with a bowFactor of 1, the minimum with -1. Note that the height is relative to the distance between current target and new target to achieve a constant look regardless of the current zoom level.
  • Routing: Added sideOfStreetHint property to Waypoint. These optional GeoCoordinates indicate which side of the street should be used to reach the waypoint. For example, if the location is to the left of the street, the route will prefer using that side in case the street has dividers. Hence, if the street has no dividers, sideOfStreetHint is ignored.
  • MapDownloader: Added possibility to delete downloaded map regions via the new deleteRegions() method that accepts a list of RegionId elements that should be deleted asynchronously.
  • MapDownloader: Added InstalledRegion class that holds information on installed regions. Added getInstalledRegions() method to get the new class.

Resolved Issues

  • Fixed: Navigation: Unlimited speed limits may not always be reported as expected.

Known Issues

  • The VisualNavigator API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Offline maps: Region.sizeOnDiskInBytes is 0 for any Region.
  • Offline maps: Once any download for a Region fails or is cancelled, all already downloaded regions will be deleted as well.
  • Offline maps: Some downloadable region names are not fully localized yet.
  • Offline maps: The new method to get installed regions may result in an error. As a workaround get available map regions beforehand and try again.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: RouteOptions are currently ignored completely and only default values will be used.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • The opening hours for a Place that closes after midnight end at midnight.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.

Version 4.6.2.0

Highlights

  • Added a new Indoor Routing API (beta) which allows calculating routes inside private venues. The API supports routes from outside to a position inside a venue and from a position inside a venue to the outside. The API also allows showing the resulting routes on the map.

New Features

  • Introduced beta versions of new map style combinations for use with MapScene.loadScene(): "preview.normal.day.json", "preview.normal.night.json", "preview.hybrid.day.json" and "preview.hybrid.night.json".
  • Added new map item type: MapArrow elements can now be rendered on the map to indicate a direction. They can be added or removed like other map items via MapScene.
  • MapMarker items can now be made invisible once they overlap each other at certain zoom levels. They contain a new property with isOverlapAllowed() and setOverlapAllowed(boolean).
  • VisualNavigator: The visibility of a Route can be controlled with setRouteVisible(boolean). The property is exposed with isRouteVisible(). By default, if a route is set, it will be rendered when startRendering() is called, and removed with stopRendering(). It is possible to set or remove a route at any time, i.e., before or after calling startRendering(), and the route in the MapView will be updated accordingly.

API Changes

  • The free flow traffic layer is now rendering green traffic flow lines by default.
  • MapLoader: Deprecated the meaningless error MapLoaderError.DUPLICATE_CATALOG.
  • VisualNavigator introduced a behavioral change: The transform center (also known as principal point) of the MapCamera is automatically adjusted during navigation for better viewing results. Calling startRendering() changes the principalPoint property of the MapCamera so that the current position indicator is placed slightly at the bottom of the MapView. It is restored to its original value when stopRendering() is called.

Resolved Issues

  • Fixed: When traffic flows are enabled, map gestures may behave slower than expected.
  • Fixed: Currently, a Lane that is reserved for bus or bicycle does not contain a direction type.
  • Fixed: Offline routing: Avoidance options are currently ignored.
  • Fixed: Offline routing: Ferry links are not extracted to separate sections.
  • Fixed: Navigation: Safety camera notifications may come too often.
  • Fixed: When SDKOptions is created before initialization of SDKNativeEngine it may contain a corrupted path.

Known Issues

  • The VisualNavigator API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Currently, a Lane that is reserved for bus or bicycle does not contain a direction type.
  • Offline maps: Region.sizeOnDiskInBytes is 0 for any Region.
  • Offline maps: Once any download for a Region fails or is cancelled, all already downloaded regions will be deleted as well.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Navigation: Unlimited speed limits may not always be reported as expected.
  • Offline routing: RouteOptions are currently ignored completely and only default values will be used.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • The opening hours for a Place that closes after midnight end at midnight.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.

Version 4.6.1.0

Highlights

  • Added new flyTo() method to MapCamera for basic animations from A to B by setting new target coordinates. The animation can be interrupted by gestures or any programmatical change of the camera's position or orientation.

New Features

  • Routing: Introduced ZoneCategory enum and added zoneCategories field to to the AvoidanceOptions struct which is a collection of ZoneCategory's.
  • EV routing: Introduced Route.getEVDetails() which returns the accumulated evDetails data for all sections of a route.
  • Navigation: Added a PostActionListener interface, which is accessible from Navigator and VisualNavigator with getPostActionListener() and setPostActionListener().
  • Navigation: The exitSignTexts (road exit number) attribute was added to Maneuver.
  • Lane Assistance: The following new access types have been added: automobiles, buses, taxis, carpools, pedestrians, trucks, throughTraffic, deliveryVehicles, emergencyVehicles, motorcycles.
  • Positioning: Added new fields to Location object: bearingAccuracyInDegrees, speedAccuracyInMetersPerSecond, timestampSinceBootInMilliseconds. Related constructors have been deprecated. Use the related newly introduced constructors instead.

API Changes

  • Routing: The AvoidanceOptions constructor requires to set the new field zoneCategories.
  • Routing: Deprecated Section.getDeparture() and Section.getArrival(). Instead, use the newly introduced Section.getDeparturePlace() and Section.getArrivalPlace() to get a RoutePlace.
  • Deprecated the Address fields stateName, countyName, streetName and the related constructors. Instead, use the newly introduced constructor that takes the new fields state, country and street.

Resolved Issues

  • Fixed: Performing a CategoryQuery or a TextQuery search no longer returns SearchError.HTTP_ERROR when searching in a circle, whose radius is a number with a fraction.

Known Issues

  • The VisualNavigator API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • When traffic flows are enabled, map gestures may behave slower than expected.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Currently, a Lane that is reserved for bus or bicycle does not contain a direction type.
  • Offline maps: Region.sizeOnDiskInBytes is 0 for any Region.
  • Offline maps: Once any download for a Region fails or is cancelled, all already downloaded regions will be deleted as well.
  • Offline routing: Pedestrian, truck, scooter, and EV routing are not expected to work.
  • Offline routing: Avoidance options are currently ignored.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: Ferry links are not extracted to separate sections.
  • Navigation: Unlimited speed limits may not always be reported as expected.
  • Offline routing: RouteOptions are currently ignored completely and only default values will be used.
  • Offline routing: Maneuver information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator instead.
  • Navigation: Safety camera notifications may come too often.
  • When SDKOptions is created before initialization of SDKNativeEngine it may contain a corrupted path.

Version 4.6.0.0

Highlights

  • Devices running older Adreno 330 GPUs are now supported.
  • Added support for offline maps. Map data can now be preloaded for continents and countries worldwide. Note: This feature is released as beta feature. Added the MapDownloader class to download the list of available regions and to download the regions. Added related classes:
    • DownloadableRegionsCallback: Notifies when regions are downloaded.
    • MapDownloaderStatusListener: Notifies on the status of the download.
    • MapDownloaderTask: Task to cancel downloads.
    • MapLoaderError: Enumeration for specifying various errors.
    • Region: Represents an area that can be downloaded.
    • RegionId: Specifies an unique identifier for a Region.
  • Added OfflineRoutingEngine to calculate routes on cached or preloaded offline maps: It is now possible to calculate routes without connectivity. The engine adheres to the same interface as its online counterpart.
  • Added isoline routing to calculate the reachable area for the given center coordinates and a range defined in time, distance or energy consumption. Added a new calculateIsoline() method to RoutingEngine. Added related classes:
    • IsolineOptions: Options for isoline calculation.
    • IsolineRangeType: Enumeration specifying whether the range type is defined in time, distance or energy consumption.
    • IsolineCalculationMode: Specifies how the isoline calculation can be optimized.
    • Isoline: Represents a single isoline.
    • MapMatchedCoordinates: Contains a pair of user-defined and map-matched coordinates.

More New Features

  • MapPolygon items can now be picked from MapView. PickMapItemsResult can now include a list of MapPolygon items.
  • Added ScooterOptions.allowHighway property.
  • Added method to look at a given GeoBox at the map view with void lookAt(@NonNull final GeoBox target, @NonNull final MapCamera.OrientationUpdate orientation, @NonNull final Rectangle2D viewRectangle). For example, this can be used to show a route on a certain part of the map view.
  • Search: Added categories field to OpeningHours. It contains categories related to specific OpeningHours. For example, when a Place has multiple opening hours associated with it.
  • Added SDKNativeEngine.dispose() to release resources. It should be used in cases when it's necessary to create a new instance of SDKNativeEngine with the same access key id as previously used.
  • Road shields are now rendered by default on the map view.
  • Navigator and VisualNavigator now allow to specify a TransportMode for tracking. By default, car mode is used.
  • Added SafetyCameraType to provide notifications about safety speed cameras both when on route and when in tracking mode. In tracking mode, the safety camera notifications will be given only for the portion of a road between the current position and the first junction. Added SafetyCameraWarning to provide information about the distance from the current position to the camera, the speed limit observed by the camera and the type of the safety camera. Added a dedicated listener that can be set to Navigator or VisualNavigator.
  • Lane Assistance: Added new types to LaneType: Express lane, acceleration lane, deceleration lane, auxiliary lane, slow lane, passing lane, shoulder lane, regulated lane access, turn lane, center turn lane, truck parking lanes, parking lanes, variable driving lanes, bicycle lanes.

API Changes

  • Removed beta status for scooter transport mode.
  • Deprecated the updateGeometry() method for MapPolygon. Use the newly introduced set/get geometry accessors instead to get or set a GeoPolygon.
  • Deprecated the updateGeometry() method for MapPolyline. Use the newly introduced set/get geometry accessors instead to get or set a GeoPolyline.
  • Search: Deprecated the following Contact fields landlinePhoneNumbers, mobilePhoneNumbers, emailAddresses, websiteAddresses. Use these newly introduced fields instead: landlinePhones, mobilePhones, emails, websites. Each holds a list of newly created classes LandlinePhone, MobilePhone, EmailAddress, WebsiteAddress - containing a string representation of the item and a list of related PlaceCategory values.
  • The free flow traffic layer does no longer render the green traffic flow lines. In the future, an API to enable / disable the flow is planned to be introduced.
  • The SDKNativeEngine now locks access to the map data cache and persistent storage directories. When another instance of SDKNativeEngine is instantiated with the same access key id then now an exception is thrown.
  • MapView: Added clamping to principal point when the coordinates are outside of the viewport.
  • Maneuver: Deprecated roadName, roadNameLanguageCode, roadNumber, nextRoadName, nextRoadNameLanguageCode, nextRoadNumber. Added instead RoadTexts with roadTexts and nextRoadTexts and LocalizedText and LocalizedTexts.
  • HERE Positioning now runs in it's own thread instead of separate process.

Resolved Issues

  • Fixed: A MapPolyline may be unexpectedly rendered over a MapMarker.

Known Issues

  • The VisualNavigator API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • When traffic flows are enabled, map gestures may behave slower than expected.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Currently, a Lane that is reserved for bus or bicycle does not contain a direction type.
  • Offline maps: Region.sizeOnDiskInBytes is 0 for any Region.
  • Offline maps: Once any download for a Region fails or is cancelled, all already downloaded regions will be deleted as well.
  • Offline routing: Pedestrian, truck, scooter, and EV routing are not expected to work.
  • Offline routing: Avoidance options are currently ignored.
  • Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
  • Offline routing: Ferry links are not extracted to separate sections.
  • Navigation: Unlimited speed limits may not always be reported as expected.
  • Navigation: Safety camera notifications may come too often.
  • When SDKOptions is created before initialization of SDKNativeEngine it may contain a corrupted path.

Version 4.5.4.0

Highlights

  • The supported device specifications have been fine tuned and contain now more granular details on the supported devices. Details can be found in the About section of the Developer's Guide for this edition.

New Features

  • Added support for a transform center: The MapCamera know allows to set and get a principal point as Point2D. This point determines where the target is placed within the map view. With this you can, for example, lower the map's default center during turn-by-turn navigation as it will affect map transformations such as rotations and tilt.
  • Extended walk routing options: Added PedestrianOptions.walkSpeedInMetersPerSecond property. Note that this feature is released as beta. By setting a walk speed you can calculate pedestrian routes specific for different walk profiles.
  • Searching for a CategoryQuery within a GeoCircle or GeoBox is no longer marked as a beta feature.
  • Added new map cache options to SDKOptions with SDKOptions.cacheSizeInBytes and SDKOptions.persistentMapStoragePath. Also available as key in manifest (com.here.sdk.cache_size_in_bytes, com.here.sdk.persistent_map_storage_path). With this you can control where to store cached map data and it also allows to specify the amount of data you want to reserve for caching.

Known Issues

  • The VisualNavigator API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • When traffic flows are enabled, map gestures may behave slower than expected.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Currently, a Lane that is reserved for bus or bicycle does not contain a direction type. Nevertheless, such a lane is included in the list of lanes. However, the lane type is not exposed yet. Therefore, it is recommended to omit lanes that do not contain at least one direction.
  • A MapPolyline may be unexpectedly rendered over a MapMarker.

Version 4.5.3.0

New Features

  • Added a NoticeCode that describes issues after a Route was calculated. For example, when a route should avoid tunnels, but the only possible route needs to pass a tunnel, the Route contains a notice that the requested avoidance of tunnels was violated. Therefore, it is recommended to always check a calculated Route for possible violations. The NoticeCode is part of a Notice object. A list of possible Notice objects can be accessed per Section of a Route. The list will be empty, when no violation occurred.
  • Addeded the ability to change the anchor point of a MapMarker with Anchor2D. By default, the marker is centered on the provided location and the anchor is at (0.5, 0.5). An anchor represents a point in a rectangle as a ratio of the marker's image width and height.
  • Added search for a CategoryQuery within a GeoCircle or GeoBox. Extended the existing CategoryQuery constructors to accept GeoCircle or GeoBox. Note that this feature is currently in BETA state.

API Changes

  • The lane assistance API was marked as BETA until further notice and thus there can be bugs and unexpected behavior. The API may change for new releases without a deprecation process.
    • The lane list order was changed to always start with index 0 from the leftmost lane to the rightmost lane (last index). Currently, left-hand driving countries are not supported.

Known Issues

  • The VisualNavigator API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • When traffic flows are enabled, map gestures may behave slower than expected.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Currently, a Lane that is reserved for bus or bicycle does not contain a direction type. Nevertheless, such a lane is included in the list of lanes. However, the lane type is not exposed yet. Therefore, it is recommended to omit lanes that do not contain at least one direction.
  • A MapPolyline may be unexpectedly rendered over a MapMarker.

Version 4.5.2.0

Highlights

  • Added suppport for scooter route calculation with the new ScooterOptions. Note that this is a BETA feature. Using scooter routes for navigation is not yet supported.
  • Introduced a new lane assistance API to notify drivers during navigation which lane is recommended to reach the next maneuvers. Use the new LaneAsssistanceListener to receive LaneAssistance events that are fired along with each voice announcement.

New Features

  • Added new read-only property to MapPolyline with GeoPolyline getGeometry().
  • Added DashPattern class to set dashed line styles for a MapPolyline.
  • Added the following methods to MapPolyline to add support for fill colors when using dashed lines:
    • Color getDashFillColor()
    • void setDashFillColor(@Nullable Color value)
  • Added cumulative orbit method to MapCamera to rotate the map around arbitrary view coordinates using relative orientation values with orbitBy(@NonNull MapCamera.OrientationUpdate delta, @NonNull Point2D origin).

API Changes

  • Cache path to store map data is now unique per access key ID (which is unique per customer). The HERE SDK automatically appends the current version of the cache and the access key ID. If you want to keep existing cache data, it may be required to copy it from <cache-root> to <cache-root>/v1/<access-key-id>, as the current version of the cache is "v1".
  • Deprecated SDKNativeEngine.setAccessKey(access_key_id, access_key_secret). Use SDKNativeEngine.setAccessKeySecret(access_key_secret) instead, in combination with setting the access key ID via SDKOptions when constructing a new SDKNativeEngine.
  • Deprecated LocationUpdateListener. Use the new LocationListener instead.
  • Removed deprecated GeoCircle constructor that accepts single precision float type for radius.

Resolved Issues

  • Fixed: Embedded POI markers are not visible for the hybrid night map scheme.
  • Fixed: Pan gestures may receive a cancel event before a begin event.
  • Fixed: During guidance tracking mode, roads with unlimited speed are now correctly reported.

Known Issues

  • The new VisualNavigator and the new lane assistance API are in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • When traffic flows are enabled, map gestures may behave slower than expected.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

Version 4.5.1.0

Highlights

  • Improved cold startup time on certain devices like Samsung.
  • A new VisualNavigator class has been introduced. It contains the same functionality as the Navigator class, but offers support for a visual guidance experience. With startRendering() a 3D location marker is added that smoothly follows the current location on the map. The animation is interpolated. In addition, the MapOrientation is updated. When a Route is set, the camera automatically follows the direction arrow. With the new CameraTrackingMode, this can be turned off, for example, to let the user freely pan the map. When tracking is turned off, the direction arrow moves on, but the map is not moved. Once CameraTrackingMode is enabled again, the camera follows again the current location. Note that the Navigator class can be replaced by the VisualNavigator class without any further code adaptation as Navigator shares the same method signatures with the new VisualNavigator.

New Features

  • Introduced Maneuver.getLengthInMeters() method to return the length of the maneuver.
  • Added new MapCameralimits with void setTargetArea(@Nullable GeoBox value) and @Nullable GeoBox getTargetArea(). This allows to set a target area preventing a user from moving away too much from a desired area of interest.
  • Added new MapCameralimits for bearing with void setBearingRange(@NonNull AngleRange value) and @NonNull AngleRange getBearingRange().
  • Introduced SectionTransportMode enum and Section.getSectionTransportMode() method returning an instance of this type indicating now transport modes such as ferries. Section.getTransportMode() has been deprecated, use the newly introduced method instead.
  • Search: Introduced SupplierReference type and Details.references property, which holds the list of supplier references to a place.

Resolved Issues

  • Fixed: Operations on MapCamera (lookAt(), zoomBy(),...) can now be executed already during onCreate() and onResume() calls. They will be enqueued and executed after MapView is fully created and functional.

Known Issues

  • The new VisualNavigator is in an early development stage. More rendering features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked.
  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • When traffic flows are enabled, map gestures may behave slower than expected.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Embedded POI markers are not visible for the hybrid night map scheme.
  • Pan gestures may receive a cancel event before a begin event.

Version 4.5.0.0

Highlights

  • Added heresdk-navigate-mock-<version>.jar to release package to enable easy mocking of HERE SDK classes for Unit Tests, check the new UnitTesting example app to see how to use it in your own tests.
  • Switched to a more performant underlying map format that provides less size, less traffic and smaller download times. This new format does not require any adaptation on app side.
  • Added a new OfflineSearchEngine that works without internet connectivity upon previously cached maps. It supports key word search, category search, geocoding and reverse geocoding. For example, when no internet connection is available, an app may try to fallback to the OfflineSearchEngine to provide instant results - although connectivity is be temporarily lost.
  • Added route calculation for electric vehicles (EV). It's now possible to calculate the energy consumption per route section according to the given consumption model (supported for electric cars and trucks). Charging stations are automatically added to the calculated route as waypoints to ensure that the electric vehicle doesn't run out of energy along the way (supported for electric cars).

New Features

  • Added LogAppender interface to insert your own log class into the SDKNativeEngine. This way you can log HERE SDK messages for various predefined log levels even on release builds.
  • Added in Navigator a static method to query the list of available languages for maneuver notifications: List<LanguageCode> Navigator.getAvailableLanguagesForManeuverNotifications().
  • Added a scale property to change the size of a MapMarker3D.
  • Added camera tilt limits with void MapCameraLimits.setMaxTilt(double degreesFromNadir) and void MapCameraLimits.setMinTilt(double degreesFromNadir).
  • Added camera zoom limits with void MapCameraLimits.setMaxZoomLevel(double zoomLevel) and void MapCameraLimits.setMinZoomLevel(double zoomLevel).
  • Added new methods to calculate routes for electric vehicles (car and trucks are supported): RoutingEngine.calculateRoute(List<Waypoint>, EVCarOptions, CalculateRouteCallback), RoutingEngine.calculateRoute(List<Waypoint>, EVTruckOptions, CalculateRouteCallback).
  • Added the following classes and fields to support EV routing (see above):
    • BatterySpecifications - parameters that describe the electric vehicle's battery.
    • ChargingConnectorAttributes - details of the connector that is suggested to be used for charging.
    • ChargingConnectorType - enumeration of the available charging connector types.
    • ChargingStation - charging station data.
    • ChargingSupplyType - enumeration of available charging supply types.
    • EVCarOptions - options to specify how a route for an electric car should be calculated.
    • EVConsumptionModel - parameters specific for the electric vehicle, which are used to calculate energy consumption on a given route.
    • EVDetails - additional information that is available for electric vehicles.
    • EVTruckOptions - options to specify how a route for an electric truck should be calculated.
    • PostActionType - enumeration of available post action types.
    • PostAction - an action that must be done after arrival.
    • RoutePlaceType - shows whether the place on the route (such as departure or arrival) is a charging station or a regular place.
    • Arrival.type - the type of the arrival place.
    • Arrival.chargeInKilowattHours - battery charge at arrival.
    • Arrival.chargingStation - charging station data at arrival.
    • Departure.type - the type of the departure place.
    • Departure.chargeInKilowattHours - battery charge at departure.
    • Departure.chargingStation - charging station data at departure.
    • Section.postActions - actions that must be done after the arrival.
    • Section.evDetails - additional section information that is available for electric vehicles.

API Changes

  • For custom map styles HERE Style Editor 0.26 is required.
  • Changed splash screen to be grey instead of black. This improves the experiences on devices where cold start takes longer.
  • Deprecated the LocationProvider interface and the Navigator constructors that accept a LocationProvider as parameter. A Navigator can now be construced from an empty constructor.
  • A Navigator now implements the sdk.core.LocationListener interface.
  • Deprecated onLocationTimeout() of sdk.core.LocationListener - it is no longer needed and the necessary timeout handling is now done internally inside the Navigator implementation.
  • Removed a deprecated GeoCoordinates constructor, use the previously introduced counterpart instead.
  • Changed the following methods in MapMarker:
    • Long getDrawOrder() to Integer getDrawOrder().
    • void setDrawOrder(Long drawOrder) to void setDrawOrder(Integer drawOrder).
  • Removed a deprecated Anchor2D constructor, use the previously introduced counterpart instead.
  • Deprecated in Navigator the method List<LanguageCode> getSupportedLanguagesForManeuverNotifications(), use List<LanguageCode> Navigator.getAvailableLanguagesForManeuverNotifications() instead.

Resolved Issues

  • Fixed: After orientation changes coordinate conversions may return incorrect values.
  • Fixed: During navigation sometimes the nextRoadName or nextRoadNumber are not available when the name of the street/road is a route number. In such a case, the next Maneuver indicates an 'unknown road'.
  • Fixed: When imperial unit system is selected along with 'EN US' language code, then RouteTextOptions returns 'ft' as unit, but voice guidance uses 'yards'.
  • Fixed: For some regions the speed limit value can be unexpectedly null on highways. Roads with no speed limit are now correctly indiciated during navigation.
  • Fixed: During navigation, tunnel extrapolation may not work as expected.
  • Fixed: A category search along a route will crash when the GeoCorridor.polyline list parameter is empty.
  • Fixed issues for map matching with no or unstable heading information. During navigation, map matching now works even when no heading information is provided or when the speed is very low.

Known Issues

  • Updating an existing MapMarker with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image.
  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • When traffic flows are enabled, map gestures may behave slower than expected.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early.
  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

Version 4.4.6.0

Highlights

  • This release focuses on overall stability and performance improvements.

Resolved Issues

  • Fixed: During navigation it can happen in rare cases that the distance to the next maneuver is slightly wrong.
  • Fixed: Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
  • Fixed: Random route recalculations occur during drive navigation, especially on crossroads.

Known Issues

  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • After orientation changes coordinate conversions may return incorrect values.
  • During navigation sometimes the nextRoadName or nextRoadNumber are not available when the name of the street/road is a route number. In such a case, the next Maneuver indicates an 'unknown road'.
  • Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
  • When imperial unit system is selected along with 'EN US' language code, then RouteTextOptions returns 'ft' as unit, but voice guidance uses 'yards'.
  • For some regions the speed limit value can be unexpectedly null on highways.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
    • During navigation, tunnel extrapolation may not work as expected.
  • A category search along a route will crash when the GeoCorridor.polyline list parameter is empty.
  • MapViewPin instances cannot be removed after tilting and panning the map.
  • When traffic flows are enabled, map gestures may behave slower than expected.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.
  • MapMarker3D instances are only partly rendered when the camera is positioned too far from earth.
  • During navigation sometimes the next maneuver and voice instructions are triggered too early.

Version 4.4.5.0

New Features

  • Added void setImage(@NonNull MapImage mapImage) and MapImage getImage() to the MapMarker class. This allows to change a MapImage for a MapMarker that is already shown on the map to update its appearance.
  • Added void zoomTo(double zoomLevel) to the MapCamera class to set the zoom level in the range [0,22]. Access the current zoomLevel from the camera's State property.
  • Added GeoBox GeoBox.containing(@NonNull List<GeoCoordinates> geoCoordinates) to construct a GeoBox from a list of Geocoordinates.
  • A CategoryQuery can now be created from a single PlaceCategory with the additional constructor CategoryQuery(@NonNull PlaceCategory category, @NonNull String filter, @NonNull GeoCoordinates areaCenter).

Resolved Issues

  • Fixed: For routes with more than two waypoints the destination reached event may be called too early.
  • Fixed: In rare cases map tiles may flicker when a device is offline and the cache is used.
  • Fixed: During navigation, voice commands are sometimes missing or inaccurate.
  • Fixed a NullPointerException that could happen when calling LocationEngine's start()/stop() methods one after the other.
  • Fixed issues with map-matched locations during turn-by-turn navigation when driving with slow speed.

Known Issues

  • The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • Random route recalculations may occur during drive navigation, especially on crossroads.
  • After orientation changes coordinate conversions may return incorrect values.
  • During navigation sometimes the nextRoadName or nextRoadNumber are not available when the name of the street/road is a route number. In such a case, the next Maneuver indicates an 'unknown road'.
  • Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
  • When imperial unit system is selected along with 'EN US' language code, then RouteTextOptions returns 'ft' as unit, but voice guidance uses 'yards'.
  • During navigation it can happen in rare cases that the distance to the next maneuver is slightly wrong.
  • For some regions the speed limit value can be unexpectedly null on highways.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.
    • During navigation, tunnel extrapolation may not work as expected.
  • A category search along a route will crash when the GeoCorridor.polyline list parameter is empty.
  • MapViewPin instances cannot be removed after tilting and panning the map.

Version 4.4.4.0

Highlights

  • Added automatic geometry simplification to MapPolyline: Now, the rendered polyline shape is optimized based on the current distance of the camera to earth. While not being visible for the eye, this improves the performance, for example, when rendering longer routes.

New Features

  • Positioning: Added support for the Android permission ACTIVITY_RECOGNITION to gain better results when an app is targeting Android 10 or higher.

API Changes

  • targetSdkVersion and compileSdkVersion of the internal AndroidManifest used by the HERE SDK have been updated from 28 to 29.

Deprecated

  • A few methods, fields and constructors of class here.sdk.Color have been deprecated. Instead, use the new methods that have been introduced to the class to conform to Android's native Color class. The new factory methods and getters use a color component of type float with the interval [0,1] - instead of type short and [0,255] that was used for the deprecated components.

Resolved Issues

  • Fixed an issue with flickering street labels after credentials have been changed.
  • Fixed an issue with wrong left and right voice commands during navigation.
  • Fixed issue with empty IDs for reverse geocoding results: IDs of place results are no longer empty strings and contain now a valid ID.
  • Route calculation: When no truck route is found due to incompatible truck restrictions, the reason is now logged and RoutingError.NO_ROUTE_FOUND error is returned. For example, a log may contain: "Potential route would violate truck restriction:{"maxHeight":400}".

Known Issues

  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • Random route recalculations may occur during drive navigation, especially on crossroads.
  • After orientation changes coordinate conversions may return incorrect values.
  • During navigation sometimes the nextRoadName or nextRoadNumber are not available when the name of the street/road is a route number. In such a case, the next Maneuver indicates an 'unknown road'.
  • Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
  • For routes with more than two waypoints the destination reached event may be called too early.
  • When imperial unit system is selected along with 'EN US' language code, then RouteTextOptions returns 'ft' as unit, but voice guidance uses 'yards'.
  • During navigation it can happen in rare cases that the distance to the next maneuver is slightly wrong.
  • In rare cases map tiles may flicker when a device is offline and the cache is used.
  • For some regions the speed limit value can be unexpectedly null on highways.
  • During navigation, voice commands are sometimes missing or inaccurate.
  • During navigation, the number of sections within RouteProgress may not match the number of sections within the Route.

Version 4.4.3.0

Highlights

  • Kinetic map panning behavior was greatly improved. Now, when swiping the map moves slower which results in a more natural feel.
  • Certain areas can now be excluded from route calculation with AvoidanceOptions that contain an avoidAreas list holding GeoBox items which routes should not cross.

New Features

  • Added optional Suggestion.getHref() to get a direct link to discover more details. It is available when the suggestion result type is category or chain.
  • Added RoadFeatures.DIFFICULT_TURNS enum value. Note that it is valid only for truck transport mode.
  • Added MapError.INVALID_STATE enum value which can be raised when a map scene is in an invalid state after a MapView was destroyed.
  • Added a new GeoCorridor constructor with radiusInMeters as integer type - as replacement for the deprecated constructor with radiusInMeters as double type, see below.

Deprecated

  • Deprecated GeoCorridor constructor with radiusInMeters as double type. Use the newly introduced GeoCorridor constructor with radiusInMeters as integer type instead, see above.

API Changes

  • The AvoidanceOptions(avoidFeatures, avoidCountries) constructor was extended to allow a list of GeoBox items as 3rd parameter.

Resolved Issues

  • Fixed: During navigation sometimes a Manuever does not contain all expected fields.
  • Fixed: When the pick radius for pickMapItems() is set to 1000 or higher, an app may crash when picking map polylines.
  • Fixed: SearchEngine: Place.getId() is empty for reverse geocoding results.

Known Issues

  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • Transparency for MapPolylines is not supported.
  • Random route recalculations may occur during drive navigation, especially on crossroads.
  • After orientation changes coordinate conversions may return incorrect values.
  • During navigation sometimes the nextRoadName or nextRoadNumber are not available when the name of the street/road is a route number. In such a case, the next Maneuver indicates an 'unknown road'.
  • Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
  • For routes with more than two waypoints the destination reached event may be called too early.
  • When imperial unit system is selected along with 'EN US' language code, then RouteTextOptions returns 'ft' as unit, but voice guidance uses 'yards'.
  • During navigation it can happen in rare cases that the distance to the next maneuver is slightly wrong.
  • In rare cases map tiles may flicker when a device is offline.

Version 4.4.2.0

Highlights

  • Integrated HERE Positioning. The new LocationEngine implements a comprehensive location solution that works with several location sources such as GPS or other Global Navigation Satellite System (GNSS) receivers, mobile network signals and Wi-Fi network signals to determine accurate locations. Along with it, we provide a new ConsentEngine to optionally enable data collection to improve HERE services.

New Features

  • Added a new NavigatorInterface which describes the main turn-by-turn functionality of a Navigator.
  • Added Place.getGeoCoordinates() method to get the GeoCoordinates of a Place. Note that only Place instances retrieved from a Suggestion result may not contain geographic coordinates, hence the returned value is optional.
  • Added departure/arrival information to the Section of a Route:
    • Added Departure class with the following fields:
      • waypointIndex
      • originalCoordinates
      • mapMatchedCoordinates
    • Added Arrival class with the following fields:
      • waypointIndex
      • originalCoordinates
      • mapMatchedCoordinates
    • Added Section.get_departure() method.
    • Added Section.get_arrival() method.
  • Added Suggestion.getType() to get the new SuggestionType enum that indicates whether this Suggestion is a place, a chain like a store, restaurant or bussiness chain - or a category.

Deprecated

  • Deprecated Place.getCoordinates() method, use Place.getGeoCoordinates() instead. Note that only Place instances retrieved from a Suggestion result may not contain geographic coordinates, hence the returned value has become optional.

Resolved Issues

  • Fixed: When the Route used to search along the route is too long, now a proper error is returned with SearchError.ROUTE_TOO_LONG.
  • Fixed: For places that are obtained from the Suggestion class, the geographic coordinates always contain a latitude and a longitude equal to 0. An additional places request is needed to obtain the coordinates.

Known Issues

  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Transparency for MapPolylines is not supported.
  • Random route recalculations may occur during drive navigation, especially on crossroads.
  • After orientation changes coordinate conversions may return incorrect values.
  • When the pick radius for pickMapItems() is set to 1000 or higher, an app may crash when picking map polylines.
  • During navigation sometimes the nextRoadName or nextRoadNumber are not available when the name of the street/road is a route number. In such a case, the next Maneuver indicates an 'unknown road'.
  • Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
  • For routes with more than two waypoints the destination reached event may be called too early.
  • When imperial unit system is selected along with 'EN US' language code, then RouteTextOptions returns 'ft' as unit, but voice guidance uses 'yards'.
  • During navigation sometimes a Manuever does not contain all expected fields.
  • During navigation it can happen in rare cases that the distance to the next maneuver is slightly wrong.

Version 4.4.1.0

New Features

  • Traffic flows can now be identified along a Route. Introduced TrafficSpeeds class to provide traffic speed information over a Section polyline. The Section.getTrafficSpeeds() method returns a list of TrafficSpeeds's which covers the Section polyline.
  • Added SearchError.QUERY_TOO_LONG and SearchError.FILTER_TOO_LONG. These errors will appear if the search query or search filter is too long (over 300 characters).
  • Added Route.getTransportMode() which returns the original TransportMode as requested for the route calculation.

Resolved Issues

  • Fixed: Fixed memory leaks caused by PlatformThreading.
  • Fixed: Voice instructions are sometimes not properly synchronised with the current map-matched location.
  • Fixed: During turn-by-turn navigation, a NavigableLocation may not contain map-matched geographic coordinates for some regions due to data issues.

Known Issues

  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Transparency for MapPolylines is not supported.
  • Random route recalculations may occur during drive navigation, especially on crossroads.
  • After orientation changes coordinate conversions may return incorrect values.
  • When the pick radius for pickMapItems() is set to 1000 or higher, an app may crash when picking map polylines.
  • For places that are obtained from the Suggestion class, the geographic coordinates always contain a latitude and a longitude equal to 0. An additional places request is needed to obtain the coordinates.
  • During navigation sometimes the nextRoadName or nextRoadNumber are not available when the name of the street/road is a route number. In such a case, the next Maneuver indicates an 'unknown road'.
  • Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.

Version 4.4.0.2

Highlights

  • New map schemes have been introduced to support satellite images together with vector-based street labels: HYBRID_DAY and HYBRID_NIGHT.
  • Support for interactive private venues has been introduced. This feature is available for building owners upon request.

New Features

  • Added to the MapCamera class the method: void setTargetOrientation(@NonNull MapCamera.OrientationUpdate orientation) to set only the target orientation in relation to the camera.
  • By default, polylines are rendered in the order as they have been added to the map. This can now be changed at runtime by setting the draw order. It's now also possible to change the width and outline width at runtime. For this, the following methods have been added to the MapPolyline class:
    • void setDrawOrder(int value) to set the DrawOrder for a MapPolyline.
    • int getDrawOrder() to get the DrawOrder for a MapPolyline.
    • void setLineWidth(double value) to set the LineWidth for a MapPolyline.
    • double getLineWidth() to get the LineWidth for a MapPolyline.
    • void setOutlineWidth(double value) to set the OutlineWidth for a MapPolyline.
    • double getOutlineWidth() to get the OutlineWidth for a MapPolyline.
  • Search for places along a route: Added the GeoCorridor option to filter TextQuery results when performing an asynchronous search request along a route with the method TextQuery(@NonNull String query, @NonNull GeoCorridor corridorArea, @NonNull GeoCoordinates areaCenter).
  • Search for places by category along a route: Added the CategoryQuery structure that accepts the GeoCorridor option in its constructors with the filter parameter CategoryQuery(@NonNull List<PlaceCategory> categories, @NonNull String filter, @NonNull GeoCorridor corridorArea) and without the filter parameter CategoryQuery(@NonNull List<PlaceCategory> categories, @NonNull GeoCorridor corridorArea) to enable category search along a route. This feature is in BETA state.
  • Added to the Details class the method: List<PlaceCategory> getPrimaryCategories() to get a place category from the result of a search query.

API Changes

  • Moved the LocationProvider and LocationListener interfaces from the com.here.sdk.navigation to the com.here.sdk.core package.
  • Reduced the rotation sensitivity of the Pinch Rotate gesture. Now, it is easier to zoom in on the map without rotating it.

Resolved Issues

  • Fixed: Rendering order for MapMarker3D is not yet supported, so the marker may appear below building footprints. Now, the rendering order for MapMarker3D is supported and the marker no longer appears below building footprints.
  • Fixed several rendering issues related to map items.

Known Issues

  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Transparency for MapPolylines is not supported.
  • Random route recalculations may occur during drive navigation, especially on crossroads.
  • Voice instructions are sometimes not properly synchronised with the current map-matched location.
  • After orientation changes coordinate conversions may return incorrect values.
  • 3d marker is not aligned with the road when using the map matched position.
  • During turn-by-turn navigation, a NavigableLocation may not contain map-matched geographic coordinates for some regions due to data issues.
  • When the pick radius for pickMapItems() is set to 1000 or higher, an app may crash when picking map polylines.
  • For places that are obtained from the Suggestion class, the geographic coordinates always contain a latitude and a longitude equal to 0. An additional places request is needed to obtain the coordinates.

Version 4.3.4.0

Highlights

  • With this release it is no longer necessary to request the sensitive EXTERNAL_STORAGE permission from users. See the related API change below.
  • To enhance TBT Navigation, we added a MilestoneReachedListener that informs whenever a stopover has been passed. See the related feature description with more details below.
  • During TBT navigation a new SpeedWarningListener informs whenever the user is exceeding the current speed limits on the road. See the related feature description with more details below.

New Features

  • Added the line cap style property to MapPolyline with the enum LineCap to change polyline ends rendered on the map.
  • Added the methods LineCap getLineCap() and void setLineCap(@NonNull LineCap value) to get and set the LineCap of a MapPolyline.
  • Added the Milestone class with the following fields:
    • int sectionIndex for the index of the section on the route that has been completed.
    • Integer waypointIndex which corresponds to the waypoint in the original user-defined waypoint list.
    • GeoCoordinates originalCoordinates for user-defined geographic coordinates.
    • GeoCoordinates mapMatchedCoordinates for map-matched geographic coordinates.
  • Added the MilestoneReachedListener interface to receive notifications about the arrival at each Milestone, and the method: void onMilestoneReached(Milestone milestone) called when a milestone has been reached.
  • Added the DestinationReachedListener interface to receive notifications about the arrival at the destination, and the method: void onDestinationReached() called when the destination has been reached.
  • Added the following methods to the Navigator class:
    • setMilestoneReachedListener(MilestoneReachedListener listener) to set the listener that notifies when a Milestone has been reached.
    • getMilestoneReachedListener() to get the listener notifies when a Milestone has been reached.
    • setDestinationReachedListener(DestinationReachedListener listener) to set the listener that notifies when a destination has been reached.
    • getDestinationReachedListener() to get the listener that notifies when a destination has been reached.
  • Added the SpeedWarningListener interface to receive notifications from the Navigator about the speed limit being exceeded with the following method:
    • void onSpeedWarningStatusChanged(SpeedWarningStatus status) called whenever the status of the speed warning status has changed to any of the SpeedWarningStatus values.
  • Added the SpeedWarningStatus enumeration that represents the speed warning status.
  • Added the SpeedLimitOffset struct that indicates the offset to be used above a specific speed to be notified of the speed limit being exceeded, with the following fields:
    • Double lowSpeedOffsetInMetersPerSecond for the speed limit offset for low speeds.
    • Double highSpeedOffsetInMetersPerSecond for the speed limit offset for high speeds.
    • Double highSpeedBoundaryInMetersPerSecond for the high speed boundary.
  • Added the SpeedWarningOptions struct that contains all options to be used for speed limit warnings, with the following field:
    • SpeedLimitOffset for the speed limit offset to be used when notifying that the speed limit has been exceeded.
  • Added the following properties to the Navigator class:
    • setSpeedWarningListener(SpeedWarningListener listener) to set the listener to be notified of the speed limit being exceeded or back to normal.
    • getSpeedWarningListener() to get the listener to be notified of the speed limit being exceeded or back to normal.
    • setSpeedWarningOptions(SpeedWarningOptions options) to set the speed warning options.
    • getSpeedWarningOptions() to get the speed warning options.

API Changes

  • Removed the android.permission.READ_EXTERNAL_STORAGE and android.permission.WRITE_EXTERNAL_STORAGE permissions from the SDK manifest file.

Resolved Issues

  • Fixed: Startup performance for navigation is very slow on certain devices. Now, startup performance for navigation has been improved for all devices.

Known Issues

  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Transparency for MapPolylines is not supported.
  • Rendering order for MapMarker3D is not yet supported, so the marker may appear below building footprints.
  • Random route recalculations may occur during drive navigation, especially on crossroads.
  • Voice instructions are sometimes not properly synchronised with the current map-matched location.
  • After orientation changes coordinate conversions may return incorrect values.

Version 4.3.3.0

New Features

  • Added the method search(@NonNull PlaceIdQuery query, @Nullable LanguageCode languageCode, @NonNull PlaceIdSearchCallback callback) to perform an asynchronous request to search for a place based on its ID and language code.
  • Added the possibility to filter AddressQuery results by the CountryCode with the method AddressQuery(@NonNull String query, @NonNull GeoCoordinates areaCenter, @NonNull List<CountryCode> countries).
  • Added the possibility to filter TextQuery results by the CountryCode with the method TextQuery(@NonNull String query, @NonNull GeoCoordinates areaCenter, @NonNull List<CountryCode> countries).
  • Added the methods getLineColor() and void setLineColor(@NonNull Color value) to get and set the LineColor of a MapPolyline.
  • Added the methods getOutlineColor() and void setOutlineColor(@NonNull Color value) to get and set the OutlineColor of a MapPolyline.

Deprecated

  • Deprecated the method search(@NonNull PlaceIdQuery query, @NonNull PlaceIdSearchCallback callback). Use the newly introduced search(@NonNull PlaceIdQuery query, @Nullable LanguageCode languageCode, @NonNull PlaceIdSearchCallback callback) method instead.

Resolved Issues

  • Fixed: App crashes when access to memory storage is denied. Now, access to the memory storage is granted by setting the path to the map cache.
  • Fixed: Heading is ignored during turn-by-turn navigation. Now, Waypoint heading is considered during turn-by-turn navigation.
  • Fixed: Creating a very long route crashes the app. Now, route is created and navigation starts irrespective of how long the route is.

Known Issues

  • Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Transparency for MapPolylines is not supported.
  • Rendering order for MapMarker3D is not yet supported, so the marker may appear below building footprints.
  • Startup performance for navigation is very slow on certain devices.
  • Random route recalculations may occur during drive navigation, especially on crossroads.
  • Voice instructions are sometimes not properly synchronised with the current map-matched location.

Version 4.3.2.0

New Features

  • Added the ManeuverProgress class which is accessible from RouteProgress.maneuverProgress to indicate progress details to the next and next-next maneuvers during navigation.
  • Added the GPXDocument class to create a GPX document and to load a GPX file.
  • Added the GPXTrack class to represent a single track from a GPXDocument.
  • Added the constructor LocationSimulator(GPXTrack, LocationSimulatorOptions) to specify the GPX track to travel and the options to specify how the location simulator will behave.
  • Added the method MapCamera.getBoundingBox() to get the currently visible map area encompassed in a GeoBox.
  • Added the ViewPin class to the MapView class to display Android views at a fixed location on the MapView with the methods:
    • ViewPin pinView(@NonNull View view, GeoCoordinates coordinates) to pin a view on the MapView.
    • void unpinView(@NonNull View view) to remove a view pinned to the MapView.
    • List<ViewPin> getViewPins() to get the views pinned on the MapView.
  • Added the method void MapCamera.setDistanceToTarget(double distanceInMeters) to set the distance from the MapCamera to the target location on earth.
  • Added the methods void MapView.setPrimaryLanguage(@Nullable LanguageCode languageCode) and MapView.getPrimaryLanguage() to set and get the primary language of the map.
  • Added updated support for the SDKOptions.cachePath handling. If SDKOptions.cachePath is not set, it will be assigned a default path [Context.getCacheDir().getPath()]. A custom cachePath can be set in the app's manifest file via the "com.here.sdk.cache_path" key.

Deprecated

  • Deprecated the functionality RouteProgress.currentManeuverIndex. Use the RouteProgress.maneuverProgress functionality instead.
  • Deprecated the functionality RouteProgress.currentManeuverRemainingDistanceInMeters. Use the RouteProgress.maneuverProgress functionality instead.

Resolved Issues

  • Fixed: Calling navigator.getSupportedLanguagesForManeuverNotifications() before a route is set will no longer result in an empty list.
  • Fixed: The Authentication callback was not always called on the main thread. Now the callback is guaranteed to be always called on the main thread.

Known Issues

  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Transparency for MapPolylines is not supported.
  • Rendering order for MapMarker3D is not yet supported, so the marker may appear below building footprints.
  • Creating a very long route crashes the app.
  • Heading is currently ignored during turn-by-turn navigation.

Version 4.3.1.0

New Features

  • Added methods MapMarker.getDrawOrder() and MapMarker.setDrawOrder(final long value) to get and set the draw order of MapMarkers on the map.
  • Added MapView.OnReadyListener with the method Map.setOnReadyListener(OnReadyListener readyListener) to set the ReadyListener. The listener will notify once the map view has been initialization.
  • Added MapMatchedLocation struct with fields:
    • coordinates: GeoCoordinates for the geographic coordinates of the map-matched location.
    • bearingInDegrees: Double? for the map-matched device's horizontal direction of travel.
  • Added the support for 3D MapMarkers with the classes MapMarker3D and MapMarker3DModel to represent and define a 3D shape rendered on the map.
    • Added the methods void MapScene.addMapMarker3d(@NonNull MapMarker3D marker) and void MapScene.removeMapMarker3d(@NonNull MapMarker3D marker) to add and remove a 3D MapMarker.
  • Added the Rectangle2D constructor that accepts type double for the origin and size parameters to represent a 2D rectangle.
  • Added the Size2D constructor that accepts type double for the height and width parameters to represent the size of a 2D structure.
  • Added the methods MapPolylines.getMetadata() and void setMetadata(@Nullable Metadata value) to get and set the Metadata for MapPolylines.
  • Added the method Navigator.get_supported_languages_for_maneuver_notifications() to get the supported language functionality.
  • Added the methods Navigator.getManeuverNotificationOptions() and Navigator.setManeuverNotificationOptions(options) to get and set maneuver notification options.

API Changes

  • Renamed CurrentLocation.rawLocation to originalLocation
  • Changed CurrentLocation.mapMatchedLocation type from Location to MapMatchedLocation.
  • Renamed rawLocation to originalLocation in CurrentLocation.
  • Renamed CurrentLocation to NavigableLocation.
  • Renamed CurrentLocationListener to NavigableLocationListener.
  • Renamed Navigator.setCurrentLocationListener to Navigation.setNavigableLocationListener.
  • Renamed Navigator.getCurrentLocationListener to Navigation.getNavigableLocationListener.
  • Changed RouteDeviation.lastLocationOnRoute type from Location to NavigableLocation.

Resolved Issues

  • Fixed: AvoidanceOptions will be ignored when calculating truck routes. Now, AvoidanceOptions are considered when calculating truck routes.

Known Issues

  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Transparency for MapPolylines is not supported.
  • Rendering order for MapMarker3D is not yet supported, so the marker may appear below building footprints.
  • Calling navigator.getSupportedLanguagesForManeuverNotifications() before a route is set will result in an empty list.

Version 4.3.0.0

Highlights

  • This is the initial release.

Known Issues

  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • AvoidanceOptions will be ignored when calculating truck routes.
  • Transparency for MapPolylines is not supported.

results matching ""

    No results matching ""