Release Notes
13.0.0 (2025-11-10)
🌟 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.searchBySuggest() - 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.installWithFallback() - 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
-
For Android, updated the minimum supported version (API Level) from 21 to 23.
-
For iOS, updated the minimum supported iOS version to 16.0.
-
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?to Color?. -
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
rampDown,rampUp,smoothRampDown, andsmoothRampUpvalues for ramps to RoadSubtype. -
Added new values of positions and landmarks to CarInstructionCrossroadLandmark.
-
Added the
deepGreenandorangecolor 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
betterRoute("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.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
- Traffic data via TrafficSource is no longer requested or updated while the application is running in the background.
- Added a linker option to set the memory page size to 16 KB when building the Android library.
- Fixed visual artifacts in MapWidget that occurred when the device configuration was changing.
- Fixed animations in SpeedLimitWidget.
- Fixed the display of TrafficLineWidget.
12.7.2 (2025-07-07)
🌟 Features and improvements
- DirectoryObject.routeInfos - information about public transport routes in a directory object.
- DirectoryObject.publicTransportScheduleInfo - a method for obtaining information about schedules of public transport platforms and route directions.
- DirectoryObject.platformIds - information about identifiers of public transport platforms in a directory object.
- EntranceInfo.entranceNumber - entrance number of the public transport station.
- ItemMarkerInfo.tradeLicense - information about the organization trade license in a marker.
- SearchQueryBuilder.setSearchNearby - a method forcing the search engine to search for objects near the user.
- SuggestQueryBuilder.setSearchNearby - a method forcing the search engine to search for objects near the user.
- SearchResult.nearbyRequested - flag in search results indicating that nearby objects were requested during the search.
- SearchWidgetColorScheme - a class for specifying the color scheme for the DgisSearchWidget class.
- Enabled specifying builders for creating a SearchQuery and a SuggestQuery to the DgisSearchWidget class.
- 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.
🛠 Bug fixes
- Improved map performance for Android and iOS: the map can now run with 120 FPS frame rate.
🗺 Map style updates
- Export styles again to apply the fixes of displaying immersive roads and fog in the navigator.
12.6.3 (2025-05-15)
🛠 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.1 (2025-04-21)
🌟 Features and improvements
- The default geolocation source for Android 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 and
ru.dgis.sdk.positioning.RadarSettingsProviderduring the Android plugin registration. For details, see the Using the Radar API section. - File.fromAsset - a method for loading a file from the asset directory of the application.
- 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.4 (2025-02-20)
🌟 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.1 (2025-02-06)
🌟 Features and improvements
- 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 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.
- Improved displaying of NavigationLayoutWidget in landscape orientation.
🗺 Map style updates
- Fixed the priority of processing clicks between the geolocation marker and buildings on the map.
12.3.0 (2024-12-20)
🌟 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 ModelLoader - 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.
- FreeRoamSelector and NavigationManager.freeRoamSelector - a feature to enable and disable switching the navigator to
FreeRoammode if the route rebuilds too long. - RouteRebuilder and NavigationManager.freeRoamSelector - 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.
- NavigationLayoutWidget - general UI control for displaying the navigator interface.
🛠 Bug fixes
- Optimized the map display on iOS and removed blinking when tracking the current location on the navigator.
- 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.0 (2024-11-18)
🌟 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.
- Navigator UI elements: MyLocationWidget, TrafficWidget, and ZoomWidget.
🛠 Bug fixes
- Optimized the display of the map on iOS so that frequent overflies and changes of the MapWidget size do not cause blinks.
- Fixed IndoorWidget display issues.
Copyrightin the MapWidget now considers safe zones of the screen.- 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 the MapObjectManager.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.
12.1.4 (2024-10-31)
🛠 Bug fixes
- Fixed an issue where the map might not render on some Android devices.
12.1.3 (2024-10-25)
🛠 Bug fixes
- Fixed Flutter SDK operation on devices with 32-bit architecture.
- Fixed an issue where the map might not render on Android if the
MapWidgetis added to the app home screen.
12.1.0 (2024-09-27)
First release of Flutter SDK, which allows you to add a map to your application, display it in your layout, calculate routes, get information about map objects, and so on.