Skip to main content
GuidesAPI ReferenceExamplesFAQ

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

warning

Due to improvements of our SDK and map data, we kindly ask you to update your applications and projects with any SDK revision released starting with October 2024 in order to continue using the online Magic Earth map-related services and to continue receiving map updates.

[2.18.0] - 2025-04-24

Added

  • PTAgency, PTRoute, PTStop, PTStopTime, PTTrip, PTStopInfo classes
  • PTRouteType enum
  • MappedDrivingEvent, DrivingScores, DriverBehaviourAnalysis, DriverBehaviour classes
  • DrivingEvent enum
  • TransferStatistics class
  • ViewOnlineServiceType enum
  • TransferStatistics getter method in ContentStore, MapView, GuidedAddressSearchService, NavigationService, RoutingService, SdkSettings, SearchService, SocialOverlay, Weather classes
  • setAllowConnection and autoUpdate methods in SdkSettings class
  • onAutoUpdateComplete callback in SdkSettings class
  • allowInternetConnection flag in GemMap constructor
  • asJson method in GemParameter and GemParameterList classes
  • cursorSelectionOverlayItemsByType method in MapView class
  • isOfType and getPTStopInfo methods in OverlayItem class

Removed

  • RoadInfoImageRenderSettings class

Changed

  • the addUserMetadata method from the LogMetadata is now async and should be awaited
  • OffBoardListener
  • handleTouchEvent is now async

[2.17.0] - 2025-04-10

Added

  • RoutingAlgoModifiers, ImageType enums
  • MountInfo, LaneImg, AbstractGeometryImg, SignpostImg, RoadInfoImg, RenderableImg, Img, ImgBase classes
  • laneImg, nextNextTurnImg, nextTurnImg properties to the NavigationInstruction class
  • img property to the OverlayItem class
  • img property to the Conditions class
  • img property to the TrafficEvent class
  • imgPreview property to the ContentStoreItem class
  • getImgById method to the SdkSettings class
  • getCountryFlagImg, getCountryFlagImgByIndex methods to the MapDetails class
  • abstractGeometryImg property to the TurnDetails class
  • img property to the OverlayCategory class
  • extraImg, overlayItem, img properties to the Landmark class
  • img property to the LandmarkCategory class
  • roadInfoImg, realisticNextTurnImg, turnImg properties to the RouteInstructionBase class
  • img property to the OverlayInfo class
  • image property to the SignpostDetails class
  • getDefUrls, isRawPositionTrackerEnabled, getRoutingAlgoModifiers, getAppIOInfo, oneToOnePedestrianCalculation, setRoutingAlgoModifiers, getNavigationModifiers, timeToCheckTrafficAlongRoutesSec, getRouteConnections, getMapViewMaxZoomRanges, getTotalMemory, getMaxUsedMemory, refreshContentStore, setCustomUrl, getServiceName, updateMaps, getStyleBuilderUrls, isMainThread, cleanupSocialCache, getAllWeatherConditions, replayStreamActivityLog, getUsedMemory, getFreeMemory, timeToBetterRouteSec, manyToManyPedestrianCalculation, getServicesIds methods to the Debug class
  • calculate_bike_route, center_area, center_traffic, gpx_routing_thumbnail_image, gpx_thumbnail_image, map_style_update, route_alarms, send_debug_info, simulate_navigation_without_map, speed_tts_warning, what_is_nearby_category examples

Removed

  • networkProvider property from the SdkSettings class as it was not working
  • searchReportsAlongRoute, searchReportsAround methods from the SocialOverlay class as searching for reports can now be done via the SearchService
  • the image setter from the Conditions class.
  • the image setter from the OverlayCategory class.

Changed

  • the pauseDownload method from the ContentStoreItem now takes an optional onComplete parameter
  • the clear method from the MapViewMarkerCollections is now async and should be awaited

[2.16.0] - 2025-03-27

Added

  • AutoUpdateSettings class
  • handleTouchEvent method to the GemMapController and GemView classes

Removed

  • DataBuffer class as it was not fully implemented and all operations are exposed in the Dart SDK using the predefined Uint8List type
  • updateCurrentStyleFromJson method from the MapViewPreferences class as it depended on the non-functional DataBuffer class
  • save, load methods from the MapViewMarkerCollections class as they depended on the non-functional DataBuffer class

Changed

  • return type of the createLogDataSource, createLiveDataSource, createExternalDataSource and createSimulationDataSource methods from the DataSource class changed from DataSource to DataSource?
  • renamed the allow parameter to allowInternetConnection and canDoAutoUpdate to canDoAutoUpdateResources in the setAllowConnection method from the SdkSettings class.
  • the initialize method from the GemKit class takes an additional optional parameter autoUpdateSettings of type AutoUpdateSettings
  • return type of the hitTest method from the MapViewMarkerCollections class changed from MarkerMatchList to List<MarkerMatch>

Fixed

  • the alarmListener setter from the AlarmService class now correctly sets the listener
  • the pictogramType getter from the SignpostItem class now returns the correct value
  • Weather related methods on older iOS devices
  • issue when navigating with multiple waypoints

[2.15.0] - 2025-03-13

Added

  • FileSortType, AppTheme, NextSpeedLimitStatus, FileSortOrder, OnlineRestrictions, LogUploaderState enums
  • LogUploader class
  • getOnlineServiceRestriction, getBestLanguageMatch, getTopicNotificationsServiceRestriction, setSdkVersion methods to the SdkSettings class
  • actualAppTheme, sdkVersion, appTheme, deviceModel, deviceName, digitGroupSeparator, applicationName, decimalSeparator properties to the SdkSettings class
  • hasSignpostInfo getter to the NavigationInstruction class
  • deleteLog, markLogUploaded, getLogDurationInSeconds, markLogProtected methods to the RecorderBookmarks class
  • protectedLogsList getter to the RecorderBookmarks class
  • status properties to the NextSpeedLimit class
  • requestLocationPermission properties to the PositionService class

Removed

  • setVoiceByPath method from the SdkSettings class as they are not fully supported by the Flutter SDK.
  • smallMode field of the SignpostImageRenderSettings as this feature is not fully implemented.

Changed

  • renamed EPlayingStatus enum to PlayingStatus, UnitOfMearsurementAcceleration enum to UnitOfMeasurementAcceleration
  • MarkerLabelingMode enum values: fixed typo in textBellow (renamed to textBelow) and removed deprecated group and item values
  • fixed typo in the SignpostPictogramType enum. Renamed the hoteMotel value to hotelMotel
  • logsList getter from the RecorderBookmarks replaced with the getLogsList method. It also provides sorting functionality.
  • setTouchHandlerModifyHorizontalAngleLimits, setTouchHandlerModifyDistanceLimits methods from the FollowPositionPreferences class replaced with touchHandlerModifyHorizontalAngleLimits and touchHandlerModifyDistanceLimits setters.
  • FileType enum changed values: csv, tcx, fit values;
  • getState, getDuration, getCurrentPosition, getSpeedMultiplier, getMaxSpeedMultiplier, getLogPath, getRoute, getMinSpeedMultiplier methods from the Playback class were replaced by the state, duration, currentPosition, speedMultiplier, maxSpeedMultiplier, logPath, route and minSpeedMultiplier getters
  • return type of the update method from the ContentUpdater class changed from GemError to ProgressListener?. Added onCompleteCallback named optional parameter which provides the update result.
  • fixed typo in the insideCityAea named parameter of the getOverSpeedThreshold method from the AlarmService class. Renamed to insideCityArea
  • return type of the step method from the Playback class changed from GemError to void
  • return type of the getItemById method from the ContentStore class changed from ContentStoreItem to ContentStoreItem?
  • return type of the createContentUpdater method from the ContentStore class changed from ContentUpdater to Pair<ContentUpdater, GemError>
  • the recorderConfiguration setter from the Recorder class replaced with the setRecorderConfiguration method. The method also provides the operation error code.
  • type of the zoom parameter of the createLandmarkStore method of the LandmarkStoreService class from int? to int. A default value of -1 has also been provided
  • type of the overwrite parameter of the add method of the RouteBookmarks class from bool? to bool. A default value of false has also been provided
  • type of the removeLmkContent parameter of the removeCategory method of the LandmarkStore class from bool? to bool. A default value of false has also been provided
  • type of the updateItem property from the ContentStoreItem class changed from ContentStoreItem to ContentStoreItem?
  • the locationForecasts parameter of the onCompleteCallback callback within the parameters of the getDailyForecast, getHourlyForecast, getCurrent, getForecast methods from the WeatherService class has changed type from List<LocationForecast>? to List<LocationForecast>. The result list provided by the callback is now empty instead of null when the operation fails
  • the RenderSettings class is now a generic template. The options property changed type from Set<dynamic> to Set<T>. The type of the options property from the RouteRenderSettings class changed from Set<dynamic> to Set<RouteRenderOptions>. The type of the options property from the HighlightRenderSettings class changed from Set<dynamic> to Set<HighlightOptions>

Fixed

  • the activateHighlight method from the GemMapController class (the innerColor field of the HighlightRenderSettings class was not taken into account, the operation did not work when no renderSettings value was provided)
  • the renderSettings parameter from the getLaneImage method provided by the NavigationInstruction class is now taken into account
  • the asyncGetStoreContentList method from the ContentStore class now provides result via callback when the operation fails
  • the referencePosition getter from the AlarmService class now returns correct value
  • the step method from the Playback class now works correctly
  • the enableDrawMarkersMode method now works correctly

[2.14.1] - 2025-03-03

Fixed

  • map rotation when in navigation mode

[2.14.0] - 2025-02-27

Added

  • TrafficEvent, PositionOrientation, AlarmMonitoredArea classes
  • insideAreas, referencePosition, outsideAreas, trackedPositionSource properties to the AlarmService class
  • TilesCollectionGeographicArea class implements GeographicArea interface and now provides the isEmpty, type getters
  • contains, containsCategory methods and overlayInfos getter to the OverlayCollection class and extending class OverlayMutableCollection
  • resetDefPositionTrackerAccuracyCircleColor, setDefPositionTrackerAccuracyCircleColor, getDefPositionTrackerAccuracyCircleColor methods to the MapSceneObject class
  • imagePosition field to the RenderSettings class
  • setCameraTargetCentered, setCameraRelativeToCenteredTarget, generatePositionAndOrientationHPR, setCameraRelativeToTarget, generatePositionAndOrientationRelativeToTarget, generatePositionAndOrientationTargetCentered, generatePositionAndOrientationRelativeToCenteredTarget, generatePositionAndOrientation methods and cameraPosition, cameraOrientation properties to the MapCamera class
  • touchHandlerModifyDistanceLimits, touchHandlerModifyVerticalAngleLimits, touchHandlerModifyHorizontalAngleLimits properties to the FollowPositionPreferences class
  • getCountryFlagByIndex methods to the MapDetails class
  • checkBetterRoute method and logCreateObject, logListenerMethod, logCallObjectMethod, logLevel properties to the Debug class
  • activateHighlightOverlayItems method to the GemView and GemMapController classes
  • registerCursorSelectionUpdatedPathCallback, registerHoveredMapLabelHighlightedLandmarkCallback, registerShoveCallback, registerPinchSwipeCallback, registerTouchHandlerModifyFollowPositionCallback, registerHoveredMapLabelHighlightedOverlayItemCallback, registerPinchCallback, registerTouchMoveCallback, registerSetMapStyleCallback, registerSwipeCallback, registerCursorSelectionUpdatedLandmarksCallback, registerTouchPinchCallback, registerCursorSelectionMapSceneObjectCallback, registerCursorSelectionUpdatedMarkersCallback, registerCursorSelectionUpdatedRoutesCallback, registerHoveredMapLabelHighlightedTrafficEventCallback, registerCursorSelectionUpdatedOverlayItemsCallback, registerDoubleTouchCallback, registerCursorSelectionUpdatedTrafficEventsCallback, registerTwoTouchesCallback methods to the GemMapController class

Removed

  • YELP related features (getYelpPhoneNumber, getYelpRating, getYelpImagesCount, cancelYelpInfo, getYelpName, getYelpUrl, hasYelpInfo, getYelpImagePath, getYelpAddress methods from the ExternalInfo class)
  • isPrintSdkDebugInfoEnabled property from the Debug class as it was replaced with more fine-tuned properties in the Debug class.
  • registerOnMapAngleUpdateCallback, registerOnMapViewMoveStateChangedCallback, registerPointerMoveCallback, registerPointerUpCallback, registerPointerDownCallback, registerOnLongPressCallback methods from the GemMapController class. The registerOn... methods were deprecated in a previous release and are replaced with other methods. The methods related to pointer operations were removed as they were not working

Changed

  • getOverlayById method from the OverlayCollection and OverlayMutableCollection classes renamed to getOverlayByUId
  • getContourGeograficArea method from the Landmark class renamed to getContourGeographicArea
  • RouteTrafficEvent class now extends TrafficEvent. Some methods were replaced with getters.
  • onYelpDataAvailable parameter of the getExternalInfo method from the ExternalInfo class was removed
  • return type of the customizeDefPositionTracker method from the MapSceneObject class changed from int to GemError
  • return type of the getField method from the AddressInfo class changed from String to String?
  • return type of the getRenderSettings method from the MapViewRoutesCollection class changed from RouteRenderSettings to RouteRenderSettings?
  • return type of the getMapViewRoute method from the MapViewRoutesCollection class changed from MapViewRoute to MapViewRoute?
  • the type of the mainRoute property from the MapViewRoutesCollection class changed from Route to Route?
  • the parameters of the asyncUpdateToFromData method from the RouteTrafficEvent class changed from ProgressListener to callback method.
  • the type of the toLandmark property from the RouteTrafficEvent class changed from bool to Pair<Landmark, bool>
  • the parameter moveCallback of the registerMoveCallback method from the GemMapController class changed from TouchCallbackMove to MoveCallback
  • the zoomLevel parameter of the startFollowingPosition method from the GemMapController class changed from int? to int. A value of -1 is given by default
  • the duration parameter of the setZoomLevel method from the GemMapController class changed from int? to int. A value of 0 is given by default
  • the duration parameter of the setSlippyZoomLevel method from the GemMapController class changed from int? to int. A value of 0 is given by default
  • the displayMode parameter of the centerOnRoutes method from the GemMapController class changed from RouteDisplayMode? to RouteDisplayMode. A value of RouteDisplayMode.full is given by default.
  • the zoomLevel parameter of the startFollowingPosition method from the GemView class changed from int? to int. A value of -1 is given by default
  • the duration parameter of the setZoomLevel method from the GemView class changed from int? to int. A value of 0 is given by default
  • the duration parameter of the setSlippyZoomLevel method from the GemView class changed from int? to int. A value of 0 is given by default
  • the displayMode parameters of the centerOnRoutes method from the GemView class changed from RouteDisplayMode? to RouteDisplayMode. A default value of RouteDisplayMode.full is given by default

Fixed

  • getNextAddressDetailLevel method of the GuidedAddressSearchService no longer crashed app on invalid input
  • getField method of the AddressInfo class
  • recording now works without requiring the existence of a map widget
  • textColor field of a RouteRenderSettings object is now working as expected
  • captureImage method of the GemView class now completes when multiple calls are done in quick succession
  • getLaneImage method of the NavigationInstruction now takes into account the given LaneImageRenderSettings parameter
  • getImage method of the SignpostDetails now correctly takes into account the given SignpostImageRenderSettings parameter
  • all methods/getters returning UInt8List? result as image now return null instead of returning invalid data

[2.13.0] - 2025-02-13

Added

  • soundMarks, activityRecord, soundMarks getters to the LogMetadata class.
  • Playback and Soundmark, ActivityRecord classes
  • currentRecordPath getter and setActivityRecord getters from the Recorder class
  • playback getter to the DataSource class. createSimulationDataSource and createLogDataSource
  • previewDataJson getter to the OverlayItem class
  • activityRecord getter on LogMetaData class
  • heartRate value to the DataType enum. Implies id changes. Renamed altitude value to attitude
  • RotationRate, Attitude, Battery, MagneticField, Orientation, Temperature, MountInformation, Activity classes and related SenseDataFactory methods
  • isPrintSdkDebugInfoEnabled and isObjectAliveCheckEnabled getters/setters to the Debug class
  • DataSourceListener class
  • addListener, removeListenerAllDataTypes and removeListener to the DataSource class.
  • removeListener method from the RouteBase.
  • withBool, withInt, withReal, withString, withList factory methods to GemParameter

Changed

  • Most images from the SDK return Uint8List? instead of Uint8List
  • Updated ColorExtension in regards to the Flutter version 3.27 (https://docs.flutter.dev/release/breaking-changes/wide-gamut-framework). Might require API users to update to the latest Flutter version
  • Renamed registerOnLongPressCallback, registerOnMapAngleUpdateCallback and registerOnMapViewMoveStateChangedCallback methods from the GemMapController class to registerLongPressCallback, registerMapAngleUpdateCallback, registerMapViewMoveStateChangedCallback. Old methods are still available but they are deprecated and will be removed in a future release
  • RecorderBookmarks.create now returns RecorderBookmarks? instead of RecorderBookmarks
  • getMapExtendedCapabilities now returns Set<MapExtendedCapability> instead of packed int
  • stopRecording from Recorder class is now async and needs to be awaited
  • getOverlayById and getOverlayAt methods of the OverlayCollection now return OverlayItem? instead of OverlayItem
  • setConfiguration method of the DataSource class has named parameters. The getConfiguration now returns SensorConfiguration instead of Map<String, String>
  • alignNorthUp takes Animation instead of Duration as a parameter
  • SearchableParameterList extends ParameterList. Created default constructors for ParameterList and SearchableParameterList. The SearchableParameterList constructor can take an optional ParameterList
  • GemView, NetworkProvider, RouteListener, OffboardListener, NavigationListener, LandmarkStoreListener, AlarmListener, PositionListener, DataSourceListener classes no longer implement EventDrivenProgressListener. They now implement EventHandler
  • getPosition and getImprovedPosition methods from PositionService class replaced by position and improvedPosition getters
  • getCountryLevelItem method of the GuidedAddressSearchService class now returns Landmark? instead of Landmark
  • exportAs methods of the Route and Path classes return String instead of Uint8List

Fixed

  • setMapStyle method from the MapViewPreferences class
  • setCameraFocus from the FollowPositionPreferences class returns correct value
  • getMarkerById from the MarkerCollection class
  • getBorderColorAt, getFillColorAt, getBorderSizeAt, getInnerSizeAt methods of MapViewPathCollection class
  • format method of the AddressInfo class
  • add method of the ParameterList class
  • getPreferences method from the RouteBookmarks class
  • searchLandmarkDetails method from the SearchService class

Removed

  • registerOnNotifyCustom method from the ProgressListener class
  • serializeListOfMarkers method is no longer public

[2.12.0] - 2025-01-30

Added

  • SenseData, GemImprovedPosition, Compass and Acceleration interfaces and implementations.
  • SenseDataFactory class
  • provider, latitude, longitude, altitude, speedAccuracy, hasSpeedAccuracy, hasCourse, hasCourseAccuracy, hasHorizontalAccuracy, hasVerticalAccuracy getters to the GemPosition class
  • isDataTypeAvailable, getDataTypeDescription, setConfiguration, getConfiguration, getPreferences, isMockData, getLatestData, setMockData and availableDataTypes, isSDKInstance, origin, dataSourceType getters of DataSource class
  • showMapScale and areMapScalesDrawnByUser getters and setters to the MapViewPreferences class
  • notifyProgressInterval setter to the ProgressListener class
  • getImprovedPosition and getDataSource methods and sourceType getter to the PositionService class

Changed

  • GemPosition is now an interface. All the fields contained within are now getters. GemPosition now extends SenseData.
  • Deprecated timestamp getter from GemPosition class.
  • pushData method of DataSource class takes a single required positional SenseData parameter instead of optional ExternalAccelerationData and ExternalPositionData parameters
  • startRecording method of the Recorder class is now async and needs to be awaited
  • skipAnimation method of GemView takes optional jumpToDestination parameter

Fixed

  • activateHighlight method of GemView not taking renderSettings parameter into consideration
  • methods from the MapViewRoute class
  • more methods use ApiErrorService for signaling failure and success
  • notifyProgressInterval and progressMultiplier getters of ProgressListener

Removed

  • roadModifiers, speedLimit fields from the GemPosition class as they are moved to GemImprovedPosition.
  • GemPosition constructor and to/fromJson methods

[2.11.0] - 2024-12-20

Added

  • ApiErrorService class
  • OTRoute class
  • pause and resume methods to Recorder class
  • isOTRoute and toOTRoute methods to Route class
  • setNavigationModifiers method of Debug class and NavigationModifiers enum
  • pauseRecording and resumeRecording methods of Recorder
  • createExternalDataSource and createLiveDataSource static methods of DataSource
  • setTTSLanguage method of SdkSettings

Changed

  • Replace XyType with Point as input parameter to methods from MapView and GemMapController classes: highlightHoveredMapLabel, centerOnRouteInstruction, setSlippyZoomLevel, setZoomLevel, transformScreenToWgs
  • Replace XyType with Point as input parameter to methods from FollowPositionPreferences class: setCameraFocus, setDrawFPS
  • Replace return type XyType with Point to methods and getters from MapView and GemMapController classes: transformWgsListToScreen, transformWgsToScreen, cursorScreenPosition
  • Replace return type XyType with Point to cameraFocus getter from FollowPositionPreferences class
  • Fields which should not be publicly accessible from listeners are now private. The notify... methods are now internal. Affected classes are NetworkProvider, RouteListener, ProgressListener, OffBoardListener, NavigationListener, LandmarkStoreListener, IGemPositionListener, EventDrivenProgressListener, AlarmListener. Use the provided register... methods instead of setting the callback function directly.
  • labelingMode field of the MarkerRenderSettings class (and MarkerCollectionRenderSettings extending class) is now Set<MarkerLabelingMode> instead of int?.
  • Fields from ClimbSection, SurfaceSection, RoadTypeSection, SteepSection, AbstractGeometryItem, AbstractGeometry, RectType, RenderSettings, RouteRenderSettings, HighlightRenderSettings, TimeDistance, MarkerCollectionRenderSettings, MarkerRenderSettings, RoadInfo, Language, RecorderConfiguration and TimeDistanceCoordinate classes are no longer nullable. Initiated default constructor values with appropriate values.
  • RouteInstruction, PTRouteInstruction and EVRouteInstruction extend RouteInstructionBase. The toEVRouteInstruction and toPTRouteInstruction are only in the RouteInstruction class
  • RouteSegment, PTRouteSegment and EVRouteSegment extend RouteSegmentBase. The toEVRouteSegment and toPTRouteSegment are only in the RouteSegment class
  • register... methods from GemMapController have nullable parameters to allow unregistering.
  • vizibility getter and setter from MapSceneObject class to visibility.
  • insideCityAea named parameter from Alarm.setOverSpeedThreshold method to insideCityArea.
  • return type from int to GemError from setRouteRoadBlock method from the RoutingService
  • enableDrawMarkersMode method of MapView now takes optional MakerRenderSettings parameter
  • getContourGeograficArea method of Landmark replaced with getContourGeographicArea
  • item and group values of MarkerLabelingMode enum are new deprecated. Added itemLabelVisible and groupLabelVisible values.
  • arrivalTime and departureTime getters of PTRouteSegment and arrivalTime and departureTime getters of PTRouteInstruction now return DateTime? instead of DateTime.
  • external DataSource objects are instantiated using the createExternalDataSource static method instead of constructor.
  • deprecated NavigationEventType enum.
  • Made onNavigationInstructionUpdate callback of the startNavigation and startSimulation methods of NavigationService nullable. The onNavigationInstructionUpdate method will be removed as all features are already provided by more specialized callbacks.
  • startNavigation and startSimulation methods of NavigationService return TaskHandler? instead of TaskHandler. The value null is returned when starting the operation fails and the onError callback is called with the error code.
  • search, searchLandmarkDetails, searchAlongRoute, searchInArea, searchAroundPosition of the SearchService class return TaskHandler? instead of TaskHandler. The value null is returned when starting the operation fails and the onCompleteCallback callback is called with the error code. Changed onCompleteCallback callback results parameter to non-nullable list of Landmarks. On error the list will be empty instead of null.
  • calculateRoute of the RoutingService class return TaskHandler? instead of TaskHandler. The value null is returned when starting the operation fails and the onCompleteCallback callback is called with the error code. Changed onCompleteCallback callback routes parameter to non-nullable list of Routes. On error the list will be empty instead of null.
  • searchReportsAlongRoute and searchReportsAround of the SocialOverlay class return TaskHandler? instead of TaskHandler. The value null is returned when starting the operation fails and the onCompleteCallback callback is called with the error code. Changed onCompleteCallback callback routes parameter to non-nullable list of OverlayItemPosition. On error the list will be empty instead of null.

Fixed

  • setRouteRoadBlock method from the RoutingService class.
  • registerOnMapViewMoveStateChangedCallback callback now provides correct area
  • Marker disapearing while passing nearby
  • exportLog returns correct filename when no name is provided
  • isTouchGestureEnabled method of MapViewPreferences class
  • setMapViewPerspective method of MapViewPreferences class

Removed

  • CameraConfiguration, SizeType, AutoDisposableObject classes
  • TimezoneResult class and related enums
  • fromJson method of MarkerRenderSettings and MarkerCollectionRenderSettings classes
  • hasRoutesCollectionInit, hasPathCollectionInit, hasFollowPositionPrefsInit fields from MapViewPreferences class
  • routeTrack getter from the RouteBase as it was replaced with the track getter from the OTRoute class
  • toJson methods from Parameter and Conditions classes
  • overrideOverheatCheck field of RecorderConfiguration class

[2.10.0] - 2024-11-29

Added

  • getLocalContentList, getStoreContentList, cancel methods of ContentStore class
  • orientation getter, visibility setter and getter, maxScale getter for MapSceneObject class
  • addUserMetadata and getUserMetadata methods and logSize getter of LogMetadata class
  • isValid getter of Version class
  • fromLatLong constructor of Coordinates class

Changed

  • startSimulation and startNavigation of NavigationService have more optional callback functions parameters: onNavigationInstruction, onNavigationStarted, onDestinationReached, onBetterRouteRejected, onBetterRouteInvalidated, onSkipNextIntermediateDestinationDetected, onError, onNotifyStatusChange
  • Constructor of GemMap has optional initialMapStyleAsset parameter
  • renamed GemMapController register methods: registerFollowPositionState to registerFollowPositionStateCallback, registerOnMapAngleUpdate to registerOnMapAngleUpdateCallback, registerOnMapViewMoveStateChanged to registerOnMapViewMoveStateChangedCallback
  • resetMapSelection method of GemView class is now async
  • default value for latitude and longitude fields of Coordinates class are now 2147483647
  • IMapViewListener class is now abstract
  • GemView class implements IMapViewListener abstract class
  • init and releaseView methods of GemView ckass are now internal
  • onFollowPostionState renamed to onFollowPositionState in IMapViewListener class and subclasses
  • GemMap and GemMapState fields and methods are now private
  • type of localTime field of TimezoneResult is now DateTime instead of Time

Fixed

  • setNavigationRoadBlock of NavigationService class now takes length into account
  • getUserMetadata method of LogMetadata class
  • isDataTypeAvailable method of LogMetadata class
  • cancelRoute method of RoutingService class
  • cancelSearch method of SearchService class
  • viewport getter of GemView has value as soon as onMapCreated is called
  • timestamp setter of Landmark class

Removed

  • coordinates setter of MapSceneObject class
  • SignpostImage, RoadInfoImage, LaneImage, TransferStatistics, Time classes
  • getImageByBitmap method of LandmarkCategory class
  • listener getter, setListener setter abd hasPrefsInit field of GemView class

[2.9.0] - 2024-11-12

Added

  • monitorArea, unmonitorArea methods and crossedBoundaries getter of AlarmService class
  • getMapReleaseInfo, getMapProviderIds, getProviderName, getProviderSentence methods of MapDetails class
  • algorithmType, allowOnlineCalculation buildConnections, sortingStrategy fields of RoutingPreferences class
  • landmarks getter and easyAccessOnlyResults getter and setter of SearchPreferences class
  • getOverlayById method of OverlayCollection class
  • paused, pausing, resuming values to RecorderStatus enum
  • MapProviderId enum
  • PTAlgorithmType enum

Changed

  • overlays of SearchPreferences class field type to OverlayMutableCollection and it is now a getter
  • constructor of SearchPreferences now takes optional easyAccessOnlyResults parameter
  • setCursorScreenPosition method of GemView is now async

Fixed

  • distorted markers rendered on map when images are not square
  • setCursorScreenPosition method of GemView no longer freezes the app on some Android devices

Removed

  • waypointReached value of NavigationEventType enum
  • strictTrackFollow field of RoutingPreferences class
  • landmarkCategories, allStoreCategoriesList, hasLandmarkCategoryList members of SearchPreferences class
  • OverlayUuidCategoryUuid class

[2.8.0] - 2024-11-01

Added

  • getMapCoverage, getCountryMapCoverage, getCountryName, getCountryNameByIndex, getCountryNameByISO, getLanguageCodeByIndex, getLanguageCode of MapDetails
  • currentRoadInformation, nextRoadInformation, nextNextRoadInformation getters of NavigationInstruction class
  • searchReportsAround, addComment, updateReport methods of SocialOverlay class
  • hasPreviewExtendedData, previewData, categoryId, getPreviewExtendedData, cancelGetPreviewExtendedData methods of OverlayItem class
  • updateReport method of SocialOverlay class
  • AlarmsList class
  • LandmarkPosition class
  • OverlayMutableCollection class
  • AlarmSerivce class
  • AlarmListener class
  • WeatherService class
  • Parameter class
  • Conditions class
  • LocationForecast class
  • Daylight enum
  • Location Wikipedia example for showing how to render the wikipedia page information for a point of interest
  • What is Nearby example for showing how to search for points of interest (POIs) near the current location looking for a certain type of POIs
  • Truck Profile example for showing how to compute a route based on the accessibility given by the physical characteristics of a truck
  • Public Transit example for showing how to compute and render a public transit route on the map
  • Assets Map Style example for showing how to apply a style from a .style asset
  • Display Cursor Street Name example for showing how to display the street name of the location at the cursor position
  • External Position Source Navigation example for showing how to navigate by custom positions pushed to a external data source
  • Lane Instructions example for showing how to display the lane image for the current instruction
  • Overlapped Maps example for showing how to display two overlapped maps
  • Weather Forecast example for showing how to display the different types of weather forecasts for a location

Changed

  • renamed isCursorRenderEnabled method of MapViewPreferences class to cursorRenderEnabled
  • added autoGenerateLabel parameter to add method of MapViewRouteCollection class
  • added onWaypointReached callback parameter to startNavigation and startSimulation methods from NavigationService
  • MarkerRenderSettings default constructor value of imageSize from -1 to 4
  • deprecated waypointReached value of NavigationEventType enum as it was replaced with onWaypointReached callback

Fixed

  • at method of SearchableParameterList
  • add method of MarkerCollection class
  • Markers icon size recalculation

Removed

  • create method of MapViewPathCollection

[2.7.0] - 2024-10-17

Added

  • SocialOverlay, SocialReportsOverlayCategory, SocialReportsOverlayInfo, OverlayItemPosition classes
  • checkTrafficAlongRoutes method of Debug
  • RouteListener class
  • routeListener getter and setter of RouteBase
  • LandmarkStoreType enum
  • RoutePathAlgorithmFlavor enum
  • RouteTypePreferences enum

Changed

  • alternativesSchema, pedestrianProfile, resultDetails, routeResultType, routeType and routeTypePreferences fields of RoutePreferences are no longer nullable.
  • routeGroupIdsEarlierLater field of RoutePreferences is of type List<int> instead of dynamic
  • routeTypePreferences field of RoutePreferences is of type Set<RouteTypePreferences> instead of int
  • type getter of LandmarkStore returns LandmarkStoreType instead of int
  • release method of GemKit is async

Fixed

  • preferences getter of GuiddedAddressSearch returns valid object after calling GemKit.release()

[2.6.0] - 2024-10-10

Added

  • MapViewRenderInfo class
  • MotorVehicleProfile class
  • LandmarkStoreListener class
  • fromCoordinates constructor of Path
  • navigationRouteLowRateUpdate getter and setter of MapViewExtension
  • getHighlightGroupItemIndex method of MapViewExtension
  • getCategoryCount, removeAllStoreCategories, getStoreIdAt methods of LandmarkStoreCollection
  • landmarkStores getter of LandmarkStoreService
  • scale method of MapController
  • ViewDataTransitionStatus and ViewDataTransitionStatus enums
  • addListener and removeListener methods of LandmarkStoreService
  • more values to the RoutePathAlgorithm enum

Changed

  • latitude and longitude members of Coordinates are no longer nullable
  • topLeft and bottomRight members of RectangleGeographicArea are no longer nullable
  • radius and centerCoordinates members of CircleGeographicArea are no longer nullable
  • OverlayCategory fields no longer nullable
  • onNewPosition method of IGemPositionListener is abstract
  • constructor of GuidedAddressSearchPreferences is private
  • create method of Path has required parameters and replaced format parameter type to PathFileFormat from int
  • setMinimumAllowedZoomLevel and setLowEndCPUOptimizations replaced with setters minimumAllowedZoomLevel and lowEndCPUOptimizations
  • registerViewRenderedCallback of GemMapController callback parameter type from dynamic to MapViewRenderInfo
  • onMapViewRendered callback takes MapViewRenderInfo as argument instead of dynamic
  • getAvailableOverlays method of OverlayService takes callback function parameter instead of ProgressListener
  • contentType getter of ContentUpdater returns ContentType instead of int
  • getRoute method of MapViewRoutesCollection returns null for invalid index
  • RouteBookmarks class moved to route_bookmarks.dart file. Added the new file to routing lib
  • TruckProfile and CarProfile extend MotorVehicleProfile

Removed

  • setPlaybackDataSource method of PositionService
  • create method of GuidedAddressSearchPreferences.
  • create method of PositionService
  • create method of TurnDetails

Fixed

  • getNextSpeedLimitVariation method of NavigationInstruction
  • getLandmarks, getCategoryCount, getStoreIdAt and removeAllStoreCategories methods of LandmarkStore
  • getPartArea method and area getter of Marker
  • lowEndCPUOptimizations getter and setter of MapViewExtension
  • getCategory and hasCategories methods of OverlayInfo
  • getDistanceOnRoute method of RouteBase
  • captureImage method of GemView
  • customizeDefPositionTracker method of MapSceneObject
  • imageSize field of MarkerCollectionRenderSettings breaking alignment

[2.5.0] - 2024-09-26

Added

  • importLog method of RecorderBookmarks
  • setParallelDownloadsLimit method of ContentStore
  • registerOnMapViewMoveStateChanged method of GemMapController
  • centerOnAreaRect method of GemView
  • registerLandmarkStore method of LandmarkStoreService
  • removeLandmarkStore method of LandmarkStoreService
  • updateLandmark method of LandmarkStore
  • clear method of MarkerCollection
  • delete method of MarkerCollection
  • getPointsGroupHComponents method of MarkerCollection
  • getPointsGroupHead method of MarkerCollection
  • indexOf method of MarkerCollection
  • getBetterRouteTimeDistanceToFork method of NavigationService
  • getNavigationInstruction method of NavigationService
  • getNavigationParameters method of NavigationService
  • getNavigationRoute method of NavigationService
  • isNavigationActive method of NavigationService
  • isSimulationActive method of NavigationService
  • isTripActive method of NavigationService
  • isTripActive method of NavigationService
  • simulationMaxSpeedMultiplier method of NavigationService
  • simulationMinSpeedMultiplier method of NavigationService
  • diskSpaceUsedPerSecond getter of Recorder
  • getAvailableDataTypes getter of Recorder
  • recorderConfiguration getter and setter of Recorder
  • status getter of Recorder
  • chunkDurationSeconds, continuousRecording, overrideOverheatCheck, maxDiskSpaceUsed, keepMinSeconds, deleteOlderThanKeepMin, transportMode fields of RecorderConfiguration
  • getTimeDistanceCoordinateOnRoute method of RouteBase
  • isCurrentThreadMainThread getter of SdkSettings
  • overload for == operator and hashCode method for BikeProfileElectricBikeProfile, BuildTerrainProfile, DepartureHeading, ElectricBikeProfile, EVProfile, CarProfile
  • EntranceLocations class
  • PTRoute class
  • PTRouteSegment class
  • PTRouteInstruction class
  • PTBuyTicketInformation class
  • PTAlert class
  • RouteTrafficEvent class

Changed

  • constructors of classes which should not be directly instantiated by the user are now private
  • classes consisting only of static methods are abstract (RouteBase, RoutingService, MapDetails, LandmarkStoreService, GuidedAddressSearchService, GenericCategories, SearchService, NavigationService)
  • all methods from NavigationService are static
  • getNextAddressDetailLevel method of GuidedAddressSearchService returns List<AddressDetailLevel> instead of List<int>
  • getStoreContentList method of ContentStore returns Pair<List<ContentStoreItem>, bool> instead of Pair<ContentStoreItemList, bool> and is now static
  • waypoints getter of RouteBase transformed to getWaypoints method and takes a parameter of type GetWaypointsOptions
  • startRecording and stopRecording methods of Recorder return GemError instead of int
  • exportLog method of RecorderBookmarks returns GemError instead of int
  • id getter from all enum extensions no longer return -1 on default case
  • fromId method of ContactInfoFieldTypeExtension no longer returns nullable ContactInfoFieldType, throwing exception on invalid input
  • isProtected and isUploaded members of LogMetadata are getters instead of methods
  • MarkerCollectionRenderSettings extends MarkerRenderSettings
  • TerrainProfile, ClimbSection, SurfaceSection, RoadTypeSection, SteepSection and related enums moved to a new file

Removed

  • create method from classes where it is not appropriate
  • empty classes (ClimbSectionList, RouteCollection, MapViewRouteCollection)
  • first and last values from ContentType enum

Fixed

  • caching mechanism of Marker images
  • getId method of LandmarkCategory
  • route getter of LogMetadata
  • recorderConfiguration getter of Recorder
  • current getter of GenericIterator
  • buildTerrainProfile field of RoutePreferences returned by preferences getter of RouteBase incorrect value

[2.4.0] - 2024-09-04

Added

  • addList method of MapViewMarkerCollections
  • devicePixelSize method of GemMapController
  • centerOnRoutePart method of MapView
  • LandmarkJson and MarkerJson for optimization
  • labels for Markers

Removed

  • MarkerSketches class and example

Changed

  • Moved some methods to safecall
  • Callback functions with multiple parameters now have named parameters
  • remove method of MapViewMarkerCollections renamed to removeAt

Fixed

  • getRenderSettings method of MapViewRoutesCollection returns RouteRenderSettings with correct values previously set with setRenderSettings method
  • cursorSelectionMarkers method of GemView
  • searchInArea method of SearchService
  • getCoordinates method of Marker
  • labelTextSize and labelTextColor of MarkerRenderSettings
  • indexOf method of MapViewMarkerCollections
  • setRenderSettings method of MapViewMarkerCollections
  • contains method of MapViewMarkerCollections
  • isSketches method of MapViewMarkerCollections
  • removeAt method of MapViewPathCollection
  • zoom out effect when tapping fast on markers

[2.3.1] - 2024-08-09

Added

  • More fields in RouteRenderSettings
  • NavigationStatus enum
  • Caching mechanism for images in SdkSettings class and getImageById method

Changed

  • Some fields in MarkerRenderSettings are no longer nullable
  • routes parameter of centerOnRoutes is named and nullable
  • navigationStatus method of NavigationInstruction class returns NavigationStatus
  • DataSource methods return GemError instead of int

Fixed

  • setMapStyleByPath method of MapViewPreferences class
  • enableOverlay and disableOverlay methods of OverlayService class
  • centerOnRoutes method of MapView class
  • waypoints getters of RouteSegment and RouteBase classes
  • removeLandmarkStoreId method of LandmarkStoreCollection class
  • RouteRenderSettings constructor

[2.3.0] - 2024-08-05

Added

  • setMapStyle with binary data
  • removeAllLandmarks method of LandmarkStore class
  • ExternalInfo class
  • MapSceneObject class
  • addList method of MarkerSketches class
  • MarkerSketches example
  • enableTouchGestures method of MapViewPreferences class
  • More values to RoadModifier
  • RoadModifierExtension

Changed

  • return type of method hasChargeStop of EVRouteSegment class from int to bool
  • cursorSelectionOverlays method returns OverlayItem
  • OverlayService methods return GemError instead of int
  • LandmarkStoreCollection methods return GemError instead of int
  • MapViewMarkerCollections methods return GemError instead of int
  • FollowPositionPreferences methods return GemError instead of int
  • setImageFromIconId method to setImageFromIcon. GemIcon parameter instead of int
  • ContentStoreItemStatus.downloadWaitingNetwork ID to 5
  • DataType.gyroscope ID to 1024
  • PositionRoadModifier to RoadModifier
  • AnimationExtension to AnimationTypeExtension
  • FixQualityExtension to PositionQualityExtension
  • PositionRoadModifier to RoadModifier
  • EMarkerLabelingModeExtension to MarkerLabelingModeExtension
  • ERouteRenderOptionsExtension to RouteRenderOptionsExtension
  • GenericCategoriesIDsExtension to GenericCategoriesIdExtension
  • mapDetailsQuality getter of MapViewPreferences returns MapDetailsQualityLevel instead of int
  • More methods throws exception instead of String

Fixed

  • getMapViewRoute, getLabel, setLabel methods of MapViewRoutesCollection class
  • add, update, addTrips, sortOrder methods of RouteBookmarks
  • fromJson method of EVProfile class
  • clear method of MapViewMarkerCollections class
  • timeStamp getter of Landmark class
  • releaseView Android native behaviour
  • setMapRotationMode IOS native behaviour

[2.2.0] - 2024-07-10

Added

  • getRouteStatus and CalculationRunning methods of RoutingService class
  • getRoadInfoImage, getRoadInfo, hasRoadInfo, isExit and getExitDetails methods of Route Instruction class,
  • getExtraInfo, setExtraInfo, setRouteListener and getRouteListener methods of Route class
  • isCalculationRunning, getRouteStatus methods of RoutingService class
  • verifyAppAuthorization method of SDKSettings class

Changed

  • replaced Time object with DateTime dart object in following methods: get and set timeStamp for Landmark class, get timeStamp for Route object, get timeStamp for RoutingPreferences class

Fixed

  • altitude field of GemPosition class
  • geographicArea method of Landmark class could cause app freeze

[2.1.0] - 2024-06-17

Added

  • PositionService custom data source
  • uncategorizedLandmarkCategId and invalidLandmarkCategId constants
  • getLogMetadata method of RecorderBookmarks class and LogMetadata class
  • EVRoute methods
  • SearchPreferences overlays
  • SignpostItem class
  • getTimeDistanceCoordinates and getWaypointsVia methods of Route class
  • MapCamera methods
  • GeographicArea classes and methods
  • OverlayService class and getAvailableOverlays method
  • captureAsImage method of MapController class [iOS only]
  • getLatestOnlineMapVersion method of MapDetails class

Changed

  • selectMapObjects method has been replaced with setCursorScreenPosition
  • asyncGetContentStoreList and asyncDownload are now FFI methods
  • images default size and format can be set with setDefaultWidthHeightImageFormat of SdkSettings class
  • getAbstractGeometry method has a new parameter, AbstractGeometryRenderSettings
  • setCursorScreenPosition, skipAnimation, scroll, getHighlightArea and resetMapSelection methods of MapController class are now non-async
  • setLiveDataSource now returns GemError
  • segments getter of Route class returns List<RouteSegment> instead of RouteSegmentList
  • getPath method of Route class now returns null path for invalid start and/or end instead of a Path with empty coordinates list
  • getTimeDistance now has a bool parameter activePart

Fixed

  • cancelSearch issue which caused onCompletedCallback to not be called with GemError.canceled
  • polygonGeographicArea getter of Route class
  • getRealisticNextTurnImage method and getTurnImage of Route class
  • getCoordinatesAtPercent static method of Path class
  • trafficEvents method for Route
  • toEVRoute method of Route class
  • routeTrack getter of Route class
  • exportAs method of Path class
  • cloneReverse method of Path class
  • cloneStartEnd method of Path class
  • getWaypoints method of Path class
  • getElevationSamples method of RouteTerrainProfile class behavior when callind with countSamples = 1
  • SignPostDetails class getters
  • waypoints getter of RouteSegment class
  • abstractGeometry getter of TurnDetails class
  • containsLandmark method of LandmarkStore class
  • getCategoryById method of LandmarkStore class now returns null object for an invalid id
  • getLandmarks method of LandmarkStore class now returns all landmarks for an unspecified categoryId
  • getLandmarkStoreById method of ContentStoreService class now returns null object for an invalid id
  • Map widget issues on Android which caused map to overlap other UI elements when rotating the device or opening a webview page over the one with the map
  • isFollowingPosition getter of MapController class
  • accuracyCircleVisibility getter and setter of MapViewPreferences class
  • getFieldName, getFieldValue, getFieldType methods of ContanctInfo class when calling with an invalid index
  • getAllowOffboardServiceOnExtraChargedNetwork method of SdkSettings class
  • getContourGeographicArea method of Landmark class
  • extraInfo getter of Landmark class

[2.0.0] - 2024-05-22

Added

  • releaseNative method
  • RouteRenderSettings optional parameter for add method of MapViewRouteCollection
  • Map creation parameters: initial coordinates, zoomLevel, area and appAuthorization
  • Marker class that allows drawing user defined polygons/polylines on the map
  • refreshContentStore method
  • getContentParameters method for ContentStoreItem

Changed

  • Imports
  • Replaced methods with get and set prefixes with Dart get and set
  • Renamed various members to match camelCase standard
  • Replaced create factory with default constructor for multiple classes
  • Multiple methods are now non-async
  • SDK initialization changed from GemKitPlatfor.instance.loadNative() to GemKit.initize()appAuthorization is now a parameter of GemKit.initize()
  • setAllowConnection of SdkSettings has now callback parameters of OffboardListener instead of OffboardListener object
  • update method of ContentUpdater has now onStatusUpdated and onProgressUpdate parameters instead of ProgressListener
  • GemAnimation has now onCompleted parameter instead of ProgressListener
  • Replaced ProgressListener with TaskHandler
  • Replaced error type from int to GemError enum
  • Replaced Rgba with Color
  • Replaced width and height image parameters with Size
  • Replaced LandmarkList, RouteList, ContentStoreItemList, LandmarkCategoryList with Dart lists
  • Added named parameters for some methods
  • Renamed enums to match Dart standard

Fixed

  • getImage, setImage, setExtraImage methods of Landmark
  • ContactInfo class
  • centerOnArea of GemMapController class
  • set and get language for SdkSettings
  • Check against null the MapView, when activity is paused / resumed

[1.9.0] - 2024-04-02

Added

  • Address Search
  • Offboard Listener
  • Content Updater for ContentStore
  • dispatchonmainThread on safecallObject
  • canDoAutoUpdate flag for offboardlistener constructor
  • safe call for gem_path methods
  • compare operator in Version class
  • dispatchOnMainThread flag defaults true for clear method in Routingservice
  • AllStoreCategoriesList field in SearchPreferences
  • ExternalRendererMarkers
  • setMapLanguage method
  • setCameraFocus and getCameraFocus methods
  • getMapVersion method
  • getExtraImage method

Changed

  • Refactor - modified more methods to non async
  • Removed err == 0 check from onNotifyComplete method on Search results
  • setAllowAutoMapUpdate flag defaults to false
  • initSdk to initCoreSdk
  • dispatchOnMainThread to true for route removal and setImageFromIcon
  • NavigationProgressListener to ProgressListener in setNavigationRoadBlock
  • add method from LandmarkStoreCollection
  • Landmark and landmark store methods to safecall
  • setNavigationRoadBlock to static method
  • setImage method for landmark to safecall
  • The way images can be obtained

Fixed

  • SetName method in Landmark
  • speed issue for position on Android
  • Version class
  • Map update/Resource update listener(Works on Android)
  • Version's minor and major fields
  • ElectricBikeProfile
  • setBuildingVisibility method
  • addStoreCategoryList method

[1.8.0] - 2024-01-30

Added

  • appDidEnterBackground, appDidBecomeActive methods
  • onAngleMapUpdate, alignNorthUp methods
  • cursorSelectionStreets, cursorSelectionOverlayItems methods
  • getImageById, getImageUId, getImage, getImageByBitmap methods
  • clearAllButMainRoute, centerOnMapRoutes method
  • hasCoordinates, hasSpeed methods
  • getNearestLocation method
  • arguments for asyncDownload method
  • addRoute method
  • getOsVersion
  • automatic destructor
  • OffscreenBitmap object
  • position listener methods non async
  • default values for RoutePreferences
  • GenericCategories and LandmarkListCategories classes
  • FollowPositionPreferences
  • [] operator to GemList
  • More methods in RouteBookmarks
  • routeRenderSettings parameter when adding a route to view
  • auto for AndroidViewMode
  • check for calling methods before the Native is loaded

Changed

  • Made LandmarkList iterable
  • Initialize the SDK earlier on Android
  • Modified cancelRoute and cancelNavigation to non async
  • Modified centerOnArea, setCoordinates, centerOnRoutes to non async
  • Modified removeLandmark to non async
  • Modified all LandmarkStore and LandamrkStoreCollection methods to non async
  • Created a base class for lists ( Iterable )
  • Made the getter for displayed routes non async
  • Modified getTurnInstruction non async
  • Made cancelSearch static
  • Modified ContentStoreItemList to use GemList

Fixed

  • Activity lifecycle on Android
  • Real position issue
  • Path: clear and getArea issues
  • Blackscreen issue on Android 12

[Unreleased] - 2023-10-04

Added

  • More parameters to route preferences
  • MinDuration parameter for Recorder
  • onRouteUpdated and onBetterRouteDetected methods
  • getAbstractGeometryUId method

Changed

  • Modified cancel search method to non async

Fixed

  • cancelRoute issue
  • setLiveDataSource error throw

[1.5.6] - 2023-09-06

Added

  • Content Store: Map Styles, Human Voices, Offline Maps
  • Weather Service: Current Forecast, Hourly Forecast, Daily Forecast
  • New map gesture: Long Press
  • Recorder: Record route, export as .GPX
  • SDK Settings: Unit System, Language, Set Navigation Voice, Allow Offboard Service on Charged Network
  • Map Details: Get Country Flag by ISO code
  • Map Styles: Apply Map Style, Get Current Map Style

Changed

  • SDK Settings methods are now static and non-async

Fixed

  • Fixed an issue where screen rotate on Android would cause loss of connection to SDK

[1.5.2] - 2023-08-09

Added

  • Draw route
  • Route preferences
  • Route profile sections: Surfaces, Road types, Climb
  • Route path
  • WGS to screen coordinates converter

Changed

  • Modified Landmark to use direct FFI calls for getters.
  • Bug fixing and improvements

[1.5.1] - 2023-08-01

Changed

  • Bug fixing and improvements

[1.5.0] - 2023-07-25

Added

  • Distance between 2 coordinates
  • Image for landmarks
  • Landmark selection on map
  • SearchService: searchInArea & searchAroundPosition
  • Route segments & route instructions
  • MapViewRouteCollection methods
  • Center camera on routes
  • Abstract geometry image for navigation instructions
  • Navigation events callback: new instruction, waypoint reached & destination reached
  • Voice instructions with text-to-speech
  • Animations for center camera on coordinates & follow position
  • PositionService
  • Follow position enter/exit events
  • LandmarkStoreContent: custom stores
  • LandmarkStoreContent: add, remove & contains methods

[1.4.6] - 2023-07-22

Changed

  • Bug fixing and improvements

[1.4.5] - 2023-07-18

Changed

  • Bug fixing and improvements

[1.4.0] - 2023-07-13

Added

  • Start navigation simulation on route
  • Cancel navigation
  • Start follow position (for simulation only)
  • Navigation instruction callback
  • Landmark image
  • Abstract geometry for navigation instructions
  • Route time and distance

[1.3.0] - 2023-07-07

Added

  • Activate highlight
  • Deactivate highlight
  • Route calculation
  • Cancel route calculation
  • Center camera on route

[1.2.0] - 2023-07-05

Added

  • ExtraInfo field containing result distance, type, native name and English name

Fixed

  • Search working on Android and IOS

[1.1.0] - 2023-07-04

Changed

  • Bug fixing and improvements

[1.0.0] - 2023-06-30

Initial release