Release Notes

We are pleased to announce the availability of version 4.14.3.0 (Lite 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.14.3.0

New Features

  • Improved log messages. Now more information is printed when a fatal error occurs on the native side via JNI / Java.

Known Issues

  • The global offline switch sdkNativeEngine.isOfflineMode() does not load map tiles after enabling the online mode again or after restoring a lost network connection. As a workaround the map view has to be panned & zoomed a bit to activate the online mode again.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.

Changes from Previous Releases

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

Version 4.14.2.0

Known Issues

  • The global offline switch sdkNativeEngine.isOfflineMode() does not load map tiles after enabling the online mode again or after restoring a lost network connection. As a workaround the map view has to be panned & zoomed a bit to activate the online mode again.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.

Version 4.14.1.0

New Features

  • Custom catalogs: Added AuthenticationMode in SDKOptions. This feature is useful when customEngineBaseUrls are used to self-host backend services. Use AuthenticationMode.withToken(String accessToken) to set a custom bearer token as string. If AuthenticationMode.withExternal() is called, the authentication must be done fully by the client. With AuthenticationMode.withKeySecret​(String accessKeyId, String accessKeySecret) you bring back the default behavior, where for each online request a bearer token is set in the header of a request - consisting of the provided credentials. Usually, this is done by the HERE SDK internally. Note: This is a beta release of this feature.

API Changes - Breaking

  • Removed deprecated geo fields and constructors of sdk.search.TextQuery and sdk.search.CategoryQuery. Use newly added constructors taking sdk.search.TextQuery.Area and sdk.search.CategoryQuery.Area instead.
  • Removed deprecated CategoryQuery.withExcludeCategories. Please set excludeCategories directly using categoryQueryObject.excludeCategories.
  • SDKNativeEngine: Changed ProxySettings.port type from long to int.

Known Issues

  • The global offline switch sdkNativeEngine.isOfflineMode() does not load map tiles after enabling the online mode again or after restoring a lost network connection. As a workaround the map view has to be panned & zoomed a bit to activate the online mode again.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.

Version 4.14.0.0

New Features

  • RoutingEngine: RoadFeatures.U_TURNS are now supported for cars, taxis and buses and can be avoided.

API Changes - Breaking

  • Routing: Removed deprecated Section.getTrafficSpeeds() method. Use instead Span.getTrafficSpeed(). Removed deprecated TrafficSpeed.offset. Use instead Span.getSectionPolylineOffset().
  • Search: Removed deprecated ACCOMODATION, ACCOMODATION_HOTEL_MOTEL and ACCOMODATION_LODGING constants from PlaceCategory. ACCOMMODATION, ACCOMMODATION_HOTEL_MOTEL and ACCOMMODATION_LODGING should be used instead.

Resolved Issues

  • RoutingEngine: Fixed a RoutingError that happens for the Slovenian language definition when calling importRoute().

Known Issues

  • The global offline switch sdkNativeEngine.isOfflineMode() does not load map tiles after enabling the online mode again or after restoring a lost network connection. As a workaround the map view has to be panned & zoomed a bit to activate the online mode again.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.

Version 4.13.5.0

New Features

  • Routing: Added Span.countryCode property to obtain a country code per span.
  • Enhanced information on route restrictions: Added violatedRestrictions: List<ViolatedRestriction> property to class SectionNotice. ViolatedRestriction.Details contains, for example, height restrictions or forbidden TruckType values. This feature works online, but is also supported for use with the OfflineRoutingEngine - if supported by your HERE SDK edition. Note: This is a beta release of this feature.
  • Added LogControl to filter HERE SDK log messages. This allows to disable HERE SDK related console logs or to set a custom LogAppender to receive only selected log messages from the HERE SDK.
  • Routing: Enhanced RoadTexts accessible from a Maneuver. RoadTexts contains now a list of LocalizedRoadNumbers and a numbersWithDirection field to contain road numbers with direction. The latter replaces the deprecated numbers field.
  • Added read-only property signpost to get signpost information. SignpostLabel.direction will replace RoadTexts.towards for getting information about directions.
  • Routing: Added turnAngleInDegrees (-180 to 180) and roundaboutAngleInDegrees (-360 to 360) to Maneuver class to indicate information on the turn angle for all turn related actions. If not applicable for the maneuver, the value will be null. roundaboutAngleInDegrees indicates the amount of the roundabout that needs to be traversed - it is positive in right-driving countries and negative in left-driving countries.

API Changes - Deprecations

  • The numbers field in RoadTexts has been deprecated and will be removed with HERE SDK version 4.16.0. Use the newly introduced numbersWithDirection field instead.
  • Deprecated setLogAppender() in SDKNativeEngine. Use the newly introduced LogControl API instead. Deprecated Debug and Trace log levels as such messages are not relevant.

Resolved Issues

  • ManeuverAction.ENTER_HIGHWAY_FROM_LEFT and ManeuverAction.ENTER_HIGHWAY_FROM_RIGHT are now properly generated when RouteOptions.enableEnterHighwayManeuverAction is set.

Known Issues

  • The global offline switch sdkNativeEngine.isOfflineMode() does not load map tiles after enabling the online mode again or after restoring a lost network connection. As a workaround the map view has to be panned & zoomed a bit to activate the online mode again.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.

Version 4.13.4.0

New Features

  • Added SDKNativeEngine.getProxySettings() and SDKNativeEngine.setProxySettings() methods to get/set the ProxySettings that will be used by the HERE SDK for all network requests. By setting a proxy server, you can specify, for example, the IP address and port number of your proxy. By default, no proxy is set. Note: This is a beta release of this feature.
  • Added offlineMode to SDKOptions to initialize the HERE SDK in offline mode. This complements the existing global offline switch via the shared instance of the SDKNativeEngine to switch at runtime.

Known Issues

  • The global offline switch sdkNativeEngine.isOfflineMode() does not load map tiles after enabling the online mode again or after restoring a lost network connection. As a workaround the map view has to be panned & zoomed a bit to activate the online mode again.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.

Version 4.13.3.0

Known Issues

  • The global offline switch sdkNativeEngine.isOfflineMode() does not load map tiles after enabling the online mode again or after restoring a lost network connection. As a workaround the map view has to be panned & zoomed a bit to activate the online mode again.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.

Version 4.13.2.0

New Features

  • Route calculation: Added more error codes to RoutingError to provide more detailed failure reasons.
  • Added hasShower attribute in TruckAmenities struct and changed showerCount attribute to optional.

API Changes - Deprecations

  • Deprecated FERRY from ManeuverAction enum. It was never used.

Known Issues

  • The global offline switch sdkNativeEngine.isOfflineMode() does not load map tiles after enabling the online mode again or after restoring a lost network connection. As a workaround the map view has to be panned & zoomed a bit to activate the online mode again.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.

Version 4.13.1.0

New Features

  • Added optional billingTag field to SDKOptions to track your HERE platform usage across the various HERE services your application may contact. For more information on the billing tag, see our cost management guide. The tag needs to follow the format as described in the guide or it will be ignored. The parameter defaults to null, which also means that the tag is ignored for all requests. Note: The billing tag is optional, but when set, it can help you to understand how often your app uses certain services, for example, the number of hits to our HERE backend routing services. For more details on tracking such details, please consult the cost management guide or get in touch with the HERE billing team.
  • Added BUSINESS_AND_SERVICES_EV_CHARGING_STATION enum value to PlaceCategory to allow searching for EV charging stations via a CategoryQuery.

Known Issues

  • The global offline switch sdkNativeEngine.isOfflineMode() does not load map tiles after enabling the online mode again or after restoring a lost network connection. As a workaround the map view has to be panned & zoomed a bit to activate the online mode again.
  • An inner city Route for trucks carrying dangerous goods may not result in an error message.

Version 4.13.0.0

New Features

  • You can now overwrite the base speeds on a Route per segment. After route calculation, you can use the segment reference IDs to set new values per route span and then calculate a new route with the updated values: Added collection of MaxSpeedOnSegment instances to all motor-vehicle based route calculation options (BusOptions, CarOptions, EVCarOptions, EVTruckOptions, ScooterOptions, TaxiOptions, and TruckOptions) to set restrictions for segments which affects route calculation and the ETA. For the SegmentReference parameter, beside the segmentId, the travelDirection can be optionally set, other values are ignored. Note that this feature is not available for offline use.
  • Added global offline switch to make the HERE SDK radio-silent. This offline mode prevents the HERE SDK from initiating any online connection. sdkNativeEngine.isOfflineMode() method added to enable/disable this functionality. Note that this setting is not persisted. This is a beta release of this feature.
  • Add segmentHint and onRoadThreshold properties to Waypoint class to improve waypoint matching.
  • Added TransitSectionDetails constructor that takes 1 parameter.

API Changes - Breaking

  • Removed previously deprecated enum sdk.routing.TunnelCategory. Please use sdk.transport.TunnelCategory instead. Removed previously deprecated sdk.routing.TruckOptions.tunnelCategory. Please use sdk.routing.TruckOptions.linkTunnelCategoryinstead. Removed previously deprecated sdk.routing.EVTruckOptions.tunnelCategory. Please use sdk.routing.EVTruckOptions.linkTunnelCategoryinstead.
  • Removed deprecated Location.timestamp_since_boot_in_milliseconds. Use Location.timestamp_since_boot instead.
  • Remove deprecated 'sdk.routing.Route.getPolyline()'. Use 'sdk.routing.Route.getGeometry()' instead. Remove deprecated 'sdk.routing.Section.getPolyline()'. Use 'sdk.routing.Section.getGeometry()' instead.
  • Removed deprecated GeoPlace constructors. Use the default constructor instead.
  • Removed deprecated Attribution constructor that takes all parameters. Use the constructor with 3 parameters instead. Removed deprecated TransitStop constructor that takes all parameters. Use the constructor with 1 parameters instead.
  • Removed the previously deprecated FarePrice.validityPeriodInSeconds. Use instead FarePrice.validityPeriod.
  • Removed deprecated AuthenticationData.expiry_time_in_seconds. Use AuthenticationData.expiry_time instead.
  • Removed deprecated AvoidanceOptions constructor that takes all parameters. Use the default constructor instead. Removed deprecated CarOptions constructor that takes all parameters. Use the default constructor instead. Removed deprecated EVCarOptions constructor that takes all parameters. Use the default constructor instead. Removed deprecated EVConsumptionModel constructor that takes all parameters. Use the default constructor instead. Removed deprecated FarePrice constructor that takes all parameters. Use the default constructor instead. Removed deprecated PedestrianOptions constructor that takes all parameters. Use the default constructor instead. Removed deprecated PostAction constructor that takes all parameters. Use the default constructor instead. Removed deprecated PreAction constructor that takes all parameters. Use the default constructor instead. Removed deprecated RouteTextOptions constructor that takes all parameters. Use the default constructor instead. Removed deprecated ScooterOptions constructor that takes all parameters. Use the default constructor instead. Removed deprecated TransitRouteOptions constructor that takes all parameters. Use the default constructor instead.
  • Removed the previously deprecated PostAction.durationInSeconds. Use instead PostAction.duration.
  • Removed previously deprecated sdk.routing.TruckType enum. Please use sdk.transport.TruckType enum instead. Removed previously deprecated variable TruckSpecifications.type. Please use TruckSpecifications.truckType instead.
  • Removed deprecated AuthenticationData constructor that takes all parameters. Use the default constructor instead.
  • Removed the previously deprecated Section.getTrafficDelayInSeconds. Use instead Section.getTrafficDelay.
  • Removed the previously deprecated Maneuver.getDurationInSeconds. Use instead Maneuver.getDuration.
  • Removed previously deprecated TruckSpecifications constructor that takes all parameters. Use the default constructor instead.
  • Removed the previously deprecated Span.getDurationInSeconds. Use instead Span.getDuration.
  • Removed previously deprecated enum sdk.routing.HazardousGood. Please use sdk.transport.HazardousMaterialinstead. Removed previously deprecated variable sdk.routing.TruckOptions.hazardousGoods. Please use sdk.routing.TruckOptions.hazardousMaterialsinstead. Removed previously deprecated variable sdk.routing.EVTruckOptions.hazardousGoods. Please use sdk.routing.EVTruckOptions.hazardousMaterialsinstead.
  • Removed the previously deprecated Route.getDurationInSeconds. Use instead Route.getDuration.
  • Removed deprecatedTruckOptions constructor that takes all parameters. Use the default constructor instead. Removed deprecatedEVTruckOptions constructor that takes all parameters. Use the default constructor instead.
  • Removed the previously deprecated BatterySpecifications.chargingSetupDurationInSeconds. Use instead BatterySpecifications.chargingDetupDuration.
  • Removed the previously deprecated Section.getDurationInSeconds. Use instead Section.getDuration.
  • Removed the previously deprecated Route.getTrafficDelayInSeconds. Use instead Route.getTrafficDelay.
  • Removed deprecated Address constructor that takes all parameters. Use the default constructor instead.
  • Removed the previously deprecated SearchOptions constructor. Use default constructor instead.
  • Removed deprecated CameraOrientationUpdate constructor that takes all parameters. Use the default constructor instead. Removed deprecated MapSceneConfig constructor that takes all parameters. Use the default constructor instead.
  • Removed deprecated TransitWaypoint constructor that takes 2 parameters. Use the constructor that takes 1 parameter instead.
  • Removed the previously deprecated TransitStop.durationInSeconds. Use instead TransitStop.duration.
  • Removed deprecated TransitSectionDetails constructor that takes 6 parameters. Use the constructor that takes 1 parameter instead.
  • Removed the previously deprecated Waypoint.durationInSeconds. Use instead Waypoint.duration.
  • Removed the previously deprecated PreAction.durationInSeconds. Use instead PreAction.duration.

API Changes - Deprecations

  • Deprecated TransitSectionDetails constructor that takes 5 parameters. Use the one that takes 1 parameter instead.

Known Issues

  • The global offline switch sdkNativeEngine.isOfflineMode() does not load map tiles after enabling the online mode again or after restoring a lost network connection. As a workaround the map view has to be panned & zoomed a bit to activate the online mode again.
  • 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.

Version 4.12.11.0

API Changes - Breaking

  • The HERE SDK is now using compileSdkVersion and targetSdkVersion 33 instead of 31. Apps should update the version in the app's build.gradle file.

Known Issues

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

Version 4.12.10.0

Resolved Issues

  • Fixed rare crashes during route calculation with traffic caused by weak global reference table overflow.

Known Issues

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

Version 4.12.9.0

New Features

  • SDKOptions.customEngineBaseUrls: Added support for configurable URLs with the new enum value EngineBaseURL.AUTHENTICATION that can be used to specify custom URLs for authentication instead of the default URLs. Example URL (do not add endpoints): "https://account.api.yourcompany.com".
  • Added VehicleProfile class to define the properties of a vehicle. In the future, this profile is planned to be used for routing. Right now, the profile is only relevant for users of the Navigate Edition.
  • SDKOptions.customEngineBaseUrls: Added support for configurable endpoints with the new enum value EngineBaseURL.DS_PROXY that can be used to specify custom endpoints to set a DS Proxy instead of the default endpoints. Example URL (with added endpoints): "https://data.api.platform.yourcompany.com/direct/v1/test".
  • Added SDK_ENGINE_ALREADY_DISPOSED to InstantiationErrorCode enum to indicate that SDKNativeEngine.dispose() was already called.

Known Issues

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

Version 4.12.8.0

Resolved Issues

  • MapViewLite: Fixed occasional occlusion of labels with a higher priority by the ones that have a lower priority.

Known Issues

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

Version 4.12.7.0

New Features

  • SearchEngine: Added connectorTypeId to EVChargingStation. More information on the IDs and the corresponding type can be found here.

Known Issues

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

Version 4.12.6.0

New Features

  • Search: Added CategoryQuery.fuelTypes and TextQuery.fuelTypes, which can be used to filter FuelStation results based on available fuel types. Added also TextQuery.truckFuelTypes and CategoryQuery.truckFuelTypes, which can be used to filter FuelStation results based on available truck fuel types.
  • Added CategoryQuery.truckClass and TextQuery.truckClass, which can be used to filter FuelStation results with the minimum supported TruckClass. This filter is only available for use with the SearchEngine. The OfflineSearchEngine (not available for all editions) ignores this filter.
  • Added RoutePlace.sideOfDestination to identify the side of a street where the destination waypoint resides.

Resolved Issues

  • RoutingEngine: The importRoute() feature via a list of Locations can be used now as expected.

Known Issues

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

Version 4.12.5.0

New Features

  • SearchEngine: Added the property Details.fuelStation that contains fuel station attributes. Added struct sdk.search.FuelStation,sdk.search.FuelAdditive, sdk.search.GenericFuel, sdk.search.TruckFuel. Currently it is supported only for online search. It can be enabled by adding show=fuel as custom option. This is a beta feature and thus subject to change.

Known Issues

  • 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.
  • RoutingEngine: The importRoute() feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.

Version 4.12.4.0

New Features

  • Added ENTER_HIGHWAY_FROM_LEFT and ENTER_HIGHWAY_FROM_RIGHT values to ManeuverAction enum. They indicate the maneuver action for a driver to perfom on entering a highway either from the left or right side. These enum values are only generated when setting the enableEnterHighwayManeuverAction flag in RouteOptions to true. By default, the flag is set to false. With HERE SDK 4.14.0 we plan to set it to true, by default.
  • Added sdk.search.AreaType enum which represents the type of an area such as country, state or district. Added sdk.search.Place.getAreaType() method which gets the area type for the respective Place.
  • Added EVChargingStation.hasFixedCable field to know if a charging station for electric vehicles supports fixed cables.

Resolved Issues

  • Increased size limit from 10000 to 50000 for routingEngine.importRoute() when setting a list of Location points.
  • RoutingEngine: Improved the time to calculate Route results for very large routes.
  • RoutingEngine: Fixed missing toll information for bus or taxi online routes.

Known Issues

  • 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.
  • RoutingEngine: The importRoute() feature via a list of Locations cannot be used yet commercially and requires custom access credentials. Please contact your sales representative to get access.

Version 4.12.3.0

New Features

  • Added CategoryQuery.includeChains and CategoryQuery.excludeChains that support search filtering by chains.
  • 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.

API Changes - Breaking

  • Search for EV charging stations: Moved and renamed Place.Details.EVChargingStationAttributes to Place.Details.EVChargingPool.EVChargingPoolDetails.

API Changes - Deprecations

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

Known Issues

  • 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.
  • The newly introduced TruckAmenities feature is not highlighted as a beta API in the API Reference.
  • 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.

Version 4.12.2.0

New Features

  • Search Details now contain EVChargingStationAttributes - if applicable for a Place.

API Changes - Breaking

  • Removed connectorTypeId from the search type EVChargingStation. The API is still in beta state.

Resolved Issues

  • 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

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

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

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

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

Version 4.12.0.0

API Changes - Breaking

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

Known Issues

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

Version 4.11.4.0

New 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 setGeoCoordinates() and getGeoCoordinates() to Metadata.

Resolved Issues

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

Known Issues

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

Version 4.11.3.0

New Features

  • Added sdk.transport.TruckSpecifications as replacement for the deprecated sdk.routing.TruckSpecifications.

API Changes - Deprecations

  • Deprecated sdk.routing.TruckSpecifications class. Use 'sdk.transport.TruckSpecifications' instead.
  • 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.

Known Issues

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

Version 4.11.2.0

New Features

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

Resolved Issues

  • 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

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

Version 4.11.1.0

New Features

  • Search: Added Suggestion.getId() that returns an auto suggest item ID.

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.

Known Issues

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • Bus routes may not be fully accurate and the TransportMode of such routes is incorrectly changed to CAR.
  • 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.

Version 4.11.0.0

New Features

  • 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 support for online Bus route calculation via RoutingEngine. Added TransportMode.BUS and BusOptions.

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 Section.getTrafficSpeeds() method. Use instead Span.getTrafficSpeed().

Resolved Issues

  • The returnToRoute() feature of the RoutingEngine now routes back to the first untravelled waypoint and the routeFractionTraveled parameter is no longer ignored.

Known Issues

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

Version 4.10.5.0

New Features

  • Added support for custom backends with the new EngineBaseURL enum and the customEngineBaseUrls field in SDKOptions.
  • 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.

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 Location.timestampSinceBootInMilliseconds. Use Location.timestampSinceBoot 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.
  • Fixed default color value and width for map objects: Previously, MapPolyline, MapCircle and MapPolygon were created invisible without any color with a 5 px stroke for MapCircle and MapPolygon and 5px width for polylines. This was inconsistent with getters for colors which were returning black transparent color (invisible in practice). After this change map items are created visible with black transparent colors and 0 px strokes and width for polylines.

Known Issues

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

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

Known Issues

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

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

API Changes - Deprecations

  • Deprecated BatterySpecifications.changingSetupDurationInSeconds. Use BatterySpecifications.changingSetupDuration instead.
  • Deprecated TruckOptions.tunnel_category enum. Use 'TruckOptions.link_tunnel_category' instead.
  • Deprecated sdk.mapviewlite.MapSceneConfig(mapLayers, customMapLayers, rasterLayers, mainLanguageCode, fallbackLanguageCode) constructor. Please use the default constructor instead.
  • Deprecated Maneuver.durationInSeconds. Use Maneuver.duration instead.
    • Deprecated Section.durationInSeconds. Use Section.duration instead.
    • Deprecated Section.trafficDelayInSeconds. Use Section.trafficDelay instead.
  • Deprecated Waypoint.durationInSeconds. Use Waypoint.duration instead.
  • Deprecated sdk.routing.TunnelCategory enum. Use 'sdk.transport.TunnelCategory' instead.
  • Deprecated Route.durationInSeconds. Use Route.duration instead.
    • Deprecated Route.trafficDelayInSeconds. Use Route.trafficDelay instead.
  • Deprecated EVTruckOptions.tunnel_category. Use EVTruckOptions.link_tunnel_category instead.
  • Deprecated sdk.mapviewlite.Camera.OrientationUpdate(tilt, bearing) constructor. Use the default constructor 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.

Known Issues

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

Version 4.10.2.0

New Features

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

API Changes

  • Deprecated sdk.routing.EVConsumptionModel(ascentConsumptionInWattHoursPerMeter, descentRecoveryInWattHoursPerMeter, freeFlowSpeedTable, trafficSpeedTable, auxiliaryConsumptionInWattHoursPerSecond) 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.routing.AvoidanceOptions(roadFeatures, countries, avoidAreas, zoneCategories, segments) 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 sdk.routing.PedestrianOptions(routeOptions, textOptions, avoidanceOptions, walkSpeedInMetersPerSecond) 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

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

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

API Changes

  • Changed type of RefreshRouteOptions constructor parameter from sdk.routing.TransportMode to sdk.transport.TransportMode.
  • 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.
  • Search: Deprecated Address 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 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.
  • Deprecated CarOptions constructor with all parameters. Use the default constructor instead.
  • Routing: Deprecated a route's Link. Use Span 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.

Resolved Issues

  • Fixed: When cachePath and persistentMapStoragePath are changed via SDKOptions, then it may not change the default path.
  • 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.

Known Issues

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

Version 4.10.0.0

New Features

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

API Changes

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

Resolved Issues

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

Known Issues

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • 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.
  • When cachePath and persistentMapStoragePath are changed via SDKOptions, then it may not change the default path.

Version 4.9.4.0

New Features

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

Known Issues

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.
  • 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

Resolved Issues

  • Fixed enterHigway maneuver action which was incorrectly reported as turn left / right instead of left / right fork.

Known Issues

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

Version 4.9.2.0

New Features

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

Known Issues

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

Version 4.9.1.0

API Changes

  • Removed deprecated tag for PERSISTENT_MAP_STORAGE_FOLDER_ACCESS_DENIED. PERSISTENT_MAP_STORAGE_FOLDER_ACCESS_DENIED is not deprecated anymore.

Resolved Issues

  • Fixed: Route imports no longer fail when Location.time is set.

Known Issues

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

Version 4.9.0.0

New Features

  • Routes can now be imported: Added routingEngine.importRoute() to import a route from a list of GeoCoordinates and RouteOptions.
  • Added optional field time to Location class to specify the time when the location data was set.
  • 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 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.
  • Search: Removed the perviously deprecated OPTION_NOT_AVAILABLE value from the SearchError enum. It was replaced by the SearchError.INVALID_PARAMETER value.
  • Deprecated field timestamp in Location class, please use the newly introduced time field instead.

Known Issues

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

Version 4.8.4.0

New Features

  • 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().
  • 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

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

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

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

Known Issues

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

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

Known Issues

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

Version 4.8.1.0

New Features

  • 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

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

Version 4.8.0.0

API Changes

  • Map view: Removed the previously deprecated method MapViewLite.setMaxTilesCacheSize(long maxSizeInBytes).
  • Map view: Removed the previously deprecated CameraLimits.ErrorCode.VALUE_OUTSIDE_LIMITS from MapViewLite.
  • Search: Removed previously deprecated fields in Contact: emailAddresses, landlinePhoneNumbers, mobilePhoneNumbers, websiteAddresses.
  • Routing: Removed the previously deprecated Arrival and Departure classes.

Known Issues

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

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.

API Changes

  • Routing: Updated the API for the returnToRoute and refreshRoute feature for RoutingEngine:
    • 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.

Known Issues

  • The jamFactor indicating TrafficSpeed is currently calculated linear without taking road types and other parameters into account.

Version 4.7.6.0

Known Issues

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

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

Known Issues

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

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

  • Custom map layers: Extended the validation for custom raster layer names raster to include hyphens and underscores. Now, only alphanumeric characters like \[a-zA-Z0-9\], hyphens and underscores are allowed.
  • 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

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

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

Known Issues

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

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.

Known Issues

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

Version 4.7.1.0

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

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

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.

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

  • 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: The opening hours for a Place that closes after midnight end at midnight.

Known Issues

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

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.

Known Issues

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

Version 4.6.4.0

New Features

  • Routing: Introduced Waypoint.minCourseDistanceInMeters to specify an optional distance parameter during which a user can avoid taking actions.

Known Issues

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

Version 4.6.3.0

New Features

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

Known Issues

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

Version 4.6.2.0

Resolved Issues

  • Fixed: When SDKOptions is created before initialization of SDKNativeEngine it may contain a corrupted path.

Known Issues

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

Version 4.6.1.0

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.

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

  • 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.
  • When SDKOptions is created before initialization of SDKNativeEngine it may contain a corrupted path.
  • 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.0.0

Highlights

  • 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

  • Added ScooterOptions.allowHighway property.
  • 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.

API Changes

  • Removed beta status for scooter transport mode.
  • 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.
  • Deprecated all methods to set the maximum tiles cache size on MapViewLite. Use SDKOptions.cacheSizeInBytes instead. This option can be set from AndroidManifest or programmatically. The default cache size is 256 MB.
  • The SDKNativeEngine now locks access to the map data cache. When another instance of SDKNativeEngine is instantiated with the same access key id then now an exception is thrown.
  • Maneuver: Deprecated roadName, roadNameLanguageCode, roadNumber, nextRoadName, nextRoadNameLanguageCode, nextRoadNumber. Added instead RoadTexts with roadTexts and nextRoadTexts and LocalizedText and LocalizedTexts.

Resolved Issues

  • Fixed: MapOverlay views may not be fully visible when the map is moved.

Known Issues

  • 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.
  • 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.
  • Added a sky box to MapViewLite. The effect is visible on the highest zoom levels with a big tilt.

New Features

  • 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

  • MapOverlay views may not be fully visible when the map is moved.
  • 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.

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

Known Issues

  • MapOverlay views may not be fully visible when the map is moved.
  • 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.

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.

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 various deadlocks and crashes of MapViewLite, for example when callbacks are executed after the map view was already destroyed.

Known Issues

  • MapOverlay views may not be fully visible when the map is moved.
  • 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.

Version 4.5.1.0

New Features

  • Introduced Maneuver.getLengthInMeters() method to return the length of the maneuver.
  • 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.

API Changes

  • MapPolygonLite accepts now any list order: A GeoCoordinates list does no longer need to be clockwise ordered when passed to constructor. If it's counter-clockwise, its order is reversed.
  • The strokes for MapCircleLite and MapPolygonLite are no longer doubled.
  • Very sharp MapPolygonLite edges now have bevel joins instead of miter joins.
  • Deprecated CameraLimits.ErrorCode.VALUE_OUTSIDE_LIMITS, because it's unused.

Known Issues

  • MapOverlay views may not be fully visible when the map is moved.
  • 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.

Version 4.5.0.0

Highlights

  • Added heresdk-lite-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.
  • 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 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

  • Removed deprecated camera limits methods, use the previously introduced setBearingRange(AngleRange value), getBearingRange() instead:
    • double getMaxBearing()
    • double getMinBearing()
    • void setMaxBearing(double)
    • void setMinBearing(double)
  • Removed deprecated camera API:
    • GeoBox getBoundingRect(), use the previously introduced getBoundingBox() instead
  • Removed deprecated pick map items methods, use the previously released counterparts instead:
    • public void pickMapItems(@NonNull Point2D viewCoordinates, @NonNull Float radius, @NonNull PickMapItemsCallback callback)
  • Removed deprecated map items styling methods, use the previously released counterparts setXYInPixels() instead:
    • void MapPolygonStyle.setStrokeWidth(float)
    • float MapPolygonStyle.getStrokeWidth()
    • void MapCircleStyle.setStrokeWidth(float)
    • float MapCircleStyle.getStrokeWidth()
    • void MapPolylineStyle.setWidth(float)
    • float MapPolylineStyle.getWidth()
  • Removed a deprecated GeoCoordinates constructor, use the previously introduced counterpart instead.
  • Removed a deprecated Anchor2D constructor, use the previously introduced counterpart instead.
  • Moved AngleRange from com.here.sdk.mapviewlite to com.here.sdk.core package.

Resolved Issues

  • Fixed: A category search along a route will crash when the GeoCorridor.polyline list parameter is empty.

Known Issues

  • MapOverlay views may not be fully visible when the map is moved.
  • 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.

Version 4.4.6.0

Highlights

  • This release focuses on overall stability and performance improvements.

Known Issues

  • MapOverlay views may not be fully visible when the map is moved.
  • A category search along a route will crash when the GeoCorridor.polyline list parameter is empty.
  • A Maneuver.polyline list of GeoCoordinates has only one element for the last maneuver of a route.

Version 4.4.5.0

New Features

  • 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).

Known Issues

  • MapOverlay views may not be fully visible when the map is moved.
  • A category search along a route will crash when the GeoCorridor.polyline list parameter is empty.

Version 4.4.4.0

Highlights

  • The HERE SDK supports now multiple instances of MapViewLite at the same time. The exception that is thrown when a second instance is created was removed.

API Changes

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

Resolved Issues

  • 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

  • MapOverlay views may not be fully visible when the map is moved.

Version 4.4.3.0

New Features

  • Certain areas can now be excluded from route calculation with AvoidanceOptions that contain an avoidAreas list holding GeoBox items which routes should not cross.
  • 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 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 a crash in MapViewLite when an app is coming back to an Activity from background.
  • Fixed: SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Fixed: Map gestures can be slow when there's no internet connection and the map is using cached map data.

Known Issues

  • MapOverlay views may not be fully visible when the map is moved.

Version 4.4.2.0

New Features

  • 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

  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Map gestures can be slow when there's no internet connection and the map is using cached map data.

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.

Known Issues

  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Map gestures can be slow when there's no internet connection and the map is using cached map data.
  • 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.4.0.2

New Features

  • 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.
  • Added a new font with Chinese, Japanese and Korean characters. The font occupies 1.7MB and can be optionally removed to save space: Open the AAR file and remove the following files:
    • assets/style/fonts/DroidSansFallback.woff
    • assets/style/fonts/DroidSansFallback.license

API Changes

  • Changed the rendered resolution of map tiles from 256x256 to 512x512 pixels. Now, all zoom levels are shifted by -1. I.e. users should subtract 1 from their default zoom levels in their apps or custom zoom level limits.
  • Reduced the rotation sensitivity of the Pinch Rotate gesture. Now, it is easier to zoom in on the map without rotating it.
  • Moved the LocationProvider and LocationListener interfaces from the com.here.sdk.navigation to the com.here.sdk.core package.

Resolved Issues

  • Fixed: Map labels are not rendered in Chinese, Japanese and Korean. Now, Map labels are rendered in Chinese, Japanese and Korean.

Known Issues

  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Map gestures can be slow when there's no internet connection and the map is using cached map data.
  • 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.

API Changes

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

Resolved Issues

  • Fixed visual design of the disputed borders for the NORMAL_DAY and HYBRID_DAY map styles.

Known Issues

  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Map labels are not rendered in Chinese.
  • Map gestures can be slow when there's no internet connection and the map is using cached map data.

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 ability to get the currently used tile cache size with the method long getTilesCacheSize().

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: Route scene is not displayed fully for the longest routes. Now, the route scene is displayed fully for the longest routes.
  • Fixed: Missing continent labels at maximum zoom out level. Now, continent labels are rendered at the maximum zoom out level.

Known Issues

  • SearchEngine: Place.getId() is empty for reverse geocoding results.
  • Map labels are not rendered in Chinese.

Version 4.3.2.0

New Features

  • Added updated support for the SDKOptions.cachePath handling. If SDKOptions.cachePath is not set, it will be assigned a default path [to be precise: Context.getCacheDir().getPath()]. Plus, a custom cachePath can be set in the app's manifest file via the "com.here.sdk.cache_path" key.

Resolved Issues

  • 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.
  • Map labels are not rendered in Chinese.

Version 4.3.1.0

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.

Version 4.3.0.0

New Features

  • Added the GeoCoordinates(double latitude, double longitude, double altitude) constructor.
  • Added the GeoPolygon(@NonNull GeoCircle geoCircle) constructor.
  • Added the GeoCircle() constructor that accepts type double for the radius parameter.
  • Added the method MapViewLite.pickMapItems(Point2D viewCoordinates, double radius,PickMapItemsCallback callback) to pick map items from the MapView.
  • Added the following to the com.here.sdk.search package:
    • AddressQuery to specify an address query.
    • CategoryQuery to specify a query by categories.
    • Contact that represents the contact information.
    • IdQuery to specify an id query.
    • OpeningHours to represent the information on opening hours.
    • Place to represent a location object, such as a country, a city, a point of interest(POI) etc.
    • PlaceCategory to define a set of most commonly used categories.
    • ScheduleDetails to encapsulate schedule details complying with the iCalendar specification.
    • Suggestion to represent a suggestion of an address or a place based on a query.
    • TextQuery option to specify a text query.
  • Added the following methods to SearchEngine:
    • search(query: IdQuery, callback: IdSearchCallback) to search for a place based on its ID.
    • search(query: CategoryQuery, callback: SearchCallback) to search for places based on a list of categories.
  • Added the structure Details to the Place object. It contains following fields:
    • categories for the list of categories assigned to the place.
    • contacts for the contact list of the place.
    • openingHours for the list of information on the opening hours of the place.
  • Added the following methods to manage tile caching:
    • setMaxTilesCache(long maxSizeInBytes) to set the maximum size available for tiles caching.
    • clearTilesCache() to remove all cached tiles from the persistent memory.
  • Added the constructor SDKOptions(@NonNull String accessKeyId, @NonNull String accessKeySecret, @NonNull String cachePath, @NonNull AuthenticationPreferences authenticationPreferences) to SDKOptions to use the local system time for authentication instead of getting it from the server.

API Changes

  • Changed type of GeoCoordinates.altitude from float to double.
  • Changed the return type of Route.getDurationInSeconds() from long to int.
  • Changed the return type of Route.getTrafficDelayInSeconds() from long to int.
  • Changed the return type of Section.getDurationInSeconds() from long to int.
  • Changed the return type of Section.getTrafficDelayInSeconds() from long to int.
  • Changed the return type of SectionProgress.remainingDurationInSeconds from long to int.
  • Changed the return type of SectionProgress.trafficDelayInSeconds from long to int.
  • Changed the method in the PanListener from void onPan(@NonNull GestureState state, @NonNull Point2D origin, @NonNull Point2D translation, float velocity) to void onPan(@NonNull GestureState state, @NonNull Point2D origin, @NonNull Point2D translation, double velocity).
  • Changed the method in the PinchRotateListener from void onPinchRotate(@NonNull GestureState state, @NonNull Point2D pinchOrigin, @NonNull Point2D rotationOrigin, float twoFingerDistance, @NonNull Angle rotation) to void onPinchRotate(@NonNull GestureState state, @NonNull Point2D pinchOrigin, @NonNull Point2D rotationOrigin, double twoFingerDistance, @NonNull Angle rotation).
  • Changed the method in the TwoFingerPanListener from void onTwoFingerPan(@NonNull GestureState state, @NonNull Point2D origin, @NonNull Point2D translation, float velocity) to void onTwoFingerPan(@NonNull GestureState state, @NonNull Point2D origin, @NonNull Point2D translation, float velocity).
  • Removed the MapMatchedWaypoint class.
  • Removed the RouteRestrictions class.
  • Removed the SideOfStreet enumeration.
  • Removed the Route.getMapMatchedWaypoints() method.
  • Removed the interface Searchable.
  • Replaced Suggestion.getSearchable with Suggestion.getPlace.
  • Removed the method SearchOptions(@Nullable Integer maxItems).
    • Use SearchOptions() instead, as the languageCode and maxItems are set to null with this constructor.
  • Removed the AutosuggestEngine, GeocodingEngine, and ReverseGeocodingEngine. Their functionalities are now integrated into the SearchEngine class:
    • Use SearchEngine.search(TextQuery, SearchOptions, SearchCallback) to search for Place results.
    • Use SearchEngine.search(AddressQuery, SearchOptions, SearchCallback) to geocode an address to a geographic coordinate. Now, geocoding is limited to GeoCoordinates. GeoBox and GeoCircle are dropped.
    • Use SearchEngine.search(GeoCoordinates, SearchOptions, SearchCallback) to reverse geocode a geographic coordinate to an address.
    • Use SearchEngine.search(CategoryQuery, SearchOptions, SearchCallback) to search for Place results based on a list of categories.
    • Use SearchEngine.suggest(TextQuery, SearchOptions, SuggestCallback) to search for auto suggested Place results.
  • Replaced SearchCategory with SearchEngine.search(CategoryQuery, Options, SearchCallback).
  • Replaced the CategoryId class with the PlaceCategory class.
  • Replaced the SearchResult class with the Place class.
  • Replaced the SearchEngine.Callback, GeocodingEngine.Callback, and the ReverseGeocodingEngine.Callback by the SearchCallback class.
  • Replaced the AutosuggestEngine.Callback with the the SuggestCallback class.
  • Removed the following classes and their functionalities:
    • AutosuggestResultType
    • GeocodingResult
  • Removed the AutosuggestResult class. Its functionalities have now been moved to the Suggestion class.
  • Removed the field textformat from the SearchOptions class.
  • Removed the function SearchOptions.getDefaultOptions().
  • Removed the following constructors from the SearchEngine:
    • SearchEngine(SearchOptions defaultOptions).
    • SearchEngine(SDKNativeEngine engine, SearchOptions defaultOptions).
  • Removed the BicycleOptions from the transport mode options for route calculation.
  • OptimizationMode.SHORTEST is no longer supported and now automatically converted to OptimizationMode.FASTEST for the transport mode option TransportMode.PEDESTRIAN.

Deprecated

  • Deprecated the GeoCoordinates(double latitude, double longitude, float altitude) constructor. Use the GeoCoordinates(double latitude, double longitude, double altitude) constructor instead.
  • Deprecated the method MapViewLite.pickMapItems(Point2D viewCoordinates, Float radius,PickMapItemsCallback callback). Use the MapViewLite.pickMapItems(Point2D viewCoordinates, double radius,PickMapItemsCallback callback) instead.
  • Deprecated the GeoCircle() constructor that accepts type float for the radius parameter. Use the GeoCircle() constructor that accepts type double for the radius parameter instead.

Resolved Issues

  • Fixed: Engines will not operate when the time of the device is incorrect. Now, the timestamp of the device is authenticated to enable the engines to operate.

Known Issues

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

Version 4.2.2.0

New Features

  • Added a TileServerProvider interface that allows to provide a custom implementation to generate dynamic URLs for a RasterLayer. This can be useful to set different raster layer sources based on the region in the world. Added SimpleTileServerProvider as a convenience implementation that sets a static tile URL provider.

API Changes

  • Changed constructor for RasterLayer to allow setting a TileServerProvider (see above).

Known Issues

  • Engines will not operate when the device's time is wrong. Also, the map will not be able to show any (vector) tiles.

Deprecated

  • The method Camera.getBoundingRect() is deprecated. Use the newly introduced method Camera.getBoundingBox() instead.

Version 4.2.1.0

New Features

  • Added Camera.orbitBy(@NonNull Camera.OrientationUpdate delta, @NonNull Point2D origin) to orbit the camera around a specified point.
  • Added Camera.zoomBy( double factor, @NonNull Point2D origin) to zoom the camera around a specified point relative to the given factor.
  • Added Authentication API to obtain a valid token that can be used to initiate queries to HERE REST APIs.

API Changes

  • Replaced enum type RoadType.STREET with RoadType.RURAL and RoadType.URBAN.

Known Issues

  • Engines will not operate when the device's time is wrong. Also, the map will not be able to show any (vector) tiles.

Version 4.2.0.0

New Features

  • Added the HERE logo watermark placement functionality with the enum WatermarkPlacement and method MapViewLite.setWatermarkPosition(WatermarkPlacement placement, int bottomCenterMargin).

API Changes

  • Removed the BALANCED identifier from the OptimizationMode enum for route calculation.
  • Renamed RouteLeg to Section
  • Renamed Route.getLegs() to Route.getSections().
  • Renamed RouteProgress.routeLegIndex to RouteProgress.sectionIndex.
  • Renamed member geoBox to boundingBox in the following data structures:
    • SearchResult.geoBox to SearchResult.boundingBox.
    • AutosuggestResult.geoBox to AutosuggestResult.boundingBox.
    • GeocodingResult.geoBox to GeocodingResult.boundingBox.
    • OpenSearchEngine.Result.geoBox to OpenSearchEngine.Result.boundingBox.
    • OpenGeocodingEngine.Result.geoBox to OpenGeocodingEngine.Result.boundingBox.
  • Renamed SearchResult.geoCoordinates to SearchResult.coordinates.
  • Changed callbacks to nested types in the following methods:
    • SearchEngine:
      • SearchEngine.search(GeoCoordinates coordinates, String query, SearchOptions options, SearchCallback callback) to SearchEngine.search(GeoCoordinates coordinates, String query, SearchOptions options, SearchEngine.Callback callback).
    • AutosuggestEngine:
      • AutosuggestEngine.suggest(GeoCoordinates coordinates, String query, AutosuggestOptions options, AutosuggestCallback callback) to AutosuggestEngine.suggest(GeoCoordinates coordinates, String query, AutosuggestOptions options, AutosuggestEngine.Callback callback).
    • ReverseGeocodingEngine:
      • ReverseGeocodingEngine.searchAddress(GeoCoordinates coordinates, String query, ReverseGeocodingOptions options, ReverseGeocodingCallback callback) to ReverseGeocodingEngine.searchAddress(GeoCoordinates coordinates, String query, ReverseGeocodingOptions options, ReverseGeocodingEngine.Callback callback).
    • GeocodingEngine:
      • GeocodingEngine.searchLocations(GeoCoordinates coordinates, String query, GeocodingOptions options, GeocodingCallback callback) to GeocodingEngine.searchLocations(GeoCoordinates coordinates, String query, GeocodingOptions options, GeocodingEngine.Callback callback).
    • TrafficEngine:
      • TrafficEngine.queryForIncidents(GeoBox boxArea, IncidentQueryOptions options, QueryForIncidentsCallback callback) to TrafficEngine.queryForIncidents(GeoBox boxArea, IncidentQueryOptions options, TrafficEngine.Callback callback).

Resolved Issues

  • Fixed issue with incorrect pixel width set for rendering a MapPolyline on the map. Now, a MapPolyline can have its stroke width set to physical pixels.

Known Issues

  • Engines will not operate when the device's time is wrong. Also, the map will not be able to show any (vector) tiles.

Version 4.1.6.0

New Features

  • Added the new fields mainLanguageCode and fallbackLanguageCode to specify the desired map language via MapSceneConfig when loading a map scene.
  • Added a Color class that encapsulates common color values.
  • Added Route.getTrafficDelayInSeconds() and RouteLeg.getTrafficDelayInSeconds().

API Changes

  • Custom route options moved to CustomRoutingEngine as nested types:
    • CustomCarOptions moved to CustomRoutingEngine.CarOptions.
    • CustomBicycleOptions moved to CustomRoutingEngine.BicycleOptions.
    • CustomPedestrianOptions moved to CustomRoutingEngine.PedestrianOptions.
    • CustomTruckOptions moved to CustomRoutingEngine.TruckOptions.
    • CustomTruckSpecifications moved to CustomRoutingEngine.TruckSpecifications.
  • MapCircle center latitude is now limited to the range [85S, 85N]. Map circle's radius can't exceed the range [89S, 89N] to prevent crossing a pole, otherwise it is clamped.
  • Changed types for Incident.startTimestamp, Incident.stopTimestamp and Incident.updateTimestamp from Long to Date.
  • Merged com.here.sdk.fleettelematics package into com.here.sdk.routing package.
  • Changed field coordinates to geoCoordinates in SearchResult.
  • Removed trafficMode option from RouteOptions. Traffic delay is now enabled by default.
  • Renamed Route.getShape() to Route.getPolyline().
  • Renamed RouteLeg.getShape() to RouteLeg.getPolyline().
  • Renamed Maneuver.getShape() to Maneuver.getPolyline().
  • Changed type for GeocodingOptions.maxItems from Long to Integer.
  • Changed the maximum possible number of route alternatives for the method RouteOptions.alternatives from 9 to 6.
  • Changed the draw order behavior for MapPolylines, MapCircles and MapPolygons. The draw order is now limited by 1000 to avoid conflicts with regular map data like labels or building footprints. The draw order should be mainly used to adjust the stack order of objects of the same type.
  • Renamed WaypointType.STOP_OVER to WaypointType.STOPOVER.
  • Renamed Route.getTravelTimeInSeconds() to Route.getDurationInSeconds() and changed the returned type from int to long. Same for RouteLeg.
  • Removed Route.getBaseTimeInSeconds() and Route.getTrafficTimeInSeconds(). Same for RouteLeg. Use Route.getTrafficDelayInSeconds() instead.

Resolved Issues

  • Fixed issue with map data not being localized. See the new fields added to MapSceneConfig above to set a LanguageCode.
  • Fixed issue with error handling when loading custom map styles. Now, loading a map returns an invalid scene error if the YAML file passed does not exist and is incorrect.
  • Fixed issue with traffic flow missing at a specific zoom level. Now, traffic flow is displayed at all zoom levels.

Version 4.1.5.0

New Features

  • Added support for AndroidX. Apps can still be developed using API level 21 and support library.
  • Added kinetic panning to the map ('slippy map'). The map will now smoothly animate along the last direction after a user stops panning. It can be disabled together with the pan gesture.
  • PanGestureHandler.onPan() is now called with GestureState.CANCEL for the first touch after GestureState.END to stop any kinetic movement that is still in progress.
  • Added Maneuver.getRoadNumber() and Maneuver.getNextRoadNumber() to get the current road number and the next road number.

API Changes

  • Removed option NOT_IMPLEMENTED_YET from EngineInstantiationErrorCode enum.
  • Renamed EngineInstantiationErrorCode enum to InstantiationErrorCode.
  • Renamed EngineInstantiationException to InstantiationErrorException.
  • Renamed Location.timestampInMilliseconds to Location.timestamp.
  • Changed type Location.timestamp from Long to Date.
  • Removed field MapMatchedWaypoint.mapMatchedRoadName.
  • Changed dependency support library to AndroidX.
  • Route options moved to RoutingEngine as nested types:
    • CarOptions moved to RoutingEngine.CarOptions.
    • BicycleOptions moved to RoutingEngine.BicycleOptions.
    • PedestrianOptions moved to RoutingEngine.PedestrianOptions.
    • TruckOptions moved to RoutingEngine.TruckOptions.
    • TruckSpecifications moved to RoutingEngine.TruckSpecifications.

Known Issues

  • Map data may not be localized based on the device's language.

Version 4.1.4.0

Highlights

  • Added new tutorials to the Developer's Guide that show how to implement smooth Move-To-XY animations and animated map gestures for zoom in/out and kinetic panning.

New Features

  • Added Maneuver.getRoadName() and Maneuver.getNextRoadName() to get the current road name and the next road name.
  • Added the method CameraLimits.getMaxTiltForZoomLevel() for checking the tilt limit at a specific zoom level. The maximum tilt depends on the current zoom level; setting a new zoom level will potentially change the tilt angle.

API Changes

  • Renamed Instruction to Maneuver.
  • Renamed RouteTextOptions.languages to RouteTextOptions.language as it accepts not more than one language.
  • Moved Route.getTransportMode() to RouteLeg.getTransportMode().
  • Moved com.here.sdk.search.Address to com.here.sdk.searchcommon.Address.
  • Moved com.here.sdk.mapviewlite.LoadSceneCallback to com.here.sdk.mapviewlite.MapScene class.
  • Renamed SceneError to ErrorCode and moved to com.here.sdk.mapviewlite.MapScene class.
  • Renamed CameraLimitsErrorCode to ErrorCode and moved to com.here.sdk.mapviewlite.CameraLimits class.
  • Removed the constant CameraLimits.MAX_TILT.

Known Issues

  • Map data may not be localized based on the device's language.

Version 4.1.3.0

This release is mainly focused on stabilization of existing features, bug fixes and overall performance improvements.

Known Issues

  • Map data may not be localized based on the device's language.

Resolved Issues

  • The draw order for raster tile layers now works relatively to other raster tile layers.
  • Fixed visibility issues for flat map markers.
  • Fixed outlines for map circles.

Version 4.1.2.0

New Features

  • The SearchEngine can now be used to search for categories like 'restaurants' by setting a list of CategoryId values.

API Changes

  • Moved all classes from com.here.sdk.mapviewlite.gestures package to com.here.sdk.gestures.
  • Renamed SearchItem to SearchResult.
  • Removed the field SearchResult.href.
  • Renamed the members:
    • AutosuggestResult.boundingRect to AutosuggestResult.geoBox.
    • GeocodingResult.boundingRect to GeocodingResult.geoBox.
    • SearchResult.boundingBox to SearchResult.geoBox.
  • Renamed the members:
    • AutosuggestResult.geoCoordinates to AutosuggestResult.coordinates.
    • GeocodingResult.geoCoordinates to GeocodingResult.coordinates.

Version 4.1.1.0

New Features

  • SearchEngine can now be used to search within a bounding rect for categories by setting a list of CategoryId values.
  • AutosuggestEngine:
    • Added the option to search within a GeoCircle.
    • Added the possibility to request specific types (place, address and/or query) via AutosuggestResultType that can be set for the AutosuggestOptions.
    • Added TaskHandle as a return value when calling AutosuggestEngine.suggest(...) to cancel an ongoing call.

API Changes

  • Changed SearchOptions to AutosuggestOptions when consumed by AutosuggestEngine.
  • Renamed SearchItemCategory to SearchCategory.
  • Changed type SearchCategory from enum to class. SearchCategory now contains the following fields:
    • id (String, required): A unique category identifier. This contains the previous enum values as String.
    • iconLink (String, optional): A web link to the category icon.
    • localizedName (String, required): A localized name describing the category.
  • Removed Instruction.Direction because this information is already available inside Instruction.action.
  • Changed Instruction.Action to ManeuverAction.
  • Renamed the method maneuverInstruction.getAction() to maneuverInstruction.action.
  • Renamed the method maneuverInstruction.getCoordinates() to maneuverInstruction.coordinates.
  • Renamed GeoBoundingRect to GeoBox.

Resolved Issues

  • Fixed: A device orientation change on a MapView may cause a crash on some devices.
  • Fixed: Changing visibility for a MapMarker instance may result in a runtime exception.

Version 4.1.0.0

New Features

  • Added bounding box search for auto suggestions.
  • Added an empty MapStyle that, for example, can be used together with opaque custom raster tile layers.
  • Added the following error values HTTP_ERROR, SERVER_UNREACHABLE and INVALID_PARAMETER to extend error handling for Search, Autosuggest, Geocoding and ReverseGeocoding.

API Changes

  • Renamed PlaceAutosuggestResult to AutosuggestResult.
  • Renamed EngineInstantiationErrorException to EngineInstantiationException.
  • Renamed CameraLimitsErrorException to CameraLimitsException.
  • Unified the error type for SearchEngine, AutosuggestEngine, GeocodingEngine and ReverseGeocodingEngine to be of type SearchError.
  • MapScene.setLayerState is executed immediately now, it no longer takes a callback as an argument, but instead throws an error exception.

Known Issues

  • A device orientation change on a MapView may cause a crash on some devices.
  • Changing visibility for a MapMarker instance may result in a runtime exception.

Resolved Issues

  • Fixed: Map polylines may disappear at certain zoom levels when zooming.
  • Fixed: Parts of the horizontal and vertical lines of a polygon outline may not be drawn perfectly under certain conditions.

Deprecated

  • The methods CameraLimits.setMinBearing(), CameraLimits.setMaxBearing(), CameraLimits.getMinBearing() and CameraLimits.getMaxBearing() are deprecated. Use the newly introduced class AngleRange instead.

results matching ""

    No results matching ""