Release notes
12.9.0 (2025-10-22)β
π Features and improvementsβ
- StorageOptions - class for offline data storage parameters. It is passed to DGis to specify the path to the root directory of the main download storage.
Migration from versions 12.x to 13.Ρ β
For Full and Map versionsβ
-
Styles must be exported again: fixed issues with displaying custom and immersive objects.
-
Updated all layers in the
Roadsgroup for displaying immersive roads in the main map mode. -
Added the
Traffic v13.0.0group for displaying new colors of tiles with traffic jams. -
Added the
Car route line v13.0.0group for displaying car routes on immersive roads. -
Now, a single channel BaseCamera.changed is used to track camera state changes instead of separate channels for each property. Subscriptions are replaced, and additional filtering of change reasons is added.
-
Changed the method of creating some classes:
- Removed the
getSystemMemoryManagerfunction. To obtain an object for managing system memory, use the SystemMemoryManager.instance() method. - Removed the SearchHistory constructor. To obtain a search history object, use the SearchHistory.instance() method.
- Removed the RoadEventManager constructor. To obtain an object for working with road events, use the RoadEventManager.instance() method.
- Removed the
getHttpCacheManagerfunction. To obtain an object for managing the HTTP cache, use the HttpCacheManager.get() method. - Removed the
getLocaleManagerfunction. To obtain an object for managing application locales, use the LocaleManager.instance() method. - Removed the TrafficCollector constructor. To obtain an object for managing the service for traffic information collection, use the TrafficCollector.instance() method.
- Removed the
getAudioSettingsfunction. To obtain an object for managing application sound, use the AudioSettings.get() method. - Removed the
getPackageManagerfunction. To obtain an object for managing packages, use the PackageManager.instance() method. - Removed the
getTerritoryManagerfunction. To obtain an object for managing territories, use the TerritoryManager.instance() method. - Removed the
getTerritoriesAlongRouteProviderfunction. To obtain an object for extracting a list of territories along a route, use the TerritoriesAlongRouteProvider constructor. - Removed the
getVoiceManagerfunction. To obtain an object for managing voice packages, use the VoiceManager.instance() method.
- Removed the
-
Removed the
EventsProcessingSettingsclass. -
Renamed the
Gestureobject to TransformGesture. -
Renamed the
ScalingSettingsobject to ScalingRecognizeSettings. -
Renamed the
RotationSettingsobject to RotationRecognizeSettings. -
Renamed the
MultiTouchShiftSettingsobject to MultiTouchRecognizeSettings. -
Renamed the
TiltSettingsobject to TiltRecognizeSettings. -
GestureManager.scalingSettings, GestureManager.rotationSettings, GestureManager.multitouchShiftSettings, and GestureManager.tiltSettings now return objects with ScalingGestureSettings, RotationGestureSettings, MultiTouchGestureSettings, and TiltGestureSettings types, respectively.
-
Moved the Color class for representing colors from the
ru.dgis.sdk.mappackage. -
Moved the ScreenDistance class from the
ru.dgis.sdk.mappackage. -
Moved the ScreenPoint class from the
ru.dgis.sdk.mappackage. -
Moved the ScreenShift class from the
ru.dgis.sdk.mappackage. -
Removed the
buildingLevelsproperty for obtaining floor plans from the DirectoryObject. -
The DirectoryObject.buildingInfo property is now optional.
-
The BuildingInfo.buildingId property is now mandatory and cannot be empty.
-
The LevelInfo.id property is now optional.
-
Changed the type of the PublicTransportDirectoryRouteInfo.color property from
Int?toColor?. -
The SearchQueryBuilder.setGeoPoint() method now accepts an optional value type.
-
The SearchQueryBuilder.setRadius() method now accepts an optional value type.
-
Removed the
getRoadMacroGraphfunction and theRoadMacroGraphclass. Now, to build offline routes between neighboring regions, download the required region packages. -
Removed the class for configuring the position of the bubble with lanes on the route (
LanesCalloutMapPositionandRouteMapObject.lanesCalloutPositions) and the property from the RouteMapObject. -
Renamed the
UIntRouteLongAttributeclass to DoubleRouteLongAttribute. -
Changed the type of the Route.trafficLights property from VoidRouteAttribute to StringRouteAttribute.
-
Added a new transport type
MOTORCYCLEto TransportType. -
Added parameters for configuring the style zoom level to the SpeedRangeToStyleZoom constructor.
-
Added the
RAMP_DOWN,RAMP_UP,SMOOTH_RAMP_DOWN, andSMOOTH_RAMP_UPvalues for ramps to RoadSubtype. -
Added new values of positions and landmarks to CarInstructionCrossroadLandmark.
-
Added the
DEEP_GREENandORANGEcolor values to TrafficSpeedColor. -
Added the
CROSSINGflag for displaying the start and end of a crossing on a route to RouteMapObjectDisplayFlag. -
Added the
CROSSINGnew type of a route point (the start and end of a crossing) to RoutePointKind. -
Added values for event notifications
BETTER_ROUTE("better route") andHUMPS(speed bumps) to SoundCategory.
13.0.0 (2025-10-13)β
π Features and improvementsβ
- DgisSource.createImmersiveDgisSource - source of immersive data.
- BaseCamera.changed - channel for notifications about camera state changes.
- CameraChange - class containing information about camera state changes.
- CameraChangeReason - reasons for camera state changes.
- LevelInfo.linkedLevelIds - identifiers of linked floor plans.
- BriefRoadEvent.trustworthy - flag indicating the reliability of a road event.
- IndoorBuilding.mode and IndoorBuilding.modeChannel - mode of displaying buildings with floor plans.
- IndoorBuilding.linkedWith() - method for checking the link between buildings with floor plans.
- RoadEvent.elevation - elevation of a road event.
- BranchesInfo and DirectoryObject.branchesInfo - information about linked organizations.
- FloorsInfo and BuildingInfo.floorsInfo - information about the number of floors in a building.
- SearchManager.search() - method for searching directory objects using SuggestQuery and settings.
- SearchSettings - settings for searching directory objects.
- SearchHistoryKeyStrategy and SearchHistory.setKeyStrategy() - method for setting the strategy for creating keys for search history items.
- IncompleteTextHandler.searchQuery - property of the search query.
- StorageOptions - class for offline data storage parameters. It is passed to DGis to specify the path to the root directory of the main download storage.
- RouteCamera.mobility - flag indicating the mobility of a road camera.
- ObstacleInfo.objectId - identifier of an obstacle object on the route.
- BicycleRouteSearchOptions.avoidUnpavedRoads - flag to avoid unpaved roads on bicycle routes.
- PedestrianRouteSearchOptions.avoidUnpavedRoads - flag to avoid unpaved roads on pedestrian routes.
- ScooterRouteSearchOptions.avoidUnpavedRoads - flag to avoid unpaved roads on scooter routes.
- DataPrefetcher and NavigationManager.dataPrefetcher - class for prefetching map tiles along the route.
- FinishDetector and NavigationManager.finishDetector - class for managing the route completion controller.
- TrafficJamDetector and NavigationManager.trafficJamDetector - class for detecting traffic jams on the route.
- MapLocationController.userControlOverMap - flag for applying custom values of the map zoom level and tilt.
- CrossingType and Route.crossingTypes - types of crossings on the route.
- MotorcycleBriefRouteInfo - class with basic information about a motorcycle route.
- MotorcycleBriefRouteInfoTrafficSpeed - traffic speeds for motorcycle routes.
- MotorcycleRouteSearchOptions - class with parameters of motorcycle routes search.
- PublicTransportInfo.routeInfos - descriptions of public transport routes.
- PublicTransportRouteInfo - class with information about a public transport route.
- PublicTransportCostInfo - class containing information about the cost of travel on public transport.
- RouteTollPaymentPointInfo and Route.tollPaymentPointInfos - class containing information about payment points on a toll road.
- RouteTollPaymentPointType - type of payment on a toll road.
- TraversalType - direction of public transport circular line.
- Package.pause() - method for pausing the package installation or update.
- Package.install(InstallFallback) - method for installing or updating a package with an error handler.
- InstallFallback - interface for defining behavior in case of errors during package installation or update.
- DefaultInstallFallback - factory for creating strategies for handling errors during package installation or update.
- DefaultInstallFallback.noOperation() - method for creating an
InstallFallbackthat performs no operations. - DefaultInstallFallback.retryOnError() - method for creating an
InstallFallbackthat retries the installation in case of a package download error. - VoiceManager.defaultVoice - property for obtaining a voice package based on a list of locales.
β Breaking changes and backward compatibilityβ
-
Updated the minimum supported Android version (API Level) from 21 to 23.
-
Now, a single channel BaseCamera.changed is used to track camera state changes instead of separate channels for each property. Subscriptions are replaced, and additional filtering of change reasons is added.
-
Changed the method of creating some classes:
- Removed the
getSystemMemoryManagerfunction. To obtain an object for managing system memory, use the SystemMemoryManager.instance() method. - Removed the SearchHistory constructor. To obtain a search history object, use the SearchHistory.instance() method.
- Removed the RoadEventManager constructor. To obtain an object for working with road events, use the RoadEventManager.instance() method.
- Removed the
getHttpCacheManagerfunction. To obtain an object for managing the HTTP cache, use the HttpCacheManager.get() method. - Removed the
getLocaleManagerfunction. To obtain an object for managing application locales, use the LocaleManager.instance() method. - Removed the TrafficCollector constructor. To obtain an object for managing the service for traffic information collection, use the TrafficCollector.instance() method.
- Removed the
getAudioSettingsfunction. To obtain an object for managing application sound, use the AudioSettings.get() method. - Removed the
getPackageManagerfunction. To obtain an object for managing packages, use the PackageManager.instance() method. - Removed the
getTerritoryManagerfunction. To obtain an object for managing territories, use the TerritoryManager.instance() method. - Removed the
getTerritoriesAlongRouteProviderfunction. To obtain an object for extracting a list of territories along a route, use the TerritoriesAlongRouteProvider constructor. - Removed the
getVoiceManagerfunction. To obtain an object for managing voice packages, use the VoiceManager.instance() method.
- Removed the
-
Removed the
EventsProcessingSettingsclass. -
Renamed the
Gestureobject to TransformGesture. -
Renamed the
ScalingSettingsobject to ScalingRecognizeSettings. -
Renamed the
RotationSettingsobject to RotationRecognizeSettings. -
Renamed the
MultiTouchShiftSettingsobject to MultiTouchRecognizeSettings. -
Renamed the
TiltSettingsobject to TiltRecognizeSettings. -
GestureManager.scalingSettings, GestureManager.rotationSettings, GestureManager.multitouchShiftSettings, and GestureManager.tiltSettings now return objects with ScalingGestureSettings, RotationGestureSettings, MultiTouchGestureSettings, and TiltGestureSettings types, respectively.
-
Moved the Color class for representing colors from the
ru.dgis.sdk.mappackage. -
Moved the ScreenDistance class from the
ru.dgis.sdk.mappackage. -
Moved the ScreenPoint class from the
ru.dgis.sdk.mappackage. -
Moved the ScreenShift class from the
ru.dgis.sdk.mappackage. -
Removed the
buildingLevelsproperty for obtaining floor plans from the DirectoryObject. -
The DirectoryObject.buildingInfo property is now optional.
-
The BuildingInfo.buildingId property is now mandatory and cannot be empty.
-
The LevelInfo.id property is now optional.
-
Changed the type of the PublicTransportDirectoryRouteInfo.color property from
Int?toColor?. -
The SearchQueryBuilder.setGeoPoint() method now accepts an optional value type.
-
The SearchQueryBuilder.setRadius() method now accepts an optional value type.
-
Removed the
getRoadMacroGraphfunction and theRoadMacroGraphclass. Now, to build offline routes between neighboring regions, download the required region packages. -
Removed the class for configuring the position of the bubble with lanes on the route (
LanesCalloutMapPositionandRouteMapObject.lanesCalloutPositions) and the property from the RouteMapObject. -
Renamed the
UIntRouteLongAttributeclass to DoubleRouteLongAttribute. -
Changed the type of the Route.trafficLights property from VoidRouteAttribute to StringRouteAttribute.
-
Added a new transport type
MOTORCYCLEto TransportType. -
Added parameters for configuring the style zoom level to the SpeedRangeToStyleZoom constructor.
-
Added the
RAMP_DOWN,RAMP_UP,SMOOTH_RAMP_DOWN, andSMOOTH_RAMP_UPvalues for ramps to RoadSubtype. -
Added new values of positions and landmarks to CarInstructionCrossroadLandmark.
-
Added the
DEEP_GREENandORANGEcolor values to TrafficSpeedColor. -
Added the
CROSSINGflag for displaying the start and end of a crossing on a route to RouteMapObjectDisplayFlag. -
Added the
CROSSINGnew type of a route point (the start and end of a crossing) to RoutePointKind. -
Added values for event notifications
BETTER_ROUTE("better route") andHUMPS(speed bumps) to SoundCategory.
π Bug fixesβ
-
Fixed an issue that caused the application crash when running SearchManager.createSmartManager() if there were no downloaded territories.
-
Added a filter to hide building floors on the map if their area on the screen is below a certain threshold.
-
Fixed sound notifications in the navigator:
- Fixed an issue where the "camera behind" warning was not voiced.
- Fixed an issue where promo phrases were not voiced despite having a valid voice package.
- Added sound notifications for stairs on the route.
- Fixed an issue where intersection control cameras were voiced as speed control cameras.
- Added sound notifications for route rebuilding for bicycles and scooters.
-
Fixed the navigator operation issues in case of problems with the GPS signal:
- Fixed an issue where the current location marker changed its position when the weak GPS signal detector was active.
- Fixed issues that occurred when the user approached the end point of the route with an unstable GPS signal.
- Added a feature to disable route deviation detection when GPS signal accuracy is low.
- Now, when GPS signal accuracy drops sharply during navigation, the user location is not moved to another place on the map.
-
Fixed the navigator operation issues:
- Fixed an issue where the bubble with information about the route time and length was not displayed on the route search screen if one of the routes lacked unique segments.
- Fixed an issue where the time difference in the alternative route bubble was not updated if the user did not move while using the navigator.
- Removed exit names in bubbles if no direction is specified or the exit leads to an object of the "airport" type.
- Fixed an issue where road event icons did not respond to taps.
- Added support for displaying and coloring traffic jams on unpaved roads.
- Fixed duplication of icons for Moscow MCC, MCD, Aeroexpress, and suburban trains in the bubble of a route with transfers.
- Fixed incorrect display of the route line at intersections.
- Removed the display of an additional icon with lanes for cameras that record failure to give priority to pedestrians.
- Fixed an issue where the user geolocation was incorrectly snapped to the route when returning to it.
- Fixed an issue that caused the application crash when rebuilding a pedestrian route in turn-by-turn mode.
- Fixed behavior where additional icons were displayed on the route after the expiration of a road event.
- Updated the logic for displaying additional icons with lanes for confirmed road events.
- Added a restriction where toll roads are excluded from the route when it is rebuilt if the user selected free roads only.
- Added displaying of notifications about stairs on the route estimated time panel.
- The navigator now continues to guide the user along the route and rebuilds it if necessary, even if the finish pane (with the Finish route button) is closed.
- Updated the logic of lane filtering: lanes that allow straight movement are not excluded from the route lane bubbles.
- Added visualization of blinking of traffic jams on the route at speeds of 80β90 km/h.
πΊ Map style updatesβ
- Styles must be exported again: fixed issues with displaying custom and immersive objects.
- Updated all layers in the
Roadsgroup for displaying immersive roads in the main map mode. - Added the
Traffic v13.0.0group for displaying new colors of tiles with traffic jams. - Added the
Car route line v13.0.0group for displaying car routes on immersive roads.
12.8.1 (2025-08-26)β
π Features and improvementsβ
- The SDK now supports the use of Dynamic Feature Delivery. Important: if you use the standard SDK initialization method (adding an access key file to the
assetsof the application), the key must be placed in theassetsof thefeaturemodule.
π Bug fixesβ
- Fixed issues with loading the native library (in the
.soformat) that caused theUnsatisfiedLinkErrorin some sessions.
12.8.0 (2025-08-14)β
π Features and improvementsβ
- Added support for the Armenian language on the map, in the directory, and for routing. Also added Armenian voice notification packages.
- TrafficRouter now supports specifying the route search engine type (online, offline, or hybrid) using RouterType.
- NavigationManager and RouteEditor now support specifying the route search engine (TrafficRouter).
π Bug fixesβ
- Added a linker option to set the memory page size to 16 KB when building the library.
- Traffic data via TrafficSource is no longer requested or updated while the application is running in the background.
- Fixed a memory leak in SearchLayout that occurred when the device configuration changed.
12.7.2 (2025-06-20)β
π Features and improvementsβ
- DirectoryObject.platformIds - information about identifiers of public transport platforms in a directory object.
- EntranceInfo.entranceNumber - entrance number of the public transport station.
π Bug fixesβ
- DirectoryObject.routeInfos now returns correct information about routes that pass through a particular public transport platform.
- DirectoryObject.entrances now returns correct information about metro entrances.
12.7.0 (2025-06-03)β
π Features and improvementsβ
- DirectoryObject.routeInfos - information about public transport routes in a directory object.
- ItemMarkerInfo.tradeLicense - information about the organization trade license in a marker.
- SearchResult.nearbyRequested - flag in search results indicating that nearby objects were requested during the search.
- TrafficRoute.routeTollPaymentInfos - information about toll costs for paid sections of the route.
- RoadMacroGraph - global road graph package will be deprecated in next versions. You can build routes between territories using downloaded offline data.
πΊ Map style updatesβ
- Export styles again to apply the fixes of displaying immersive roads and fog in the navigator.
12.6.3 (2025-05-13)β
π Bug fixesβ
-
Optimized TrafficSource:
- Traffic tiles are requested when changing the map scale and by timer.
- Traffic jam score is updated when changing the region and by timer.
-
Improved map performance when adding polygons with a large number of vertices via MapObjectManager.
12.6.2 (2025-04-23)β
π Bug fixesβ
- Fixed the display of dynamic objects added via MapObjectManager on some Huawei devices.
12.6.0 (2025-04-17)β
π Features and improvementsβ
- DefaultLocationSource now supports configuring the use of the Radar API to determine device geolocation based on Wi-Fi access points and cellular towers. You can configure the Radar API usage via RadarApiSettings. For details, see the Using the Radar API section.
- TextStyle.suppressOnOverlap - an option to hide marker label text when it overlaps with other objects.
π Bug fixesβ
- Fixed the update of generalization when changing attributes of objects added via the MapObjectManager.withGeneralization method.
- Fixed an issue where the application would crash when logging network requests.
12.5.0 (2025-03-25)β
π Features and improvementsβ
- SearchQueryBuilder.setLocale - a method to define the locale where a search request is executed.
- DirectoryObject.group - a combination of objects of different types in one card. For example, a courthouse card contains information about a building as a geographical object and about the court as an organization inside the building.
- SearchQueryWithInfo.rubrics - a list of rubrics to search by.
- PackedSearchQuery.locale - a search query locale.
π Bug fixesβ
- Fixed an issue that caused a geolocation marker added via MyLocationMapObjectSource disappear during the first camera flyover.
- Fixed the display of route information on the map when the text is written right-to-left for the RouteEditorSource data source.
- Changed the settings of caching source data on a route. Now the data is cached at a distance of 4000 meters forward from the current position on the route instead of 20000 meters.
πΊ Map style updatesβ
- Consider exporting styles again to apply the fix of displaying route information on the map when the text is written right-to-left.
12.4.3 (2025-02-19)β
π Features and improvementsβ
- Projection.distanceOnMap - a method for calculating the distance between points on the map that correspond to the specified points on the screen.
- Projection.distanceOnScreen - a method for calculating the distance between points on the screen that correspond to the specified points on the map.
π Bug fixesβ
- Fixed the display of a circle on the map when adding a Circle object to MapObjectManager.withClustering and MapObjectManager.withGeneralization.
12.4.0 (2025-01-30)β
π Features and improvementsβ
- SpeechRecognizer and DefaultSpeechRecognizer - a feature to run speech recognition and process the results via callback functions.
- Map.sublayerAttributes - a feature to override attributes of a particular map layer.
- SearchHistory - a class for working with search query history: reading, adding, and deleting records with information about search results and search suggestions.
- SearchQueryBuilder.fromOrgId - a method for building a search query by organization identifier.
- SearchQueryBuilder.fromBuildingId - a method for building a search query by building identifier.
- SearchQueryBuilder.fromGeoPoint - a method for building a search query with the center of the search area.
- SearchQueryBuilder.setGeoPoint and SearchQueryBuilder.setRadius - methods for specifying the center of the search area and the radius when building a search query.
- DirectoryObject.orgInfo - information about an organization in the directory object.
- MyLocationMapObject.setModelData - a method for specifying a 3D model of a geolocation marker.
- BaseCamera.viewPoint - a feature to change the camera viewpoint relative to the size of the map viewport.
- AnimationSettings.animationName - a feature to switch 3D model animation by its name.
- Added guide on working with UI elements via Android Compose.
- Added guide on managing map styles.
π Bug fixesβ
- Now the position of the 3D model coincides with the camera direction if the bearing value is not specified in ModelMapObject.mapDirection.
- Fixed incorrect configuring attributes for generalizing objects added to the map via MapObjectManager.withClustering. Now changing object attributes at a certain zoom level is applied to all levels.
- Fixed the operation of the attribute for controlling the visibility of an object on the map SimpleMapObject.isVisible when generalizing and clustering objects.
πΊ Map style updatesβ
- Fixed the priority of processing clicks between the geolocation marker and buildings on the map.
12.3.0 (2024-12-18)β
π Features and improvementsβ
- ModelMapObject and ModelMapObjectOptions - classes for creating and configuring dynamic objects with 3D models. You can add these objects to the map using MapObjectManager.
- ModelData and createModelData(context, loader), createModelData(context, data), modelDataFromAsset(context, assetName) methods - a feature to upload custom 3D models.
- Now when you add TrafficSource to the map, traffic tiles are requested based on the screen viewport, regardless of updating the SDK configuration file.
- DirectoryObject.rubricIds - rubric identifiers in the directory object.
- Enabled tracking changes in the stable (AndroidAutoMapSession.onStableAreaChanged) and visible (AndroidAutoMapSession.onVisibleAreaChanged) areas of the map in Android Auto.
- FreeRoamSelector and NavigationManager.freeRoamSelector - a feature to enable and disable switching the navigator to
FreeRoammode if the route rebuilds too long. - RouteRebuilder and NavigationManager.routeRebuilder - a feature to enable and disable searching for a new route when leaving the current route.
- TrafficRouter.requestRoute - a feature to search for a route using previously serialized parameters.
π Bug fixesβ
- Fixed duplicating branch numbers for organization categories in Suggest.subtitle.
- Fixed an issue of getting coordinates of an object when processing of click in the Marker that is added to the map before the initial map loading.
- Fixed the display of the 3D model of navigator geolocation marker for all route types except pedestrian. For a pedestrian route, a regular model of geolocation marker is displayed.
- Updated navigator configuration to improve performance in poor GPS signal conditions.
πΊ Map style updatesβ
- Added a layer for displaying dynamic 3D models.
12.2.1 (2024-12-03)β
π Bug fixesβ
- Fixed the issues that caused performance degradation when displaying a large number of objects on the map.
12.2.0 (2024-11-15)β
π Features and improvementsβ
- AnimationSettings - a class for configuring the map object animation. Can be applied to objects with the
3D modelandDirectional modellayer types. - MyLocationMapObject.animationSettings - a feature to configure the geolocation marker animation if an animated model is loaded as a model in styles.
- MyLocationMapObject.objectAttributes - a feature to configure style attributes for a geolocation marker. You can find available attribute values in styles for a corresponding layer.
- RoadEventMapObject.animationSettings - a feature to configure the road event animation if an animated model is loaded as a model in styles.
- RoadEvent.id - road event identifier.
- ParkingControlModel - a model for switching the visibility of parking lots on the map.
- ItemMarkerInfo.rubricIds - identifiers of rubrics that a marker object belongs to.
- TextHorizontalAlignment - a setting to horizontally align a text in a Marker using TextStyle.
- RouteMapObjectsProvider and NavigationManager.routeMapObjectsProvider - a class for getting route objects on the map.
- RouteMapObject.roadEventObjects - road events on the map for a corresponding route.
- MyLocationMapObjectSourceProvider and NavigationManager.myLocationMapObjectSourceProvider - a class for getting a geoposition marker source in the navigator.
π Bug fixesβ
- Fixed a set of issues to ensure proper display of the map in Android Auto.
- Improved the mechanism of getting marker object title ItemMarkerInfo.title. Now it is considered that a marker may have no title.
- Fixed a potential issue during map initialization when a style could be installed before the initialization process was completed.
- Fixed a potential freeze of MapObjectManager when objects are frequently added and removed using theMapObjectManager.removeAndAddObjects method.
- Fixed road events display, which previously worked not for all regions.
- Fixed the display of route arrows in relation to immersive roads of actual width in the navigation mode.
- Fixes a potential issue that prevented the display of lane bubbles on the route in the navigation mode.
πΊ Map style updatesβ
- Fixed style issues when displaying a geolocation marker in the navigation mode with immersive roads of actual width.
- Fixed style issues when displaying building floor plans.
10.8.0 (2024-11-02)β
π Bug fixesβ
- Fixed a possible freeze of MapObjectManager when objects are frequently added and removed using the MapObjectManager.removeAndAddObjects method.
- Fixed an application crash when logging network requests.
- Fixed road events display, which previously worked not for all regions.
12.1.0 (2024-09-24)β
π Features and improvementsβ
- ItemMarkerInfo.title - a marker object name.
- AndroidAutoMapSession.onSurfaceAvailable and AndroidAutoMapSession.onSurfaceDestroyed methods for providing a custom
Surfaceobject in Android Auto for rendering additional content. - The copyright is displayed in Android Auto.
- DirectoryObject.chargingStation - information about EV charging stations in a directory object.
π Bug fixesβ
- Updated DgisSource.createDgisSource to return the hybrid tiles source of the default map in
FullSDK version. - Improvements to the immersive roads of actual width operation in the navigation mode.
πΊ Map style updatesβ
- Fixed issues in styles when displaying immersive roads of actual width.
- Fixed fog display at different map tilt angles.
12.0.0 (2024-08-19)β
π Features and improvementsβ
-
Immersive roads of actual width are displayed in the navigation mode if:
- Map.graphicsPreset field is set to
IMMERSIVE. HttpCacheis enabled using HttpOptions.useCache.
Roads of actual width are currently available in several large cities of Russia, UAE, and Saudi Arabia only.
- Map.graphicsPreset field is set to
-
Fog is displayed to cut off distant map objects when the map is tilted.
-
ru.dgis.sdk.androidautopackage for integrating the SDK into Android Auto. -
BaseCamera.viewportRestriction to set camera viewport.
-
MapOptions.graphicsPreset to set graphic mode via GraphicsPreset during map initialization.
-
Map.graphicsPreset to set graphic mode via GraphicsPreset for a created map.
-
Map.graphicsPresetHint to get the recommended graphic mode for the given device.
-
Enabled titling the map up to 70 degrees starting from the 18th zoon level.
-
RasterUrlTemplate to set URL template for requesting raster tiles. Can take two values: DefaultRasterUrlTemplate for a common template and WmsRasterUrlTemplate for raster tiles of the WMS standard.
-
MapLocationController.mapToNorthOrientation to force map orientation to the north.
-
RouteCamera.maxSpeedLimit - speed in m/s, exceeding which is captured by the camera.
-
NavigationFollowController.cameraBehaviour - camera mode for tracking geolocation marker in the navigator.
-
Terrain elevation is now considered when displaying road events and traffic jam data on route.
-
If the current position on route is more than 500 away from the next maneuver, the "Go straight" phrase is played.
-
Sound instructions for bicycle and scooter intersections are supported.
-
RouterType to set the search engine type in AlternativeRoutesProviderSettings to search for alternative routes.
-
toRoutePointparameter in the MillisecondsRouteAttribute.calculateDuration method to calculate duration of moving along the route part towards a particular point. -
TerritoryManager.findByPoint and TerritoryManager.findByRect methods to filter regions that are available for downloading offline by
GeoPointandGeoRect.
β Breaking changes and backward compatibilityβ
- Moved
KeySource,KeyFromAsset,KeyFromFile, andKeyFromStringtoru.dgis.sdk.platform. - Moved
VendorConfig,VendorConfigFromAsset,VendorConfigFromFile, andVendorConfigFromStringtoru.dgis.sdk.platform. - Moved
LogOptions,LogLevel,LogMessage, andLogSinktoru.dgis.sdk.platform. - Moved
HttpOptions,Certificate,CertificateFromAsset,CertificateFromFile,SystemCertificate, andHttpProxyOptionstoru.dgis.sdk.platform. - Removed
MyLocationControllerandMapLocationController.myLocationIndicatorController. To configure the marker geolocation source, use MyLocationControllerSettings. In the NavigationView, geolocation source is now not substituted. - Added the
GEO_POSITIONvalue to EventsProcessingSettings.rotationCenter and EventsProcessingSettings.scalingCenter to set the gesture operation mode relative to the geolocation. To set the position, relatively to which the gesture will be working, use the GestureManager.setTargetGeoPoint method. - Moved Meter from
ru.dgis.sdk.maptoru.dgis.sdk. - Removed the
CameraState.FOLLOW_POSITIONvalue. Instead, see the Camera.behaviour value. - Extended values for SuggestedType, SuggestorType, and ObjectType so that they now correspond to Places API results.
- Removed the
createRasterTileDataSourcemethod. Added a new source of raster tiles RasterTileSource, which enables setting transparency for raster tiles. - Removed
AudioVolume. You can now set instructions volume from 0 to 100 using AudioSettings.volume. - RouteMapObjectDisplayFlag.IMMERSIVE_ROUTE_PARTS - flag to use immersive geometry on route parts.
π Bug fixesβ
- Optimized caching of road events when displaying them on the map.
- Fixed artifacts of screen rotation when enabling
Vulkan. - Fixed issues that prevented displaying route variants if an invalid variant was included into the list of public transport routes.
- Fixed the record of the covered distance along an alternative route.
- Improved the display of stops on public transport routes.
- Improved erasing of the route when the route finish point is reached.
- Fixed the active route display in poor GPS signal conditions.
- Voice instructions are now not played during navigation in poor GPS signal conditions.
- Distance to the next camera is not considered if it is less than 150 meters.
- Voice instructions are not played when navigation starts.
- Distance to intersection control cameras, public transport lanes, and road markings is not voiced.
- Distance left on route is not voiced if other instructions are expected further on route.
- Pedestrian obstacles and road subtypes for non-pedestrian routes are not voiced.
πΊ Map style updatesβ
- Added layers with immersive roads of actual width.
- Improved various layers so that they are displayed properly if immersive roads of actual width are present on the map.
- Updated geolocation marker designs in normal and navigation modes. Made the marker display in light and dark themes consistent.
- Supported new Moscow Metro line MCD-4A.
- Fixed styles of Moscow Metro lines MCD-3, MCD-4, MCD-4A, and MCD-5.
- Added stop captions on public transport routes.
- Enabled displaying stop captions when viewing the full route of a selected public transport.
Migration from versions 10.x to 12.Ρ β
For Full and Map versionsβ
- Styles must be exported again.
- To ensure proper display of the geolocation marker, copy corresponding layers.
- Moved
KeySource,KeyFromAsset,KeyFromFile, andKeyFromStringtoru.dgis.sdk.platform. - Moved
VendorConfig,VendorConfigFromAsset,VendorConfigFromFile, andVendorConfigFromStringtoru.dgis.sdk.platform. - Moved
LogOptions,LogLevel,LogMessage, andLogSinktoru.dgis.sdk.platform. - Moved
HttpOptions,Certificate,CertificateFromAsset,CertificateFromFile,SystemCertificate, andHttpProxyOptionstoru.dgis.sdk.platform. - Removed
MyLocationControllerandMapLocationController.myLocationIndicatorController. To configure the marker geolocation source, use MyLocationControllerSettings. In the NavigationView, geolocation source is now not substituted. - Added the
GEO_POSITIONvalue to EventsProcessingSettings.rotationCenter and EventsProcessingSettings.scalingCenter to set the gesture operation mode relative to the geolocation. To set the position, relatively to which the gesture will be working, use the GestureManager.setTargetGeoPoint method. - Moved Meter from
ru.dgis.sdk.maptoru.dgis.sdk. - Removed the
CameraState.FOLLOW_POSITIONvalue. Instead, see the Camera.behaviour value. - Extended values for SuggestedType, SuggestorType, and ObjectType so that they now correspond to Places API results.
- Removed the
createRasterTileDataSourcemethod. Added a new source of raster tiles RasterTileSource, which enables setting transparency for raster tiles.
Additionally for Full versionβ
- To ensure that immersive roads of actual width are displayed and other objects interact with them properly in the navigation mode, export latest Mobile SDK styles and apply your settings.
- Removed
AudioVolume. You can now set instructions volume from 0 to 100 using AudioSettings.volume. - RouteMapObjectDisplayFlag.IMMERSIVE_ROUTE_PARTS - flag to use immersive geometry on route parts.
10.7.0 (2024-08-13)β
π Features and improvementsβ
- CustomDashboardButton and DashboardButtonAbsent to configure the button for adding road events in the navigator dashboard.
10.6.0 (2024-08-07)β
π Features and improvementsβ
- PackageInfo.finalSizeOnDisk - size of the disk space that the territory takes after installation, in bytes.
- PackageInfo.currentSizeOnDisk - size of the disk space that currently installed territory files take, in bytes.
π Bug fixesβ
- Fixed the process of updating a position in the clustering tree using MapObjectManager.withClustering when a marker position changes.
- Updated the copyright design of a map snapshot created using the MapView.takeSnapshot method.
- In the NavigationView, the speedometer UI control is now displayed during bicycle navigation.
- In the NavigationView, the position tracking UI control is now not hidden during pedestrian navigation.
10.5.0 (2024-06-05)β
π Features and improvementsβ
- You can now set a cascaded
appIdin the key settings. This allows you to link the key not to a particular application, but to a group of applications with the same identifier pattern. - Updated the copyright design.
- Added TiltSettings.maxParallelsDeviationDeg to configure a map tilt gesture.
π Bug fixesβ
- Fixed the MapView.fpsChannel channel operation.
- When displaying markers using Marker, text labels do not overlap.
- Fixed the display of the geolocation marker when a direction sensor stops providing data.
10.4.0 (2024-05-20)β
π Features and improvementsβ
- Added DGis.initialize with a parameter to redefine the audio driver for playing SDK sounds. Added the AudioDriver interface for setting a platform implementation of the audio driver.
- ZoomFollowSettings.speedRangeToStyleZoomFreeRoamSequence became a setter.
π Bug fixesβ
- Fixed an issue that led to a situation when changing a floor via IndoorBuilding.activeLevelIndex did not influence the IndoorControl display.
- Fixed gesture handling when the map is working in the background.
- In NavigationView, the geolocation source is now changed to the source with a navigator controller only when the navigation starts.
β Breaking changes and backward compatibilityβ
- You can now add only one source of the current location (MyLocationMapObjectSource) to a Map object.
10.3.0 (2024-05-06)β
π Features and improvementsβ
- Information about traffic jams in regions is now updated regardless of the update of the SDK configuration file.
- With the zoom level higher than 2, you now cannot move the map to display empty lanes at the top and bottom.
- Added an Arabic voice package for the navigation.
π Bug fixesβ
- Fixed clustering via MapObjectManager.withClustering. Now the cluster hierarchy is rebuilt if the position of one marker is changed using Marker.position.
- Fixed incorrect handling of taps in Marker with the Lottie animation.
- Map.dataLoadingStateChannel does not freeze in the
loadingstate in the geolocation following mode. - Fixed an issue that caused rendering an empty
sources.jarin a release package. - Fixed rendering of the dashboard in the NavigationView in the
FreeRoammode.
10.2.0 (2024-03-07)β
π Features and improvementsβ
- CircleOptions.dashedStrokeOptions and Circle.dashedStrokeOptions options for creating a dashed circle or adding a dashed outline for an existing circle.
- RoadEventSource.setHighlighted method for highlighting road events with IDs from RoadEventMapObject.id.
- calculateClosestPoint function for obtaining the closes point on the map relative to the given point.
π Bug fixesβ
- Fixes performance issues of
layedIddefined in MapObjectManager: now it impacts the display of clustered markers.
πΊ Map style updatesβ
- Download styles again to ensure valid operation of dashed circles.
10.1.0 (2024-01-16)β
π Features and improvementsβ
- Added the DirectoryObject.buildingInfo structure with reference information about a building:
buildingName,purposeName,purposeCode, andbuildingLevels. DirectoryObject.buildingLevels is marked asdeprecatedand will be removed in the future major releases. - Added DirectoryObject.address.fiasCode - the FIAS (Federal Information Address System) code of a directory object.
- Added the
fiasCodefield (the FIAS code of the street) to DirectoryObject.address.components in AddressComponent.streetAddress and AddressComponent.number structures.
10.0.0 (2023-12-29)β
π Features and improvementsβ
- Started supporting Vulkan. If Vulkan is unavailable on the device, OpenGL version 3 is used. By default, OpenGL is enabled because Vulkan support is under development and is an experimental feature.
- Enabled immersive trees to be displayed on the map by default.
- Supported a new model for displaying the current location marker. To override the current location icon, pass MyLocationMapObjectMarkerType.SVG_ICON to the MyLocationMapObjectSource and edit a corresponding layer in styles.
- Added the BaseCamera.changePosition method for changing only certain parameters of camera position. The method takes a new CameraPositionChange structure.
- Added the Camera.move method for launching animated map movement with a possibility to reset tilt following.
- Added the
styleZoomToTiltRelationparameter for calcPosition and zoomOutToFit functions. The parameter represents a function of camera tilt angle dependence on the style zoom level. - Added the createDefaultStyleZoomToTiltRelation function for getting the dependence of the camera tilt angle on the style zoom level for the standard tilt following controller.
- Added the BearingSource enum, a source of direction.
- Enabled overriding the network client in DGis.initialize using the HttpClient interface.
- Added MarkerOptions.iconAnimationMode and Marker.iconAnimationMode to enable setting animation modes in markers. The mode can be normal or looped.
- Added SearchResult.actionWidgets and SearchResult.mainWidgets for dynamic filtering of the obtained search results. Added the Widget class that works as a widget for filtering search results.
- Added
localesandsystemLocalesmethods and corresponding channels to LocaleManager for getting all locales of an application and system locales. - Added the createDefaultMaxTiltRestriction function for getting the default dependence of the tilt angle restriction on the scale. By default, this dependence is set during map creation: BaseCamera.maxTiltRestriction.
- Added the IndoorManager.setIndoorState method for managing the display of floor plans on the map.
- Added the LocationService interface for getting the latest value of the user geolocation in a convenient way.
- Added the new SearchLayout UI control that implements the search engine logic: search, suggestions, display of search results.
- Added the PackedMapState.cameraBehaviour field for serializing the camera tracking mode.
- Added the
errorfield to PackageInfo: an error that occurs during an attempt to download and/or install a package. - Added the NavigationManager.alternativeRouteSelector field for selecting an alternative route.
- Added the Route.bicycleLanes field: an indication of a dedicated cycle lane.
- Added the RoutePointKind.BICYCLE_LANE value: the beginning and end of a cycle lane.
- Added the PedestrianRouteSearchOptions.avoidUnderpassesAndOverpasses flag: avoid pedestrian underpasses and overpasses.
- Added the RouteMapObjectSource.replaceObject for replacing one route object in source with another.
- Added the NavigationFollowController.mapLocationController field. MapLocationController is a controller to manage map positioning in the navigator.
- Added the NavigationFollowController.cameraBehaviour field to enable changing the mode of map following the geolocation marker.
- Added the ZoomFollowSettings.speedRangeToStyleZoomFreeRoamSequence field: a sequence of speed ranges and corresponding scales in the FreeRoam navigation mode.
β Breaking changes and backward compatibilityβ
-
Changed working with FollowController:
- Removed
createRawMyLocationControllerandcreateSmoothMyLocationControllermethods. Added the MyLocationController constructor for creating controllers of geolocation marker movements. - Removed
FollowBearing.SATELLITEandFollowBearing.MAGNETICvalues because now you do not need to specify the direction source. Added the FollowBearing.ON value for enabling the following mode (the source is selected automatically). - Removed the
FollowPosition.tiltfield. Now you need to enable tilt following separately. Added a newtiltparameter to the CameraBehaviour constructor for tilt following. - Removed
FollowValue.SATELLITE_BEARING,FollowValue.MAGNETIC_BEARING, andFollowValue.ACCURACYvalues. Instead, added the FollowValue.BEARING value with automatic selection of the source. - Removed
satelliteBearing,magneticBearing, andaccuracymethods from the CustomFollowController interface. Added the CustomFollowController.bearing method instead. - Removed
setClock,satelliteBearing,magneticBearing, andaccuracymethods from FollowController. AddedonAddedToMap,onRemovedFromMap, andbearingmethods instead. - Removed the
FollowController.nextTimestampChannelchannel. Added FollowController.changedChannel instead. - Changed the signature of the FollowController.updateValues method.
- Removed the
PlatformLocationFollowControllercontroller. Instead, added BearingFollowController and CoordinatesFollowController controllers for following the map direction and map position coordinates respectively. - Changed the constructor of the StyleZoomFollowController controller. Removed the
StyleZoomFollowController.setAnimationDurationmethod. - Changed the constructor of the TiltFollowController controller. Removed
TiltFollowController.setTiltandTiltFollowController.setAnimationDurationmethods. - Replaced parameters of the FollowController.setThresholds with the typed ones.
- Removed the
FollowControllerClockclass. Changed the type of the FollowController.setClock method parameter to timestamp. - Removed
TransitionType. The MyLocationControlModel constructor does not taketransitionTypenow. Removed theCameraBehaviour.transitionTypefield. Removed thetransitionTypeparameter from the CameraBehaviour constructor. - Removed
MyLocationDirectionBehaviour. The MyLocationMapObjectSource constructor of a geolocation source does not takedirectionBehaviournow. Removed theMyLocationMapObjectSource.setDirectionBehaviourmethod.
- Removed
-
Removed the
BaseCamera.styleZoomToTiltRelationfield. -
Renamed the
MagneticHeadingProviderclass toHeadingProvider. -
Updated the LocaleManager.overrideLocales method to take a list of structures
Localewith separatelanguageandregionfields. -
Removed PackageManager and Package from the SDK Map build. The product size has reduced.
-
Updated Voice.playWelcome to return Future, which becomes ready when sample playing is finished.
-
Removed the
RoadSubtype.STAIRWAYfield. Instead, added RoadSubtype.STAIRWAY_UP and RoadSubtype.STAIRWAY_DOWN fields for using stairways with explicit direction. -
Removed the
NavigationFollowController.mapTiltControllerfield. -
Enabled throwing an exception when attempting to start the navigator in the guidance or simulation mode with a public transport route.
-
Disabled cashing of
FreeRoamtiles during navigation. -
Updated MyLocationMapObjectSource for the navigator to be installed inside NavigationView.
-
Removed
lightThemeanddarkThemefields from MapOptions. To set the theme, use the MapTheme class in MapOptions.setTheme and MapView.setTheme methods.
β Known Issuesβ
- When dynamic objects are updated frequently (around 100 FPS), the map freezes.
π Bug fixesβ
-
Optimized re-rending of map frames after any changes.
-
Fixed the way traffic jams are displayed on the map depending on the zoom level.
-
Improved the smoothness of geolocation marker update.
-
Fixed the behavior of the SimpleClusterObject.setIcon method during the first call.
-
Improved creating of map snapshots using the MapView.takeShapshot method: now the state of map loading (
loadedvalue of Map.dataLoadingState) is considered. -
Fixed clustering via MapObjectManager.withClustering that worked incorrectly with fractional values of
minZoomandmaxZoom. -
Updated the company logo in the copyright and map snapshots.
-
Fixed the exception returned if corrupted styles are loaded into the map.
-
Fixed the display of UI elements from DefaultNavigationControls in the Arabic locale.
-
Improved the calculation of the distance for playing preliminary instructions for a maneuver: now lanes are considered.
-
Improved the playing of the final phrase in the navigation mode: now pedestrian route is considered.
-
Fixed an issue that prevented lane callouts from displaying the route direction.
-
Fixed the creation of lane callouts: now speed limits are not considered.
-
Fixed the display of callouts for bus lanes going straight with "No entry" sign for other vehicles.
-
Fixed the display of route suggestions:
- Suggested better route is now not removed if a user explicitly declined switching to it.
- Alternative routes are now removed from the map when the interchange with them is too far from the following position even if they can still be attracted.
- Alternative routes that branch from the main route in the same point and are equally directed are now disregarded.
- Suggestion of a better route is now revoked when the route is not considered a better one anymore after updating the traffic jam data for the route.
-
Fixed camera warnings: now notifications of camera dummies are not voiced.
-
Fixed the NavigationView behavior to display only the remaining part of the route when requested to display the full route.
-
Disabled cashing of
FreeRoamtiles during navigation by default. This is done to reduce the number of backend requests.
πΊ Map style updatesβ
- Added styles for traffic lights.
- Added immersive models of trees and buildings.
- Added support of new lines of Moscow Metro: MCD-3 and MCD-4.
- Optimized immersive models of trees.
- Added a new model for displaying the current location marker.
Migration from versions 7.x to 10.Ρ β
For Full and Map versionsβ
-
Styles must be downloaded again.
-
Changed the process of working with FollowController:
- Removed
createRawMyLocationControllerandcreateSmoothMyLocationControllermethods. Added the MyLocationController constructor for creating controllers of geolocation marker movements. - Removed
FollowBearing.SATELLITEandFollowBearing.MAGNETICvalues because now you do not need to specify the direction source. Added the FollowBearing.ON value for enabling the following mode (the source is selected automatically). - Removed the
FollowPosition.tiltfield. Now you need to enable tilt following separately. Added a newtiltparameter to the CameraBehaviour constructor for tilt following. - Removed
FollowValue.SATELLITE_BEARING,FollowValue.MAGNETIC_BEARING, andFollowValue.ACCURACYvalues. Instead, added the FollowValue.BEARING value with automatic selection of the source. - Removed
satelliteBearing,magneticBearing, andaccuracymethods from the CustomFollowController interface. Added the CustomFollowController.bearing method instead. - Removed
setClock,satelliteBearing,magneticBearing, andaccuracymethods from FollowController. AddedonAddedToMap,onRemovedFromMap, andbearingmethods instead. - Removed the
FollowController.nextTimestampChannelchannel. Added FollowController.changedChannel instead. - Changed the signature of the FollowController.updateValues method.
- Removed the
PlatformLocationFollowControllercontroller. Instead, added BearingFollowController and CoordinatesFollowController controllers for following the map direction and map position coordinates respectively. - Changed the constructor of the StyleZoomFollowController controller. Removed the
StyleZoomFollowController.setAnimationDurationmethod. - Changed the constructor of the TiltFollowController controller. Removed
TiltFollowController.setTiltandTiltFollowController.setAnimationDurationmethods. - Replaced parameters of the FollowController.setThresholds with the typed ones.
- Removed the
FollowControllerClockclass. Changed the type of the FollowController.setClock method parameter to timestamp. - Removed
TransitionType. The MyLocationControlModel constructor does not taketransitionTypenow. Removed theCameraBehaviour.transitionTypefield. Removed thetransitionTypeparameter from the CameraBehaviour constructor. - Removed
MyLocationDirectionBehaviour. The MyLocationMapObjectSource constructor of a geolocation source does not takedirectionBehaviournow. Removed theMyLocationMapObjectSource.setDirectionBehaviourmethod.
- Removed
-
Removed the
BaseCamera.styleZoomToTiltRelationfield. -
Renamed the
MagneticHeadingProviderclass toHeadingProvider. -
Updated the LocaleManager.overrideLocales method to take a list of structures
Localewith separatelanguageandregionfields. -
Removed PackageManager and Package from the SDK Map build. The product size has reduced.
-
Removed
lightThemeanddarkThemefields from MapOptions. To set the theme, use the MapTheme class in MapOptions.setTheme and MapView.setTheme methods.
Additionally for Full versionβ
- Updated Voice.playWelcome to return Future, which becomes ready when sample playing is finished.
- Removed the
RoadSubtype.STAIRWAYfield. Instead, added RoadSubtype.STAIRWAY_UP and RoadSubtype.STAIRWAY_DOWN fields for using stairways with explicit direction. - Removed the
NavigationFollowController.mapTiltControllerfield. - Enabled throwing an exception when attempting to start the navigator in the guidance or simulation mode with a public transport route.
- Disabled cashing of
FreeRoamtiles during navigation. - Updated MyLocationMapObjectSource for the navigator to be installed inside NavigationView.