Release Notes

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

This is a Beta 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.4.2.0

New Features

  • Added a new NavigatorInterface which describes the main turn-by-turn functionality of a Navigator.
  • Added Place.geoCoordinates 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.departure property.
    • Added Section.arrival property.
  • 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.coordinates, use Place.geoCoordinates 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.
  • 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.
  • Flutter's hot restart feature does not work when the map is moved. This results in an application freeze.
  • 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.

Changes from Previous Releases

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

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 on Android platform.
  • 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.
  • 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.
  • Flutter's hot restart feature does not work when the map is moved. This results in an application freeze.

Version 4.4.0.2

Highlights

  • New map schemes have been introduced to support satellite images together with vector-based street labels: hybridDay and hybridNight.
  • 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: setTargetOrientation(MapCameraOrientationUpdate 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:
    • set drawOrder(int value) to set the DrawOrder for a MapPolyline.
    • int get drawOrder to get the DrawOrder for a MapPolyline.
    • set width(double value) to set the LineWidth for a MapPolyline.
    • double get width to get the LineWidth for a MapPolyline.
    • set outlineWidth(double value) to set the OutlineWidth for a MapPolyline.
    • double get outlineWidth 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.withCorridorAreaAndAreaCenter(String query, GeoCorridor corridorArea, 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.withFilterAndCorridorArea(List<PlaceCategory> categories, String filter, GeoCorridor corridorArea) and without the filter parameter CategoryQuery.withCorridorArea(List<PlaceCategory> categories, 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.

Resolved Issues

  • Fixed issue with hot restart not working correctly. Now, the hot restart functionality is working properly without the need to restart the app.
  • 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.
  • Fixed issue with non-working gestures after a map view is recreated.

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.
  • 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 Android 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 following properties LineCap get lineCap and set lineCap(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.
    • int 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 abstract class to receive notifications about the arrival at each Milestone, and the method: onMilestoneReached(Milestone milestone) called when a milestone has been reached.
  • Added the DestinationReachedListener abstract class to receive notifications about the arrival at the destination, and the method: onDestinationReached() called when the destination has been reached.
  • Added the following methods to the Navigator class:
    • set milestoneReachedListener(MilestoneReachedListener value) to set the listener that notifies when a Milestone has been reached.
    • get milestoneReachedListener to get the listener notifies when a Milestone has been reached.
    • set destinationReachedListener(DestinationReachedListener value) to set the listener that notifies when a destination has been reached.
    • get destinationReachedListener to get the listener that notifies when a destination has been reached.
  • Added the SpeedWarningListener abstract class to receive notifications from the Navigator about the speed limit being exceeded with the following method:
    • 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:
    • set speedWarningListener(SpeedWarningListener value) to set the listener to be notified of the speed limit being exceeded or back to normal.
    • get speedWarningListener to get the listener to be notified of the speed limit being exceeded or back to normal.
    • set speedWarningOptions(SpeedWarningOptions value) to set the speed warning options.
    • get speedWarningOptions 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's Android manifest file.
  • Internally, the HERE SDK switched from "UpperCamelCase" to "snake_case". This has no effect on the public API, but if you have the HERE SDK plugin folder under source control, please make sure to enable case sensitivity - otherwise these naming changes will be ignored when committing the folder.

Resolved Issues

  • Fixed: Error when loading a SVG file into a MapImage. Now, SVG files that are stored in the assets directory can be loaded into a MapImage with the method MapImage.withFilePathAndWidthAndHeight("assets/my_svg_image.svg", 100, 100) (call example).

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.

Version 4.3.3.0

New Features

  • Added the ability to get and set the primary language of the map using a static property HereMapController.primaryLanguage.

API Changes

  • Renamed HereMapController.pins to HereMapController.widgetPins.

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.

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.
  • Error when loading a SVG file into a MapImage.
  • 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 synchronized with the current map-matched location.

Version 4.3.2.0

Highlights

  • The minimum supported Flutter version was raised to 1.17 or newer.

New Features

  • Added support for map widget pins: Added mapController.pinWidget(widget, coords) and mapController.pinWidget(widget, coords, anchor: anchor) to add the map widget pins with and without an anchor point. Use mapController.unpinWidget(widget) to remove a map widget pin.
  • 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 method MapCamera.getBoundingBox() to get the currently visible map area encompassed in a GeoBox.
  • Added the method MapCamera.setDistanceToTarget(double distanceInMeters) to set the distance from the MapCamera to the target location on earth.
  • Added the methods MapView.setPrimaryLanguage(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. A custom cachePath can be set in the app's manifest (Android) or Plist (iOS).
  • 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.withTrack(GPXTrack, LocationSimulatorOptions) to specify the GPX track to travel and the options to specify how the location simulator will behave.

Deprecated

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

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.
  • Fixed: Android apps may crash when an app is closed with the back button.
  • Fixed app crash in some scenarios when MapView.onDestroy is called twice.
  • Fixed: Calling navigator.getSupportedLanguagesForManeuverNotifications() before a route is set will no longer result in an empty list.

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.
  • Error when loading a SVG file into a MapImage.
  • Heading is currently ignored during turn-by-turn navigation.

Version 4.3.1.0

API Changes

  • Renamed MapView to HereMapController.
  • Changed callback name for the method HereMap(onMapViewCreated: (MapView mapView) {mapView.loadSceneForMapScheme(...);}) to HereMap(onMapCreated: (MapView mapView) {mapView.loadSceneForMapScheme(...);}).

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.
  • Android apps may crash when an app is closed with back button. Restarting again will work.
  • Rendering order for MapMarker3D is not yet supported, so the marker may appear below building footprints.
  • Calling navigator.getSupportedLanguagesForManeuverNotifications() before a route is set will result in an empty list.

Version 4.3.0.0

Highlights

  • This is the initial release.

Known Issues

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

results matching ""

    No results matching ""