Magic Lane
Skip to content

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 .

[2.13.0] - 2024-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] - 2024-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