Release Notes
We are pleased to announce the availability of version 4.7.0.0 (Navigate Edition) of the new HERE SDK for Android.
This is a stable release. We are constantly working on new features, stabilizing APIs, improving our KPIs, and evaluating your feedback.
Changes
This section documents major changes to this release that may require you to update your applications.
Version 4.7.0.0
Highlights
- Introduced public transit routing with a new
TransitRoutingEngine
that can calculate public transit routes. It uses TransitWaypoint
type waypoints and a TransitRouteOptions
class to specify various transit related options. Note that the API is in an early development stage. More features and overall stabilization are planned for the next releases. - Added a new
VEHICLE_RESTRICTIONS
layer to MapScene
. It can be activated with MapScene.setLayerState()
and it shows the current vehicle restrictions on the map. For example, weight or height restrictions for trucks at bridges.
New Features
- Along with the newly introduced
TransitRoutingEngine
(see above), the following supportive types have been added: AttributionType
enum, FarePriceType
enum, FareReason
enum, PreActionType
enum, TransitDepartureStatus
enum, TransitIncidentType
enum, TransitIncidentEffect
enum, TransitMode
enum, TransitModeFilter
enum, Agency
class, Attribution
class, Fare
class, FarePrice
class, PreAction
class, TransitIncident
class, TransitDeparture
class, TransitSectionDetails
class, TransitStop class, and TransitTransport
class. - Routing: Introduced a new
Span
class that is accessible from a Section
on a Route
. It points to the related section notices to indicate possible route violations. With the Span
class these violations can now be identified on the Route
as they contain the length in meters and the geometry. - Routing: Added additional constructor for
IsolineOptions.Calculation
: IsolineOptions.Calculation(@NonNull final IsolineRangeType rangeType, @NonNull final List<Integer> rangeValues, @NonNull final IsolineCalculationMode isolineCalculationMode)
. - Search: Added new method to
SearchEngine
to get place details for a Suggestion
that contains a href
String. Use the new sendRequest()
method for this.
API Changes
- Added a new
MapViewLifecycleListener
that replaces the deprecated MapRepresentable
. It can be added or removed from a Mapview
. Use this to get notified on the map view's lifecycle. - Deprecated
MapRepresentable
and the related methods to add or remove it from a MapView
. Use the newly introduced MapViewLifecycleListener
instead. - Removed the previously deprecated
GeoBox.intersects(GeoBox)
and GeoBox.contains(GeoBox)
. - Speed limits: Made
SpecialSpeedSituation.specialSpeedLimitInMetersPerSecond
non-optional and removed the enum items SPEED_BUMPS_PRESENT
and LANE_DEPENDENT
from SpecialSpeedSituationType
, because they do not contain a special speed limit. - Added a new
RoadTextsListener
to get notified on the current road name. - Deprecated
NavigableLocation.streetName
. Use the newly introduced RoadTextsListener
instead. - Removed the previously deprecated
UnitSystem.IMPERIAL
enum item. - Removed the previously deprecated
LocationProvider
and the LocationListener.onLocationTimeout()
method. - Removed the previously deprecated
Section.getTransportMode()
method. - Removed the previously deprecated
GeoCorridor(List<GeoCoordinates>, Double)
constructor. - Removed the previously deprecated
Place.getCoordinates()
. - Removed the previously deprecated fields and constructors from
com.here.sdk.core.Color
.
Resolved Issues
- Fixed: During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
- Fixed: Offline maps:
Region.sizeOnDiskInBytes
is 0 for any Region
. - Fixed: The opening hours for a
Place
that closes after midnight end at midnight. - Fixed: Navigation: Maneuver arrows are not rendered correctly for offline routes.
Known Issues
- The
VisualNavigator
API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked. - Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account. - Offline maps: Once any download for a
Region
fails or is cancelled, all already downloaded regions will be deleted as well. - Offline maps: Some downloadable region names are not fully localized yet.
- Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
- Offline routing:
RouteOptions
are currently ignored completely and only default values will be used. - Offline routing:
Maneuver
information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator
instead. - Offline routing: Offline routes cannot be calculated in Japan.
- An inner city
Route
for trucks carrying dangerous goods may not result in an error message. -
ReturnToRouteEngine
: The guidance maneuver at the merging point between the new route and the old route is not properly generated. - Public transit routes do not contain maneuvers.
Changes from Previous Releases
This section documents major changes from past releases. We encourage you to use the latest release, 4.7.0.0.
Version 4.6.5.0
New Features
- Added support for political views.
SDKOptions
allow now to specify the politicalView
string. It's a three letter country code defined by ISO 3166-1 alpha-3. When set, all map data will respect the point of view of this country. Note that this is a beta feature and thus there can be bugs and unexpected behaviour. - A
Place
can now be serialized or deserialized with serializeCompact()
and deserialize()
to or from a String
. - Routing: Added
SectionNoticeCode
and NoticeSeverity
enums, SectionNotice
class and Section.getSectionNotices()
method to get informed on possible route violations. - Isoline Routing:
- Added
RoutePlaceDirection
enum with values ARRIVAL
and DEPARTURE
. - Added
isolineDirection
field inside IsolineOptions.Calculation
structure (with default value of RoutePlaceDirection.DEPARTURE
) - Extended the existing
IsolineOptions.Calculation
constructor to accept the new RoutePlaceDirection
enum. - Added
RouteOptions.arrivalTime
to set an optional time when a travel is expected to end. Note that this parameter is currently only supported for isoline route calculation.
- Navigation: Added an API to notify users about changes of the current speed limit. Now a
SpeedLimitListener
can be set that allows to get the SpeedLimit
as before, but optionally it may also contain information on SpecialSpeedSituation
events that overrule the default speed limit. Reasons for this are defined in the SpecialSpeedSituationType
enum. A TimeDomain
value informs whether this speed limit is currently active or not. - Navigation: Added a new
ReturnToRouteEngine
that allows the calculate a new route when a deviation from the original route was detected. This engine works offline on already downloaded or cached map data. - Introduced new
SDKCache
class and SDKCacheCallback
that allows to clear the temporarily downloaded map data via the new clearCache()
method. Note: This will not delete downloaded offline maps data. - Offline Search: Added new
OfflineSearchEngine.search()
method that accepts PlaceIdQuery
and an optional LanguageCode
to lookup a Place ID.
API Changes
- Routing: Deprecated the
Notice
class and NoticeCode
enum along with Section.getNotices()
method, use the newly introduced SectionNoticeCode
, SectionNotice
class and Section.getSectionNotices()
method instead. - Search: Deprecated
SearchError.OPTION_NOT_AVAILABLE
enum value, it will be replaced by the existing SearchError.INVALID_PARAMETER
value. - Navigation: Deprecated
NavigableLocation.speedLimitInMetersPerSecond
. Use the newly introduced SpeedLimit
instead.
Resolved Issues
- Fixed: Offline maps: The new method to get installed regions may result in an error. As a workaround get available map regions beforehand and try again.
Known Issues
- The
VisualNavigator
API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked. - Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
- The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account. - Offline maps:
Region.sizeOnDiskInBytes
is 0 for any Region
. - Offline maps: Once any download for a
Region
fails or is cancelled, all already downloaded regions will be deleted as well. - Offline maps: Some downloadable region names are not fully localized yet.
- Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
- Offline routing:
RouteOptions
are currently ignored completely and only default values will be used. - Offline routing:
Maneuver
information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator
instead. - Offline routing: Offline routes cannot be calculated in Japan.
- The opening hours for a
Place
that closes after midnight end at midnight. - An inner city
Route
for trucks carrying dangerous goods may not result in an error message. - Navigation: Maneuver arrows are not rendered correctly for offline routes.
-
ReturnToRouteEngine
: The guidance maneuver at the merging point between the new route and the old route is not properly generated.
Version 4.6.4.0
New Features
- Offline maps: It's now possible to pause and resume pending downloads of a map region via the
MapDownloaderTask
's pause()
and resume()
methods. - Navigation: Maneuver arrows are now rendered by default on the route shown on the map by the
VisualNavigator
. The next maneuver is shown, and removed once reached. - Navigation: The turn-by-turn
ManeuverAction
for roundabouts is now split into 'roundaboutEnter' and 'roundaboutExit'. The behavior for the HERE SDK remains the same. An additional 'LEFT/RIGHT_TURN' action may be given when exiting a larger roundabout. - Routing: Introduced
Waypoint.minCourseDistanceInMeters
to specify an optional distance parameter during which a user can avoid taking actions. - The size of the viewport can now be retrieved from
MapView
with the new viewportSize
property that returns Size2D
in physical pixels. - Enhanced FlyTo
MapCamera
animations from A to B with target orientation and target distance: flyTo(@NonNull GeoCoordinates target, double distanceInMeters, @NonNull MapCamera.FlyToOptions animationOptions)
. - New map styles have been introduced as beta versions.
- The map styles for
NORMAL_DAY
, NORMAL_NIGHT
, HYBRID_DAY
and HYBRID_NIGHT
will be updated with v4.8.0. The planned new map styles are already accessible under following file names as beta versions: - "preview.normal.day.json" - This scheme will update the current
NORMAL_DAY
in v4.8.0. - "preview.normal.night.json" - This scheme will update the current
NORMAL_NIGHT
in v4.8.0. - "preview.hybrid.day.json" - This scheme will update the current
HYBRID_DAY
in v4.8.0. - "preview.hybrid.night.json" - This scheme will update the current
HYBRID_NIGHT
in v4.8.0.
- The legacy map styles for
NORMAL_DAY
, NORMAL_NIGHT
, HYBRID_DAY
and HYBRID_NIGHT
will still be accessible for v4.8.0 until v4.9.0 under the file names listed below. They will be removed with v4.9.0. - "legacy.normal.day.json"
- "legacy.normal.night.json"
- "legacy.hybrid.day.json"
- "legacy.hybrid.night.json"
- "legacy.grey.day.json"
- "legacy.grey.night.json"
API Changes
- The map styles
MapScheme.greyDay
, MapScheme.greyNight
have been deprecated and will be removed. Use the NORMAL_
variants instead. - Navigation: Safety speed camera warner text notifications were always fired. Now, text notifications are only sent via
ManeuverNotificationListener
if a SafetyCameraWarningListener
is set.
Known Issues
- The
VisualNavigator
API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked. - Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
- The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account. - Offline maps:
Region.sizeOnDiskInBytes
is 0 for any Region
. - Offline maps: Once any download for a
Region
fails or is cancelled, all already downloaded regions will be deleted as well. - Offline maps: Some downloadable region names are not fully localized yet.
- Offline maps: The new method to get installed regions may result in an error. As a workaround get available map regions beforehand and try again.
- Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
- Offline routing:
RouteOptions
are currently ignored completely and only default values will be used. - Offline routing:
Maneuver
information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator
instead. - Offline routing: Offline routes cannot be calculated in Japan.
- The opening hours for a
Place
that closes after midnight end at midnight. - An inner city
Route
for trucks carrying dangerous goods may not result in an error message. - Navigation: Maneuver arrows are not rendered correctly for offline routes.
Version 4.6.3.0
New Features
- Added new
WatermarkStyle
enum that defines the style of the HERE watermark logo. The dark watermark should be used for custom styles that are brighter (like daytime) and the light watermark for darker custom schemes (like night or satellite based). Added a new loadScene()
method to MapScene
to accept the new enum together with a custom style. -
MapCamera
: Added FlyToOptions
to customize the fly-to animation from current target GeoCoordinates
to a new location. The durationInMs
parameter defines how long the animation will run, the bowFactor
defines a relative camera height for the ballistic curve that ranges from -1 < 0 (concave curve) to 0 (constant height) to 0 < 1 (convex curve). The maximum height can be achieved with a bowFactor
of 1, the minimum with -1. Note that the height is relative to the distance between current target and new target to achieve a constant look regardless of the current zoom level. - Routing: Added
sideOfStreetHint
property to Waypoint
. These optional GeoCoordinates
indicate which side of the street should be used to reach the waypoint. For example, if the location is to the left of the street, the route will prefer using that side in case the street has dividers. Hence, if the street has no dividers, sideOfStreetHint
is ignored. -
MapDownloader
: Added possibility to delete downloaded map regions via the new deleteRegions()
method that accepts a list of RegionId
elements that should be deleted asynchronously. -
MapDownloader
: Added InstalledRegion
class that holds information on installed regions. Added getInstalledRegions()
method to get the new class.
Resolved Issues
- Fixed: Navigation: Unlimited speed limits may not always be reported as expected.
Known Issues
- The
VisualNavigator
API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked. - Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
- The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account. - Offline maps:
Region.sizeOnDiskInBytes
is 0 for any Region
. - Offline maps: Once any download for a
Region
fails or is cancelled, all already downloaded regions will be deleted as well. - Offline maps: Some downloadable region names are not fully localized yet.
- Offline maps: The new method to get installed regions may result in an error. As a workaround get available map regions beforehand and try again.
- Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
- Offline routing:
RouteOptions
are currently ignored completely and only default values will be used. - Offline routing:
Maneuver
information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator
instead. - The opening hours for a
Place
that closes after midnight end at midnight. - An inner city
Route
for trucks carrying dangerous goods may not result in an error message.
Version 4.6.2.0
Highlights
- Added a new Indoor Routing API (beta) which allows calculating routes inside private venues. The API supports routes from outside to a position inside a venue and from a position inside a venue to the outside. The API also allows showing the resulting routes on the map.
New Features
- Introduced beta versions of new map style combinations for use with
MapScene.loadScene()
: "preview.normal.day.json", "preview.normal.night.json", "preview.hybrid.day.json" and "preview.hybrid.night.json". - Added new map item type:
MapArrow
elements can now be rendered on the map to indicate a direction. They can be added or removed like other map items via MapScene
. -
MapMarker
items can now be made invisible once they overlap each other at certain zoom levels. They contain a new property with isOverlapAllowed()
and setOverlapAllowed(boolean)
. -
VisualNavigator
: The visibility of a Route
can be controlled with setRouteVisible(boolean)
. The property is exposed with isRouteVisible()
. By default, if a route is set, it will be rendered when startRendering()
is called, and removed with stopRendering()
. It is possible to set or remove a route at any time, i.e., before or after calling startRendering()
, and the route in the MapView
will be updated accordingly.
API Changes
- The free flow traffic layer is now rendering green traffic flow lines by default.
-
MapLoader
: Deprecated the meaningless error MapLoaderError.DUPLICATE_CATALOG
. -
VisualNavigator
introduced a behavioral change: The transform center (also known as principal point) of the MapCamera
is automatically adjusted during navigation for better viewing results. Calling startRendering()
changes the principalPoint
property of the MapCamera
so that the current position indicator is placed slightly at the bottom of the MapView
. It is restored to its original value when stopRendering()
is called.
Resolved Issues
- Fixed: When traffic flows are enabled, map gestures may behave slower than expected.
- Fixed: Currently, a
Lane
that is reserved for bus or bicycle does not contain a direction type. - Fixed: Offline routing: Avoidance options are currently ignored.
- Fixed: Offline routing: Ferry links are not extracted to separate sections.
- Fixed: Navigation: Safety camera notifications may come too often.
- Fixed: When
SDKOptions
is created before initialization of SDKNativeEngine
it may contain a corrupted path.
Known Issues
- The
VisualNavigator
API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked. - Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
- The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account. - Currently, a
Lane
that is reserved for bus or bicycle does not contain a direction type. - Offline maps:
Region.sizeOnDiskInBytes
is 0 for any Region
. - Offline maps: Once any download for a
Region
fails or is cancelled, all already downloaded regions will be deleted as well. - Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
- Navigation: Unlimited speed limits may not always be reported as expected.
- Offline routing:
RouteOptions
are currently ignored completely and only default values will be used. - Offline routing:
Maneuver
information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator
instead. - The opening hours for a
Place
that closes after midnight end at midnight. - An inner city
Route
for trucks carrying dangerous goods may not result in an error message.
Version 4.6.1.0
Highlights
- Added new
flyTo()
method to MapCamera
for basic animations from A to B by setting new target coordinates. The animation can be interrupted by gestures or any programmatical change of the camera's position or orientation.
New Features
- Routing: Introduced
ZoneCategory
enum and added zoneCategories
field to to the AvoidanceOptions
struct which is a collection of ZoneCategory
's. - EV routing: Introduced
Route.getEVDetails()
which returns the accumulated evDetails
data for all sections of a route. - Navigation: Added a
PostActionListener
interface, which is accessible from Navigator
and VisualNavigator
with getPostActionListener()
and setPostActionListener()
. - Navigation: The
exitSignTexts
(road exit number) attribute was added to Maneuver
. - Lane Assistance: The following new access types have been added:
automobiles
, buses
, taxis
, carpools
, pedestrians
, trucks
, throughTraffic
, deliveryVehicles
, emergencyVehicles
, motorcycles
. - Positioning: Added new fields to
Location
object: bearingAccuracyInDegrees
, speedAccuracyInMetersPerSecond
, timestampSinceBootInMilliseconds
. Related constructors have been deprecated. Use the related newly introduced constructors instead.
API Changes
- Routing: The
AvoidanceOptions
constructor requires to set the new field zoneCategories
. - Routing: Deprecated
Section.getDeparture()
and Section.getArrival()
. Instead, use the newly introduced Section.getDeparturePlace()
and Section.getArrivalPlace()
to get a RoutePlace
. - Deprecated the
Address
fields stateName
, countyName
, streetName
and the related constructors. Instead, use the newly introduced constructor that takes the new fields state
, country
and street
.
Resolved Issues
- Fixed: Performing a
CategoryQuery
or a TextQuery
search no longer returns SearchError.HTTP_ERROR
when searching in a circle, whose radius is a number with a fraction.
Known Issues
- The
VisualNavigator
API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked. - Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - When traffic flows are enabled, map gestures may behave slower than expected.
- A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
- The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account. - Currently, a
Lane
that is reserved for bus or bicycle does not contain a direction type. - Offline maps:
Region.sizeOnDiskInBytes
is 0 for any Region
. - Offline maps: Once any download for a
Region
fails or is cancelled, all already downloaded regions will be deleted as well. - Offline routing: Pedestrian, truck, scooter, and EV routing are not expected to work.
- Offline routing: Avoidance options are currently ignored.
- Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
- Offline routing: Ferry links are not extracted to separate sections.
- Navigation: Unlimited speed limits may not always be reported as expected.
- Offline routing:
RouteOptions
are currently ignored completely and only default values will be used. - Offline routing:
Maneuver
information is not available. A maneuver will only contain empty strings or default values. During guidance, maneuver data should be taken from Navigator
instead. - Navigation: Safety camera notifications may come too often.
- When
SDKOptions
is created before initialization of SDKNativeEngine
it may contain a corrupted path.
Version 4.6.0.0
Highlights
- Devices running older Adreno 330 GPUs are now supported.
- Added support for offline maps. Map data can now be preloaded for continents and countries worldwide. Note: This feature is released as beta feature. Added the
MapDownloader
class to download the list of available regions and to download the regions. Added related classes: -
DownloadableRegionsCallback
: Notifies when regions are downloaded. -
MapDownloaderStatusListener
: Notifies on the status of the download. -
MapDownloaderTask
: Task to cancel downloads. -
MapLoaderError
: Enumeration for specifying various errors. -
Region
: Represents an area that can be downloaded. -
RegionId
: Specifies an unique identifier for a Region
.
- Added
OfflineRoutingEngine
to calculate routes on cached or preloaded offline maps: It is now possible to calculate routes without connectivity. The engine adheres to the same interface as its online counterpart. - Added isoline routing to calculate the reachable area for the given center coordinates and a range defined in time, distance or energy consumption. Added a new
calculateIsoline()
method to RoutingEngine
. Added related classes: -
IsolineOptions
: Options for isoline calculation. -
IsolineRangeType
: Enumeration specifying whether the range type is defined in time, distance or energy consumption. -
IsolineCalculationMode
: Specifies how the isoline calculation can be optimized. -
Isoline
: Represents a single isoline. -
MapMatchedCoordinates
: Contains a pair of user-defined and map-matched coordinates.
More New Features
-
MapPolygon
items can now be picked from MapView
. PickMapItemsResult
can now include a list of MapPolygon
items. - Added
ScooterOptions.allowHighway
property. - Users of the exclusive Skytree Edition can load the Japan map scheme for a
MapScene
via loadScene("japan.day.json", loadSceneCallback)
. This special map scheme covers the entire world. No other map scheme should be loaded, otherwise the map falls back to the non-exclusive map schemes. By default, the Japan map feature is not available for the regular edition of this release. - Added method to look at a given
GeoBox
at the map view with void lookAt(@NonNull final GeoBox target, @NonNull final MapCamera.OrientationUpdate orientation, @NonNull final Rectangle2D viewRectangle)
. For example, this can be used to show a route on a certain part of the map view. - Search: Added
categories
field to OpeningHours
. It contains categories
related to specific OpeningHours
. For example, when a Place
has multiple opening hours associated with it. - Added
SDKNativeEngine.dispose()
to release resources. It should be used in cases when it's necessary to create a new instance of SDKNativeEngine
with the same access key id as previously used. - Road shields are now rendered by default on the map view.
-
Navigator
and VisualNavigator
now allow to specify a TransportMode
for tracking. By default, car mode is used. - Added
SafetyCameraType
to provide notifications about safety speed cameras both when on route and when in tracking mode. In tracking mode, the safety camera notifications will be given only for the portion of a road between the current position and the first junction. Added SafetyCameraWarning
to provide information about the distance from the current position to the camera, the speed limit observed by the camera and the type of the safety camera. Added a dedicated listener that can be set to Navigator
or VisualNavigator
. - Lane Assistance: Added new types to
LaneType
: Express lane, acceleration lane, deceleration lane, auxiliary lane, slow lane, passing lane, shoulder lane, regulated lane access, turn lane, center turn lane, truck parking lanes, parking lanes, variable driving lanes, bicycle lanes.
API Changes
- Removed beta status for scooter transport mode.
- Deprecated the
updateGeometry()
method for MapPolygon
. Use the newly introduced set/get geometry accessors instead to get or set a GeoPolygon
. - Deprecated the
updateGeometry()
method for MapPolyline
. Use the newly introduced set/get geometry accessors instead to get or set a GeoPolyline
. - Search: Deprecated the following
Contact
fields landlinePhoneNumbers
, mobilePhoneNumbers
, emailAddresses
, websiteAddresses
. Use these newly introduced fields instead: landlinePhones
, mobilePhones
, emails
, websites
. Each holds a list of newly created classes LandlinePhone
, MobilePhone
, EmailAddress
, WebsiteAddress
- containing a string representation of the item and a list of related PlaceCategory
values. - The free flow traffic layer does no longer render the green traffic flow lines. In the future, an API to enable / disable the flow is planned to be introduced.
- The
SDKNativeEngine
now locks access to the map data cache and persistent storage directories. When another instance of SDKNativeEngine
is instantiated with the same access key id then now an exception is thrown. -
MapView
: Added clamping to principal point when the coordinates are outside of the viewport. -
Maneuver
: Deprecated roadName
, roadNameLanguageCode
, roadNumber
, nextRoadName
, nextRoadNameLanguageCode
, nextRoadNumber
. Added instead RoadTexts
with roadTexts
and nextRoadTexts
and LocalizedText
and LocalizedTexts
. - HERE Positioning now runs in it's own thread instead of separate process.
Resolved Issues
- Fixed: A
MapPolyline
may be unexpectedly rendered over a MapMarker
.
Known Issues
- The
VisualNavigator
API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked. - Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - When traffic flows are enabled, map gestures may behave slower than expected.
- A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
- The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account. - Currently, a
Lane
that is reserved for bus or bicycle does not contain a direction type. - Offline maps:
Region.sizeOnDiskInBytes
is 0 for any Region
. - Offline maps: Once any download for a
Region
fails or is cancelled, all already downloaded regions will be deleted as well. - Offline routing: Pedestrian, truck, scooter, and EV routing are not expected to work.
- Offline routing: Avoidance options are currently ignored.
- Offline routing: The public maneuver list in the route's sections are empty. During navigation, the maneuvers are provided as usual.
- Offline routing: Ferry links are not extracted to separate sections.
- Navigation: Unlimited speed limits may not always be reported as expected.
- Navigation: Safety camera notifications may come too often.
- When
SDKOptions
is created before initialization of SDKNativeEngine
it may contain a corrupted path.
Version 4.5.4.0
Highlights
- The supported device specifications have been fine tuned and contain now more granular details on the supported devices. Details can be found in the About section of the Developer's Guide for this edition.
New Features
- Added support for a transform center: The
MapCamera
know allows to set and get a principal point as Point2D
. This point determines where the target is placed within the map view. With this you can, for example, lower the map's default center during turn-by-turn navigation as it will affect map transformations such as rotations and tilt. - Extended walk routing options: Added
PedestrianOptions.walkSpeedInMetersPerSecond
property. Note that this feature is released as beta. By setting a walk speed you can calculate pedestrian routes specific for different walk profiles. - Searching for a
CategoryQuery
within a GeoCircle
or GeoBox
is no longer marked as a beta feature. - Added new map cache options to
SDKOptions
with SDKOptions.cacheSizeInBytes
and SDKOptions.persistentMapStoragePath
. Also available as key in manifest (com.here.sdk.cache_size_in_bytes
, com.here.sdk.persistent_map_storage_path
). With this you can control where to store cached map data and it also allows to specify the amount of data you want to reserve for caching.
Known Issues
- The
VisualNavigator
API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked. - Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - When traffic flows are enabled, map gestures may behave slower than expected.
- A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
- The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account. - Currently, a
Lane
that is reserved for bus or bicycle does not contain a direction type. Nevertheless, such a lane is included in the list of lanes. However, the lane type is not exposed yet. Therefore, it is recommended to omit lanes that do not contain at least one direction. - A
MapPolyline
may be unexpectedly rendered over a MapMarker
.
Version 4.5.3.0
New Features
- Added a
NoticeCode
that describes issues after a Route
was calculated. For example, when a route should avoid tunnels, but the only possible route needs to pass a tunnel, the Route
contains a notice that the requested avoidance of tunnels was violated. Therefore, it is recommended to always check a calculated Route
for possible violations. The NoticeCode
is part of a Notice
object. A list of possible Notice
objects can be accessed per Section
of a Route
. The list will be empty, when no violation occurred. - Addeded the ability to change the anchor point of a
MapMarker
with Anchor2D
. By default, the marker is centered on the provided location and the anchor is at (0.5, 0.5). An anchor represents a point in a rectangle as a ratio of the marker's image width and height. - Added search for a
CategoryQuery
within a GeoCircle
or GeoBox
. Extended the existing CategoryQuery
constructors to accept GeoCircle
or GeoBox
. Note that this feature is currently in BETA state.
API Changes
- The lane assistance API was marked as BETA until further notice and thus there can be bugs and unexpected behavior. The API may change for new releases without a deprecation process.
- The lane list order was changed to always start with index 0 from the leftmost lane to the rightmost lane (last index). Currently, left-hand driving countries are not supported.
Known Issues
- The
VisualNavigator
API is in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked. - Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - When traffic flows are enabled, map gestures may behave slower than expected.
- A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early before roundabouts.
- The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account. - Currently, a
Lane
that is reserved for bus or bicycle does not contain a direction type. Nevertheless, such a lane is included in the list of lanes. However, the lane type is not exposed yet. Therefore, it is recommended to omit lanes that do not contain at least one direction. - A
MapPolyline
may be unexpectedly rendered over a MapMarker
.
Version 4.5.2.0
Highlights
- Added suppport for scooter route calculation with the new
ScooterOptions
. Note that this is a BETA feature. Using scooter routes for navigation is not yet supported. - Introduced a new lane assistance API to notify drivers during navigation which lane is recommended to reach the next maneuvers. Use the new
LaneAsssistanceListener
to receive LaneAssistance
events that are fired along with each voice announcement.
New Features
- Added new read-only property to
MapPolyline
with GeoPolyline getGeometry()
. - Added
DashPattern
class to set dashed line styles for a MapPolyline
. - Added the following methods to
MapPolyline
to add support for fill colors when using dashed lines: Color getDashFillColor()
void setDashFillColor(@Nullable Color value)
- Added cumulative orbit method to
MapCamera
to rotate the map around arbitrary view coordinates using relative orientation values with orbitBy(@NonNull MapCamera.OrientationUpdate delta, @NonNull Point2D origin)
.
API Changes
- Cache path to store map data is now unique per access key ID (which is unique per customer). The HERE SDK automatically appends the current version of the cache and the access key ID. If you want to keep existing cache data, it may be required to copy it from
<cache-root>
to <cache-root>/v1/<access-key-id>
, as the current version of the cache is "v1". - Deprecated
SDKNativeEngine.setAccessKey(access_key_id, access_key_secret)
. Use SDKNativeEngine.setAccessKeySecret(access_key_secret)
instead, in combination with setting the access key ID via SDKOptions
when constructing a new SDKNativeEngine
. - Deprecated
LocationUpdateListener
. Use the new LocationListener
instead. - Removed deprecated
GeoCircle
constructor that accepts single precision float type for radius.
Resolved Issues
- Fixed: Embedded POI markers are not visible for the hybrid night map scheme.
- Fixed: Pan gestures may receive a cancel event before a begin event.
- Fixed: During guidance tracking mode, roads with unlimited speed are now correctly reported.
Known Issues
- The new
VisualNavigator
and the new lane assistance API are in an early development stage. More features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked. - Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - When traffic flows are enabled, map gestures may behave slower than expected.
- A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early.
- The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account.
Version 4.5.1.0
Highlights
- Improved cold startup time on certain devices like Samsung.
- A new
VisualNavigator
class has been introduced. It contains the same functionality as the Navigator
class, but offers support for a visual guidance experience. With startRendering()
a 3D location marker is added that smoothly follows the current location on the map. The animation is interpolated. In addition, the MapOrientation
is updated. When a Route
is set, the camera automatically follows the direction arrow. With the new CameraTrackingMode
, this can be turned off, for example, to let the user freely pan the map. When tracking is turned off, the direction arrow moves on, but the map is not moved. Once CameraTrackingMode
is enabled again, the camera follows again the current location. Note that the Navigator
class can be replaced by the VisualNavigator
class without any further code adaptation as Navigator
shares the same method signatures with the new VisualNavigator
.
New Features
- Introduced
Maneuver.getLengthInMeters()
method to return the length of the maneuver. - Added new
MapCameralimits
with void setTargetArea(@Nullable GeoBox value)
and @Nullable GeoBox getTargetArea()
. This allows to set a target area preventing a user from moving away too much from a desired area of interest. - Added new
MapCameralimits
for bearing with void setBearingRange(@NonNull AngleRange value)
and @NonNull AngleRange getBearingRange()
. - Introduced
SectionTransportMode
enum and Section.getSectionTransportMode()
method returning an instance of this type indicating now transport modes such as ferries. Section.getTransportMode()
has been deprecated, use the newly introduced method instead. - Search: Introduced
SupplierReference
type and Details.references
property, which holds the list of supplier references to a place.
Resolved Issues
- Fixed: Operations on
MapCamera
(lookAt()
, zoomBy()
,...) can now be executed already during onCreate()
and onResume()
calls. They will be enqueued and executed after MapView
is fully created and functional.
Known Issues
- The new
VisualNavigator
is in an early development stage. More rendering features and overall stabilization are planned for the next releases. Because of the pandemic situation full test coverage is currently blocked. - Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - When traffic flows are enabled, map gestures may behave slower than expected.
- A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early.
- The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account. - Embedded POI markers are not visible for the hybrid night map scheme.
- Pan gestures may receive a cancel event before a begin event.
Version 4.5.0.0
Highlights
- Added
heresdk-navigate-mock-<version>.jar
to release package to enable easy mocking of HERE SDK classes for Unit Tests, check the new UnitTesting example app to see how to use it in your own tests. - Switched to a more performant underlying map format that provides less size, less traffic and smaller download times. This new format does not require any adaptation on app side.
- Added a new
OfflineSearchEngine
that works without internet connectivity upon previously cached maps. It supports key word search, category search, geocoding and reverse geocoding. For example, when no internet connection is available, an app may try to fallback to the OfflineSearchEngine
to provide instant results - although connectivity is be temporarily lost. - Added route calculation for electric vehicles (EV). It's now possible to calculate the energy consumption per route section according to the given consumption model (supported for electric cars and trucks). Charging stations are automatically added to the calculated route as waypoints to ensure that the electric vehicle doesn't run out of energy along the way (supported for electric cars).
New Features
- Added
LogAppender
interface to insert your own log class into the SDKNativeEngine
. This way you can log HERE SDK messages for various predefined log levels even on release builds. - Added in
Navigator
a static method to query the list of available languages for maneuver notifications: List<LanguageCode> Navigator.getAvailableLanguagesForManeuverNotifications()
. - Added a scale property to change the size of a
MapMarker3D
. - Added camera tilt limits with
void MapCameraLimits.setMaxTilt(double degreesFromNadir)
and void MapCameraLimits.setMinTilt(double degreesFromNadir)
. - Added camera zoom limits with
void MapCameraLimits.setMaxZoomLevel(double zoomLevel)
and void MapCameraLimits.setMinZoomLevel(double zoomLevel)
. - Added new methods to calculate routes for electric vehicles (car and trucks are supported):
RoutingEngine.calculateRoute(List<Waypoint>, EVCarOptions, CalculateRouteCallback)
, RoutingEngine.calculateRoute(List<Waypoint>, EVTruckOptions, CalculateRouteCallback)
. - Added the following classes and fields to support EV routing (see above):
-
BatterySpecifications
- parameters that describe the electric vehicle's battery. -
ChargingConnectorAttributes
- details of the connector that is suggested to be used for charging. -
ChargingConnectorType
- enumeration of the available charging connector types. -
ChargingStation
- charging station data. -
ChargingSupplyType
- enumeration of available charging supply types. -
EVCarOptions
- options to specify how a route for an electric car should be calculated. -
EVConsumptionModel
- parameters specific for the electric vehicle, which are used to calculate energy consumption on a given route. -
EVDetails
- additional information that is available for electric vehicles. -
EVTruckOptions
- options to specify how a route for an electric truck should be calculated. -
PostActionType
- enumeration of available post action types. -
PostAction
- an action that must be done after arrival. -
RoutePlaceType
- shows whether the place on the route (such as departure or arrival) is a charging station or a regular place. -
Arrival.type
- the type of the arrival place. -
Arrival.chargeInKilowattHours
- battery charge at arrival. -
Arrival.chargingStation
- charging station data at arrival. -
Departure.type
- the type of the departure place. -
Departure.chargeInKilowattHours
- battery charge at departure. -
Departure.chargingStation
- charging station data at departure. -
Section.postActions
- actions that must be done after the arrival. -
Section.evDetails
- additional section information that is available for electric vehicles.
API Changes
- For custom map styles HERE Style Editor 0.26 is required.
- Changed splash screen to be grey instead of black. This improves the experiences on devices where cold start takes longer.
- Deprecated the
LocationProvider
interface and the Navigator
constructors that accept a LocationProvider
as parameter. A Navigator
can now be construced from an empty constructor. - A
Navigator
now implements the sdk.core.LocationListener
interface. - Deprecated
onLocationTimeout()
of sdk.core.LocationListener
- it is no longer needed and the necessary timeout handling is now done internally inside the Navigator
implementation. - Removed a deprecated
GeoCoordinates
constructor, use the previously introduced counterpart instead. - Changed the following methods in
MapMarker
: -
Long getDrawOrder()
to Integer getDrawOrder()
. -
void setDrawOrder(Long drawOrder)
to void setDrawOrder(Integer drawOrder)
.
- Removed a deprecated
Anchor2D
constructor, use the previously introduced counterpart instead. - Deprecated in
Navigator
the method List<LanguageCode> getSupportedLanguagesForManeuverNotifications()
, use List<LanguageCode> Navigator.getAvailableLanguagesForManeuverNotifications()
instead.
Resolved Issues
- Fixed: After orientation changes coordinate conversions may return incorrect values.
- Fixed: During navigation sometimes the
nextRoadName
or nextRoadNumber
are not available when the name of the street/road is a route number. In such a case, the next Maneuver
indicates an 'unknown road'. - Fixed: When imperial unit system is selected along with 'EN US' language code, then
RouteTextOptions
returns 'ft' as unit, but voice guidance uses 'yards'. - Fixed: For some regions the speed limit value can be unexpectedly
null
on highways. Roads with no speed limit are now correctly indiciated during navigation. - Fixed: During navigation, tunnel extrapolation may not work as expected.
- Fixed: A category search along a route will crash when the
GeoCorridor.polyline
list parameter is empty. - Fixed issues for map matching with no or unstable heading information. During navigation, map matching now works even when no heading information is provided or when the speed is very low.
Known Issues
- Updating an existing
MapMarker
with a completely new image causes the marker to disappear for a brief moment before being drawn with the new image. - The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. -
MapViewPin
instances cannot be removed after tilting and panning the map. - When traffic flows are enabled, map gestures may behave slower than expected.
- A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early.
- The
jamFactor
indicating TrafficSpeed
is currently calculated linear without taking road types and other parameters into account.
Version 4.4.6.0
Highlights
- This release focuses on overall stability and performance improvements.
Resolved Issues
- Fixed: During navigation it can happen in rare cases that the distance to the next maneuver is slightly wrong.
- Fixed: Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
- Fixed: Random route recalculations occur during drive navigation, especially on crossroads.
Known Issues
- The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - After orientation changes coordinate conversions may return incorrect values.
- During navigation sometimes the
nextRoadName
or nextRoadNumber
are not available when the name of the street/road is a route number. In such a case, the next Maneuver
indicates an 'unknown road'. - Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
- When imperial unit system is selected along with 'EN US' language code, then
RouteTextOptions
returns 'ft' as unit, but voice guidance uses 'yards'. - For some regions the speed limit value can be unexpectedly
null
on highways. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. - During navigation, tunnel extrapolation may not work as expected.
- A category search along a route will crash when the
GeoCorridor.polyline
list parameter is empty. -
MapViewPin
instances cannot be removed after tilting and panning the map. - When traffic flows are enabled, map gestures may behave slower than expected.
- A
Maneuver.polyline
list of GeoCoordinates
has only one element for the last maneuver of a route. -
MapMarker3D
instances are only partly rendered when the camera is positioned too far from earth. - During navigation sometimes the next maneuver and voice instructions are triggered too early.
Version 4.4.5.0
New Features
- Added
void setImage(@NonNull MapImage mapImage)
and MapImage getImage()
to the MapMarker
class. This allows to change a MapImage
for a MapMarker
that is already shown on the map to update its appearance. - Added
void zoomTo(double zoomLevel)
to the MapCamera
class to set the zoom level in the range [0,22]. Access the current zoomLevel
from the camera's State
property. - Added
GeoBox GeoBox.containing(@NonNull List<GeoCoordinates> geoCoordinates)
to construct a GeoBox
from a list of Geocoordinates
. - A
CategoryQuery
can now be created from a single PlaceCategory
with the additional constructor CategoryQuery(@NonNull PlaceCategory category, @NonNull String filter, @NonNull GeoCoordinates areaCenter)
.
Resolved Issues
- Fixed: For routes with more than two waypoints the destination reached event may be called too early.
- Fixed: In rare cases map tiles may flicker when a device is offline and the cache is used.
- Fixed: During navigation, voice commands are sometimes missing or inaccurate.
- Fixed a
NullPointerException
that could happen when calling LocationEngine
's start()
/stop()
methods one after the other. - Fixed issues with map-matched locations during turn-by-turn navigation when driving with slow speed.
Known Issues
- The newly introduced zoom level behaves inconsistent across different devices as the shown level of detail depends on the physical screen size of a device.
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - Random route recalculations may occur during drive navigation, especially on crossroads.
- After orientation changes coordinate conversions may return incorrect values.
- During navigation sometimes the
nextRoadName
or nextRoadNumber
are not available when the name of the street/road is a route number. In such a case, the next Maneuver
indicates an 'unknown road'. - Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
- When imperial unit system is selected along with 'EN US' language code, then
RouteTextOptions
returns 'ft' as unit, but voice guidance uses 'yards'. - During navigation it can happen in rare cases that the distance to the next maneuver is slightly wrong.
- For some regions the speed limit value can be unexpectedly
null
on highways. - During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
. - During navigation, tunnel extrapolation may not work as expected.
- A category search along a route will crash when the
GeoCorridor.polyline
list parameter is empty. -
MapViewPin
instances cannot be removed after tilting and panning the map.
Version 4.4.4.0
Highlights
- Added automatic geometry simplification to
MapPolyline
: Now, the rendered polyline shape is optimized based on the current distance of the camera to earth. While not being visible for the eye, this improves the performance, for example, when rendering longer routes.
New Features
- Positioning: Added support for the Android permission
ACTIVITY_RECOGNITION
to gain better results when an app is targeting Android 10 or higher.
API Changes
-
targetSdkVersion
and compileSdkVersion
of the internal AndroidManifest
used by the HERE SDK have been updated from 28 to 29.
Deprecated
- A few methods, fields and constructors of class
here.sdk.Color
have been deprecated. Instead, use the new methods that have been introduced to the class to conform to Android's native Color
class. The new factory methods and getters use a color component of type float
with the interval [0,1] - instead of type short
and [0,255] that was used for the deprecated components.
Resolved Issues
- Fixed an issue with flickering street labels after credentials have been changed.
- Fixed an issue with wrong left and right voice commands during navigation.
- Fixed issue with empty IDs for reverse geocoding results: IDs of place results are no longer empty strings and contain now a valid ID.
- Route calculation: When no truck route is found due to incompatible truck restrictions, the reason is now logged and
RoutingError.NO_ROUTE_FOUND
error is returned. For example, a log may contain: "Potential route would violate truck restriction:{"maxHeight":400}".
Known Issues
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - Random route recalculations may occur during drive navigation, especially on crossroads.
- After orientation changes coordinate conversions may return incorrect values.
- During navigation sometimes the
nextRoadName
or nextRoadNumber
are not available when the name of the street/road is a route number. In such a case, the next Maneuver
indicates an 'unknown road'. - Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
- For routes with more than two waypoints the destination reached event may be called too early.
- When imperial unit system is selected along with 'EN US' language code, then
RouteTextOptions
returns 'ft' as unit, but voice guidance uses 'yards'. - During navigation it can happen in rare cases that the distance to the next maneuver is slightly wrong.
- In rare cases map tiles may flicker when a device is offline and the cache is used.
- For some regions the speed limit value can be unexpectedly
null
on highways. - During navigation, voice commands are sometimes missing or inaccurate.
- During navigation, the number of sections within
RouteProgress
may not match the number of sections
within the Route
.
Version 4.4.3.0
Highlights
- Kinetic map panning behavior was greatly improved. Now, when swiping the map moves slower which results in a more natural feel.
- Certain areas can now be excluded from route calculation with
AvoidanceOptions
that contain an avoidAreas
list holding GeoBox
items which routes should not cross.
New Features
- Added optional
Suggestion.getHref()
to get a direct link to discover more details. It is available when the suggestion result type is category or chain. - Added
RoadFeatures.DIFFICULT_TURNS
enum value. Note that it is valid only for truck transport mode. - Added
MapError.INVALID_STATE
enum value which can be raised when a map scene is in an invalid state after a MapView
was destroyed. - Added a new
GeoCorridor
constructor with radiusInMeters
as integer type - as replacement for the deprecated constructor with radiusInMeters
as double type, see below.
Deprecated
- Deprecated
GeoCorridor
constructor with radiusInMeters
as double type. Use the newly introduced GeoCorridor
constructor with radiusInMeters
as integer type instead, see above.
API Changes
- The
AvoidanceOptions(avoidFeatures, avoidCountries)
constructor was extended to allow a list of GeoBox
items as 3rd parameter.
Resolved Issues
- Fixed: During navigation sometimes a
Manuever
does not contain all expected fields. - Fixed: When the pick radius for
pickMapItems()
is set to 1000 or higher, an app may crash when picking map polylines. - Fixed:
SearchEngine
: Place.getId()
is empty for reverse geocoding results.
Known Issues
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
- Transparency for
MapPolylines
is not supported. - Random route recalculations may occur during drive navigation, especially on crossroads.
- After orientation changes coordinate conversions may return incorrect values.
- During navigation sometimes the
nextRoadName
or nextRoadNumber
are not available when the name of the street/road is a route number. In such a case, the next Maneuver
indicates an 'unknown road'. - Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
- For routes with more than two waypoints the destination reached event may be called too early.
- When imperial unit system is selected along with 'EN US' language code, then
RouteTextOptions
returns 'ft' as unit, but voice guidance uses 'yards'. - During navigation it can happen in rare cases that the distance to the next maneuver is slightly wrong.
- In rare cases map tiles may flicker when a device is offline.
Version 4.4.2.0
Highlights
- Integrated HERE Positioning. The new
LocationEngine
implements a comprehensive location solution that works with several location sources such as GPS or other Global Navigation Satellite System (GNSS) receivers, mobile network signals and Wi-Fi network signals to determine accurate locations. Along with it, we provide a new ConsentEngine
to optionally enable data collection to improve HERE services.
New Features
- Added a new
NavigatorInterface
which describes the main turn-by-turn functionality of a Navigator
. - Added
Place.getGeoCoordinates()
method to get the GeoCoordinates
of a Place
. Note that only Place
instances retrieved from a Suggestion
result may not contain geographic coordinates, hence the returned value is optional. - Added departure/arrival information to the
Section
of a Route
: - Added
Departure
class with the following fields: waypointIndex
originalCoordinates
mapMatchedCoordinates
- Added
Arrival
class with the following fields: waypointIndex
originalCoordinates
mapMatchedCoordinates
- Added
Section.get_departure()
method. - Added
Section.get_arrival()
method.
- Added
Suggestion.getType()
to get the new SuggestionType
enum that indicates whether this Suggestion
is a place, a chain like a store, restaurant or bussiness chain - or a category
.
Deprecated
- Deprecated
Place.getCoordinates()
method, use Place.getGeoCoordinates()
instead. Note that only Place
instances retrieved from a Suggestion
result may not contain geographic coordinates, hence the returned value has become optional.
Resolved Issues
- Fixed: When the
Route
used to search along the route is too long, now a proper error is returned with SearchError.ROUTE_TOO_LONG
. - Fixed: For places that are obtained from the
Suggestion
class, the geographic coordinates always contain a latitude and a longitude equal to 0. An additional places request is needed to obtain the coordinates.
Known Issues
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
-
SearchEngine
: Place.getId()
is empty for reverse geocoding results. - Transparency for
MapPolylines
is not supported. - Random route recalculations may occur during drive navigation, especially on crossroads.
- After orientation changes coordinate conversions may return incorrect values.
- When the pick radius for
pickMapItems()
is set to 1000 or higher, an app may crash when picking map polylines. - During navigation sometimes the
nextRoadName
or nextRoadNumber
are not available when the name of the street/road is a route number. In such a case, the next Maneuver
indicates an 'unknown road'. - Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
- For routes with more than two waypoints the destination reached event may be called too early.
- When imperial unit system is selected along with 'EN US' language code, then
RouteTextOptions
returns 'ft' as unit, but voice guidance uses 'yards'. - During navigation sometimes a
Manuever
does not contain all expected fields. - During navigation it can happen in rare cases that the distance to the next maneuver is slightly wrong.
Version 4.4.1.0
New Features
- Traffic flows can now be identified along a
Route
. Introduced TrafficSpeeds
class to provide traffic speed information over a Section
polyline. The Section.getTrafficSpeeds()
method returns a list of TrafficSpeeds
's which covers the Section
polyline. - Added
SearchError.QUERY_TOO_LONG
and SearchError.FILTER_TOO_LONG
. These errors will appear if the search query or search filter is too long (over 300 characters). - Added
Route.getTransportMode()
which returns the original TransportMode
as requested for the route calculation.
Resolved Issues
- Fixed: Fixed memory leaks caused by
PlatformThreading
. - Fixed: Voice instructions are sometimes not properly synchronised with the current map-matched location.
- Fixed: During turn-by-turn navigation, a
NavigableLocation
may not contain map-matched geographic coordinates for some regions due to data issues.
Known Issues
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
-
SearchEngine
: Place.getId()
is empty for reverse geocoding results. - Transparency for
MapPolylines
is not supported. - Random route recalculations may occur during drive navigation, especially on crossroads.
- After orientation changes coordinate conversions may return incorrect values.
- When the pick radius for
pickMapItems()
is set to 1000 or higher, an app may crash when picking map polylines. - For places that are obtained from the
Suggestion
class, the geographic coordinates always contain a latitude and a longitude equal to 0. An additional places request is needed to obtain the coordinates. - During navigation sometimes the
nextRoadName
or nextRoadNumber
are not available when the name of the street/road is a route number. In such a case, the next Maneuver
indicates an 'unknown road'. - Map tiles may not load automatically when losing internet connectivity and connectivity gets back, unless the user interacts with the map.
Version 4.4.0.2
Highlights
- New map schemes have been introduced to support satellite images together with vector-based street labels:
HYBRID_DAY
and HYBRID_NIGHT
. - Support for interactive private venues has been introduced. This feature is available for building owners upon request.
New Features
- Added to the
MapCamera
class the method: void setTargetOrientation(@NonNull MapCamera.OrientationUpdate orientation)
to set only the target orientation in relation to the camera. - By default, polylines are rendered in the order as they have been added to the map. This can now be changed at runtime by setting the draw order. It's now also possible to change the width and outline width at runtime. For this, the following methods have been added to the
MapPolyline
class: -
void setDrawOrder(int value)
to set the DrawOrder
for a MapPolyline
. -
int getDrawOrder()
to get the DrawOrder
for a MapPolyline
. -
void setLineWidth(double value)
to set the LineWidth
for a MapPolyline
. -
double getLineWidth()
to get the LineWidth
for a MapPolyline
. -
void setOutlineWidth(double value)
to set the OutlineWidth
for a MapPolyline
. -
double getOutlineWidth()
to get the OutlineWidth
for a MapPolyline
.
- Search for places along a route: Added the
GeoCorridor
option to filter TextQuery
results when performing an asynchronous search request along a route with the method TextQuery(@NonNull String query, @NonNull GeoCorridor corridorArea, @NonNull GeoCoordinates areaCenter)
. - Search for places by category along a route: Added the
CategoryQuery
structure that accepts the GeoCorridor
option in its constructors with the filter
parameter CategoryQuery(@NonNull List<PlaceCategory> categories, @NonNull String filter, @NonNull GeoCorridor corridorArea)
and without the filter
parameter CategoryQuery(@NonNull List<PlaceCategory> categories, @NonNull GeoCorridor corridorArea)
to enable category search along a route. This feature is in BETA state. - Added to the
Details
class the method: List<PlaceCategory> getPrimaryCategories()
to get a place category from the result of a search query.
API Changes
- Moved the
LocationProvider
and LocationListener
interfaces from the com.here.sdk.navigation
to the com.here.sdk.core
package. - Reduced the rotation sensitivity of the
Pinch Rotate
gesture. Now, it is easier to zoom in on the map without rotating it.
Resolved Issues
- Fixed: Rendering order for
MapMarker3D
is not yet supported, so the marker may appear below building footprints. Now, the rendering order for MapMarker3D
is supported and the marker no longer appears below building footprints. - Fixed several rendering issues related to map items.
Known Issues
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
-
SearchEngine
: Place.getId()
is empty for reverse geocoding results. - Transparency for
MapPolylines
is not supported. - Random route recalculations may occur during drive navigation, especially on crossroads.
- Voice instructions are sometimes not properly synchronised with the current map-matched location.
- After orientation changes coordinate conversions may return incorrect values.
- 3d marker is not aligned with the road when using the map matched position.
- During turn-by-turn navigation, a
NavigableLocation
may not contain map-matched geographic coordinates for some regions due to data issues. - When the pick radius for
pickMapItems()
is set to 1000 or higher, an app may crash when picking map polylines. - For places that are obtained from the
Suggestion
class, the geographic coordinates always contain a latitude and a longitude equal to 0. An additional places request is needed to obtain the coordinates.
Version 4.3.4.0
Highlights
- With this release it is no longer necessary to request the sensitive
EXTERNAL_STORAGE
permission from users. See the related API change below. - To enhance TBT Navigation, we added a
MilestoneReachedListener
that informs whenever a stopover has been passed. See the related feature description with more details below. - During TBT navigation a new
SpeedWarningListener
informs whenever the user is exceeding the current speed limits on the road. See the related feature description with more details below.
New Features
- Added the line cap style property to
MapPolyline
with the enum LineCap
to change polyline ends rendered on the map. - Added the methods
LineCap getLineCap()
and void setLineCap(@NonNull LineCap value)
to get and set the LineCap
of a MapPolyline
. - Added the
Milestone
class with the following fields: -
int sectionIndex
for the index of the section on the route that has been completed. -
Integer waypointIndex
which corresponds to the waypoint in the original user-defined waypoint list. -
GeoCoordinates originalCoordinates
for user-defined geographic coordinates. -
GeoCoordinates mapMatchedCoordinates
for map-matched geographic coordinates.
- Added the
MilestoneReachedListener
interface to receive notifications about the arrival at each Milestone
, and the method: void onMilestoneReached(Milestone milestone)
called when a milestone has been reached. - Added the
DestinationReachedListener
interface to receive notifications about the arrival at the destination, and the method: void onDestinationReached()
called when the destination has been reached. - Added the following methods to the Navigator class:
-
setMilestoneReachedListener(MilestoneReachedListener listener)
to set the listener that notifies when a Milestone
has been reached. -
getMilestoneReachedListener()
to get the listener notifies when a Milestone
has been reached. -
setDestinationReachedListener(DestinationReachedListener listener)
to set the listener that notifies when a destination has been reached. -
getDestinationReachedListener()
to get the listener that notifies when a destination has been reached.
- Added the
SpeedWarningListener
interface to receive notifications from the Navigator
about the speed limit being exceeded with the following method: -
void onSpeedWarningStatusChanged(SpeedWarningStatus status)
called whenever the status of the speed warning status has changed to any of the SpeedWarningStatus
values.
- Added the
SpeedWarningStatus
enumeration that represents the speed warning status. - Added the
SpeedLimitOffset
struct that indicates the offset to be used above a specific speed to be notified of the speed limit being exceeded, with the following fields: -
Double lowSpeedOffsetInMetersPerSecond
for the speed limit offset for low speeds. -
Double highSpeedOffsetInMetersPerSecond
for the speed limit offset for high speeds. -
Double highSpeedBoundaryInMetersPerSecond
for the high speed boundary.
- Added the
SpeedWarningOptions
struct that contains all options to be used for speed limit warnings, with the following field: -
SpeedLimitOffset
for the speed limit offset to be used when notifying that the speed limit has been exceeded.
- Added the following properties to the Navigator class:
-
setSpeedWarningListener(SpeedWarningListener listener)
to set the listener to be notified of the speed limit being exceeded or back to normal. -
getSpeedWarningListener()
to get the listener to be notified of the speed limit being exceeded or back to normal. -
setSpeedWarningOptions(SpeedWarningOptions options)
to set the speed warning options. -
getSpeedWarningOptions()
to get the speed warning options.
API Changes
- Removed the
android.permission.READ_EXTERNAL_STORAGE
and android.permission.WRITE_EXTERNAL_STORAGE
permissions from the SDK manifest file.
Resolved Issues
- Fixed: Startup performance for navigation is very slow on certain devices. Now, startup performance for navigation has been improved for all devices.
Known Issues
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
-
SearchEngine
: Place.getId()
is empty for reverse geocoding results. - Transparency for
MapPolylines
is not supported. - Rendering order for
MapMarker3D
is not yet supported, so the marker may appear below building footprints. - Random route recalculations may occur during drive navigation, especially on crossroads.
- Voice instructions are sometimes not properly synchronised with the current map-matched location.
- After orientation changes coordinate conversions may return incorrect values.
Version 4.3.3.0
New Features
- Added the method
search(@NonNull PlaceIdQuery query, @Nullable LanguageCode languageCode, @NonNull PlaceIdSearchCallback callback)
to perform an asynchronous request to search for a place based on its ID and language code. - Added the possibility to filter
AddressQuery
results by the CountryCode
with the method AddressQuery(@NonNull String query, @NonNull GeoCoordinates areaCenter, @NonNull List<CountryCode> countries)
. - Added the possibility to filter
TextQuery
results by the CountryCode
with the method TextQuery(@NonNull String query, @NonNull GeoCoordinates areaCenter, @NonNull List<CountryCode> countries)
. - Added the methods
getLineColor()
and void setLineColor(@NonNull Color value)
to get and set the LineColor
of a MapPolyline
. - Added the methods
getOutlineColor()
and void setOutlineColor(@NonNull Color value)
to get and set the OutlineColor
of a MapPolyline
.
Deprecated
- Deprecated the method
search(@NonNull PlaceIdQuery query, @NonNull PlaceIdSearchCallback callback)
. Use the newly introduced search(@NonNull PlaceIdQuery query, @Nullable LanguageCode languageCode, @NonNull PlaceIdSearchCallback callback)
method instead.
Resolved Issues
- Fixed: App crashes when access to memory storage is denied. Now, access to the memory storage is granted by setting the path to the map cache.
- Fixed: Heading is ignored during turn-by-turn navigation. Now, Waypoint heading is considered during turn-by-turn navigation.
- Fixed: Creating a very long route crashes the app. Now, route is created and navigation starts irrespective of how long the route is.
Known Issues
- Map caching may not work as expected for satellite map scheme. Existing tiles may be reloaded.
-
SearchEngine
: Place.getId()
is empty for reverse geocoding results. - Transparency for
MapPolylines
is not supported. - Rendering order for
MapMarker3D
is not yet supported, so the marker may appear below building footprints. - Startup performance for navigation is very slow on certain devices.
- Random route recalculations may occur during drive navigation, especially on crossroads.
- Voice instructions are sometimes not properly synchronised with the current map-matched location.
Version 4.3.2.0
New Features
- Added the
ManeuverProgress
class which is accessible from RouteProgress.maneuverProgress
to indicate progress details to the next and next-next maneuvers during navigation. - Added the
GPXDocument
class to create a GPX document and to load a GPX file. - Added the
GPXTrack
class to represent a single track from a GPXDocument
. - Added the constructor
LocationSimulator(GPXTrack, LocationSimulatorOptions)
to specify the GPX track to travel and the options to specify how the location simulator will behave. - Added the method
MapCamera.getBoundingBox()
to get the currently visible map area encompassed in a GeoBox
. - Added the
ViewPin
class to the MapView
class to display Android views at a fixed location on the MapView
with the methods: -
ViewPin pinView(@NonNull View view, GeoCoordinates coordinates)
to pin a view on the MapView
. -
void unpinView(@NonNull View view)
to remove a view pinned to the MapView
. -
List<ViewPin> getViewPins()
to get the views pinned on the MapView
.
- Added the method
void MapCamera.setDistanceToTarget(double distanceInMeters)
to set the distance from the MapCamera
to the target location on earth. - Added the methods
void MapView.setPrimaryLanguage(@Nullable LanguageCode languageCode)
and MapView.getPrimaryLanguage()
to set and get the primary language of the map. - Added updated support for the
SDKOptions.cachePath
handling. If SDKOptions.cachePath
is not set, it will be assigned a default path [Context.getCacheDir().getPath()
]. A custom cachePath
can be set in the app's manifest file via the "com.here.sdk.cache_path"
key.
Deprecated
- Deprecated the functionality
RouteProgress.currentManeuverIndex
. Use the RouteProgress.maneuverProgress
functionality instead. - Deprecated the functionality
RouteProgress.currentManeuverRemainingDistanceInMeters
. Use the RouteProgress.maneuverProgress
functionality instead.
Resolved Issues
- Fixed: Calling
navigator.getSupportedLanguagesForManeuverNotifications()
before a route is set will no longer result in an empty list. - Fixed: The
Authentication
callback was not always called on the main thread. Now the callback is guaranteed to be always called on the main thread.
Known Issues
-
SearchEngine
: Place.getId()
is empty for reverse geocoding results. - Transparency for
MapPolylines
is not supported. - Rendering order for
MapMarker3D
is not yet supported, so the marker may appear below building footprints. - Creating a very long route crashes the app.
- Heading is currently ignored during turn-by-turn navigation.
Version 4.3.1.0
New Features
- Added methods
MapMarker.getDrawOrder()
and MapMarker.setDrawOrder(final long value)
to get and set the draw order of MapMarkers
on the map. - Added
MapView.OnReadyListener
with the method Map.setOnReadyListener(OnReadyListener readyListener)
to set the ReadyListener
. The listener will notify once the map view has been initialization. - Added
MapMatchedLocation
struct with fields: -
coordinates: GeoCoordinates
for the geographic coordinates of the map-matched location. -
bearingInDegrees: Double?
for the map-matched device's horizontal direction of travel.
- Added the support for
3D MapMarkers
with the classes MapMarker3D
and MapMarker3DModel
to represent and define a 3D shape rendered on the map. - Added the methods
void MapScene.addMapMarker3d(@NonNull MapMarker3D marker)
and void MapScene.removeMapMarker3d(@NonNull MapMarker3D marker)
to add and remove a 3D MapMarker
.
- Added the
Rectangle2D
constructor that accepts type double
for the origin and size parameters to represent a 2D rectangle. - Added the
Size2D
constructor that accepts type double
for the height and width parameters to represent the size of a 2D structure. - Added the methods
MapPolylines.getMetadata()
and void setMetadata(@Nullable Metadata value)
to get and set the Metadata for MapPolylines
. - Added the method
Navigator.get_supported_languages_for_maneuver_notifications()
to get the supported language functionality. - Added the methods
Navigator.getManeuverNotificationOptions()
and Navigator.setManeuverNotificationOptions(options)
to get and set maneuver notification options.
API Changes
- Renamed
CurrentLocation.rawLocation
to originalLocation
- Changed
CurrentLocation.mapMatchedLocation
type from Location
to MapMatchedLocation
. - Renamed
rawLocation
to originalLocation
in CurrentLocation. - Renamed
CurrentLocation
to NavigableLocation
. - Renamed
CurrentLocationListener
to NavigableLocationListener
. - Renamed
Navigator.setCurrentLocationListener
to Navigation.setNavigableLocationListener
. - Renamed
Navigator.getCurrentLocationListener
to Navigation.getNavigableLocationListener
. - Changed
RouteDeviation.lastLocationOnRoute
type from Location
to NavigableLocation
.
Resolved Issues
- Fixed:
AvoidanceOptions
will be ignored when calculating truck routes. Now, AvoidanceOptions
are considered when calculating truck routes.
Known Issues
-
SearchEngine
: Place.getId()
is empty for reverse geocoding results. - Transparency for
MapPolylines
is not supported. - Rendering order for
MapMarker3D
is not yet supported, so the marker may appear below building footprints. - Calling
navigator.getSupportedLanguagesForManeuverNotifications()
before a route is set will result in an empty list.
Version 4.3.0.0
Highlights
- This is the initial release.
Known Issues
-
SearchEngine
: Place.getId()
is empty for reverse geocoding results. -
AvoidanceOptions
will be ignored when calculating truck routes. - Transparency for
MapPolylines
is not supported.