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.linkTunnelCategory
instead. Removed previously deprecated sdk.routing.EVTruckOptions.tunnelCategory
. Please use sdk.routing.EVTruckOptions.linkTunnelCategory
instead. - 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.HazardousMaterial
instead. Removed previously deprecated variable sdk.routing.TruckOptions.hazardousGoods
. Please use sdk.routing.TruckOptions.hazardousMaterials
instead. Removed previously deprecated variable sdk.routing.EVTruckOptions.hazardousGoods
. Please use sdk.routing.EVTruckOptions.hazardousMaterials
instead. - Removed the previously deprecated
Route.getDurationInSeconds
. Use instead Route.getDuration
. - Removed deprecated
TruckOptions
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_specifications
instead. - Deprecated
EVTruckOptions.specifications
. Use EVTruckOptions.truck_specifications
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.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.