Release notes
10.2.0 (2024-03-07)
🌟 Features and improvements
CircleOptions.dashedStrokeOptions
andCircle.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 fromRoadEventMapObject.id
.calculateClosestPoint
function for obtaining the closes point on the map relative to the given point.
🛠 Bug fixes
- Fixes performance issues of
layedId
defined inMapObjectManager
: 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 asdeprecated
and 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
fiasCode
field (the FIAS code of the street) toDirectoryObject.address.components
inAddressComponent.streetAddress
andAddressComponent.number
structures.
Migration from versions 7.x to 10.х
For all types of Mobile SDK:
-
Styles must be downloaded again.
-
Changed the process of working with
FollowController
:- Removed
createRawMyLocationController
andcreateSmoothMyLocationController
methods. Added theMyLocationController
constructor for creating controllers of geolocation marker movements. - Removed
FollowBearing.SATELLITE
andFollowBearing.MAGNETIC
values because now you do not need to specify the direction source. Added theFollowBearing.ON
value for enabling the following mode (the source is selected automatically). - Removed the
FollowPosition.tilt
field. Now you need to enable tilt following separately. Added a newtilt
parameter to theCameraBehaviour
constructor for tilt following. Added a newCameraBehaviour
constructor with atilt
parameter to enable following only the tilt. - Removed
FollowValue.SATELLITE_BEARING
,FollowValue.MAGNETIC_BEARING
, andFollowValue.ACCURACY
values. Instead, added theFollowValue.bearing
value with automatic selection of the source. - Removed
satelliteBearing
,magneticBearing
, andaccuracy
methods from theCustomFollowController
interface. Added theCustomFollowController.bearing
method instead. - Removed
setClock
,satelliteBearing
,magneticBearing
, andaccuracy
methods fromFollowController
. AddedonAddedToMap
,onRemovedFromMap
, andbearing
methods instead. - Removed the
FollowController.nextTimestampChannel
channel. AddedFollowController.changedChannel
instead. - Changed the signature of the
FollowController.updateValues
method. - Removed the
PlatformLocationFollowController
controller. Instead, addedBearingFollowController
andCoordinatesFollowController
controllers for following the map direction and map position coordinates respectively. - Changed the constructor of the
StyleZoomFollowController
controller. Removed theStyleZoomFollowController.setAnimationDuration
method. - Changed the constructor of the
TiltFollowController
controller. RemovedTiltFollowController.setTilt
andTiltFollowController.setAnimationDuration
methods. - Replaced parameters of the
FollowController.setThresholds
with the typed ones. - Removed the
FollowControllerClock
class. Changed the type of theFollowController.setClock
method parameter to timestamp. - Removed
TransitionType
. TheMyLocationControlModel
constructor does not taketransitionType
now. Removed theCameraBehaviour.transitionType
field. Removed thetransitionType
parameter from theCameraBehaviour
constructor. - Removed
MyLocationDirectionBehaviour
. TheMyLocationMapObjectSource
constructor of a geolocation source does not takedirectionBehaviour
now. Removed theMyLocationMapObjectSource.setDirectionBehaviour
method.
- Removed
-
Removed the
BaseCamera.styleZoomToTiltRelation
field. -
Renamed the
MagneticHeadingProvider
class toHeadingProvider
. -
Updated the
LocaleManager.overrideLocales
method to take a list of structuresLocale
with separatelanguage
andregion
fields. -
Removed
PackageManager
andPackage
from the SDK Map build. The product size has reduced. -
Removed
lightTheme
anddarkTheme
fields fromMapOptions
. To set the theme, use theMapTheme
class inMapOptions.setTheme
andMapView.setTheme
methods.
Additionally for the full version:
- Updated
Voice.playWelcome
to returnFuture
, which becomes ready when sample playing is finished. - Removed the
RoadSubtype.STAIRWAY
field. Instead, addedRoadSubtype.STAIRWAY_UP
andRoadSubtype.STAIRWAY_DOWN
fields for using stairways with explicit direction. - Removed the
NavigationFollowController.mapTiltController
field. - Enabled throwing an exception when attempting to start the navigator in the guidance or simulation mode with a public transport route.
- Disabled cashing of
FreeRoam
tiles during navigation. - Updated
MyLocationMapObjectSource
for the navigator to be installed insideNavigationView
.
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 theMyLocationMapObjectSource
and edit a corresponding layer in styles. - Added the
BaseCamera.changePosition
method for changing only certain parameters of camera position. The method takes a newCameraPositionChange
structure. - Added the
Camera.move
method for launching animated map movement with a possibility to reset tilt following. - Added the
styleZoomToTiltRelation
parameter forcalcPosition
andzoomOutToFit
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 theHttpClient
interface. - Added
MarkerOptions.iconAnimationMode
andMarker.iconAnimationMode
to enable setting animation modes in markers. The mode can be normal or looped. - Added
SearchResult.actionWidgets
andSearchResult.mainWidgets
for dynamic filtering of the obtained search results. Added theWidget
class that works as a widget for filtering search results. - Added
locales
andsystemLocales
methods and corresponding channels toLocaleManager
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
error
field toPackageInfo
: 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
createRawMyLocationController
andcreateSmoothMyLocationController
methods. Added theMyLocationController
constructor for creating controllers of geolocation marker movements. - Removed
FollowBearing.SATELLITE
andFollowBearing.MAGNETIC
values because now you do not need to specify the direction source. Added theFollowBearing.ON
value for enabling the following mode (the source is selected automatically). - Removed the
FollowPosition.tilt
field. Now you need to enable tilt following separately. Added a newtilt
parameter to theCameraBehaviour
constructor for tilt following. Added a newCameraBehaviour
constructor with atilt
parameter to enable following only the tilt. - Removed
FollowValue.SATELLITE_BEARING
,FollowValue.MAGNETIC_BEARING
, andFollowValue.ACCURACY
values. Instead, added theFollowValue.bearing
value with automatic selection of the source. - Removed
satelliteBearing
,magneticBearing
, andaccuracy
methods from theCustomFollowController
interface. Added theCustomFollowController.bearing
method instead. - Removed
setClock
,satelliteBearing
,magneticBearing
, andaccuracy
methods fromFollowController
. AddedonAddedToMap
,onRemovedFromMap
, andbearing
methods instead. - Removed the
FollowController.nextTimestampChannel
channel. AddedFollowController.changedChannel
instead. - Changed the signature of the
FollowController.updateValues
method. - Removed the
PlatformLocationFollowController
controller. Instead, addedBearingFollowController
andCoordinatesFollowController
controllers for following the map direction and map position coordinates respectively. - Changed the constructor of the
StyleZoomFollowController
controller. Removed theStyleZoomFollowController.setAnimationDuration
method. - Changed the constructor of the
TiltFollowController
controller. RemovedTiltFollowController.setTilt
andTiltFollowController.setAnimationDuration
methods. - Replaced parameters of the
FollowController.setThresholds
with the typed ones. - Removed the
FollowControllerClock
class. Changed the type of theFollowController.setClock
method parameter to timestamp. - Removed
TransitionType
. TheMyLocationControlModel
constructor does not taketransitionType
now. Removed theCameraBehaviour.transitionType
field. Removed thetransitionType
parameter from theCameraBehaviour
constructor. - Removed
MyLocationDirectionBehaviour
. TheMyLocationMapObjectSource
constructor of a geolocation source does not takedirectionBehaviour
now. Removed theMyLocationMapObjectSource.setDirectionBehaviour
method.
- Removed
-
Removed the
BaseCamera.styleZoomToTiltRelation
field. -
Renamed the
MagneticHeadingProvider
class toHeadingProvider
. -
Updated the
LocaleManager.overrideLocales
method to take a list of structuresLocale
with separatelanguage
andregion
fields. -
Removed
PackageManager
andPackage
from the SDK Map build. The product size has reduced. -
Updated
Voice.playWelcome
to returnFuture
, which becomes ready when sample playing is finished. -
Removed the
RoadSubtype.STAIRWAY
field. Instead, addedRoadSubtype.STAIRWAY_UP
andRoadSubtype.STAIRWAY_DOWN
fields for using stairways with explicit direction. -
Removed the
NavigationFollowController.mapTiltController
field. -
Enabled throwing an exception when attempting to start the navigator in the guidance or simulation mode with a public transport route.
-
Disabled cashing of
FreeRoam
tiles during navigation. -
Updated
MyLocationMapObjectSource
for the navigator to be installed insideNavigationView
. -
Removed
lightTheme
anddarkTheme
fields fromMapOptions
. To set the theme, use theMapTheme
class inMapOptions.setTheme
andMapView.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 (loaded
value ofMap.dataLoadingState
) is considered. -
Fixed clustering via
MapObjectManager.withClustering
that worked incorrectly with fractional values ofminZoom
andmaxZoom
. -
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
FreeRoam
tiles 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.
7.4.0 (2023-11-15)
🌟 Features and improvements
- Added
MarkerOptions.iconAnimationMode
andMarker.iconAnimationMode
to enable setting animation modes in markers. The mode can be normal or looped. - Added the
platformHttpClient
parameter toDGis.initialize
to set a custom implementation of a network client. To override the network client, create an implementation of theHttpClient
interface.
🛠 Bug fixes
- Fixed behavior of the
SimpleClusterObject.setIcon
method during the first call. - Fixed clustering via
MapObjectManager.withClustering
that worked incorrectly with fractional values ofminZoom
andmaxZoom
. - Updated the company logo in the copyright and map snapshots.
- Fixed the
NavigationView
behavior to display only the remaining part of the route when requested to display the full route. - Disabled cashing of
FreeRoam
tiles during navigation by default. This is done to reduce the number of backend requests.
7.3.1 (2023-08-16)
🛠 Bug fixes
- When forming a query to the directory via
SearchQueryBuilder
, the first value from theLocaleManager.locales
method is always taken to determine the locale, if the locale could not be determined by the search area.
7.3.0 (2023-08-07)
🛠 Bug fixes
- When creating a query in the directory using the
SearchQueryBuilder
, the current user's geolocation is no longer used to determine the locale. Instead, the first value from theLocaleManager.locales
method is taken if an area for searching is not explicitly specified in theSearchQueryBuilder
. - Fixed an error that occurred when accessing fields of
SimpleClusterObject
while forming a cluster in the implementation of theSimpleClusterRenderer.renderCluster
method.
7.2.1 (2023-07-31)
🌟 Features and improvements
- Added
SearchQueryBuilder.fromRubricIds
andSearchQueryBuilder.fromQueryTextAndRubricIds
methods for creating search queries with filtering by rubric identifiers. - Added the
DirectoryObject.tradeLicense
field with information about the organization's license.
7.1.0 (2023-07-20)
🛠 Bug fixes
- Enabled support for the directory to work with the new key format.
- Fixed a crash when changing GPS availability using
DefaultLocationSource
. - Corrected the calculation of remaining working time for organizations in
Directory.workStatus
during offline search. - The
TUGC
control in theFreeRoam
mode is only available when adding aRoadEventSource
to the map.
5.4.0 (2023-07-20)
🛠 Bug fixes
- Enabled support for the directory to work with the new key format.
5.3.1 (2023-06-27)
🛠 Bug fixes
- Fixed a crash when changing GPS availability using
DefaultLocationSource
.
5.3.0 (2023-06-19)
🌟 Features and improvements
- Enabled specifying excluded areas via
ExcludedArea
when searching for routes.
🛠 Bug fixes
- Fixed the issue potentially causing program crashes when a marker is added to the map with a caption using
Marker
.
Migration from versions 5.x to 7.x
For all types of Mobile SDK:
- Styles must be downloaded again.
- Removed the
DgisSource.createOnlineDgisSource
andDgisSource.createOfflineDgisSource
methods. UseDgisSource.createDgisSource
with the additionalDgisSourceWorkingMode
parameter to set the map working mode. Four modes are available now:ONLINE
,OFFLINE
,HYBRID_ONLINE_FIRST
, andHYBRID_OFFLINE_FIRST
. - The
FollowController
now returnsStyleZoom
instead ofZoom
. - Renamed
FollowValue.ZOOM
toFollowValue.STYLE_ZOOM
. - Renamed
ZoomFollowController
toStyleZoomFollowController
. - Renamed
ZoomToTiltRelation
toStyleZoomToTiltRelation
. - Renamed
SpeedRangeToZoom
toSpeedRangeToStyleZoom
. - The
Projection.screenToMap
method now returns a null value instead of exception if a point is located outside the map. - Removed the
BaseCamera.setPadding
andBaseCamera.setPositionPoint
methods and theCameraPositionPointChangeBehaviour
enum. Now theBaseCamera.padding
andBaseCamera.positionPoint
fields are setters. - Removed the
Camera.animatedMoveStarted
andCamera.animatedMoveFinished
methods. Use theCamera.stateChannel
channel instead. - Renamed the
IndoorControlModel.levelNames
andIndoorControlModel.activeLevelIndex
channels toIndoorControlModel.levelNamesChannel
andIndoorControlModel.activeLevelIndexChannel
respectively. Removed theIndoorControlModel.onLevelClicked
method. Renamed theIndoorControlModel.isMarkedLevel
method toIndoorControlModel.isLevelMarked
.
Additionally, for the full version:
- Changed titles in the
ZoomFollowSettings
to better reflect their purpose. - Removed the
Model.applyBetterRoute
method. Instead, added theModel.betterRouteResponse
method and theBetterRouteResponse
enum to work with alternative routes. - Removed the
State.FREE_ROAM
value. To determine if the navigator is in the Free Roam mode, you need to check if theRouteInfo.routeBuildOptions
value is empty.
7.0.0 (2023-06-16)
🌟 Features and improvements
- Enabled adding Lottie animation to a marker using
Marker.icon
. Added theimageFromLottieJSON
method. TheimageFromAsset
method now supports JSON files with Lottie animation. - Added the
dynamicFilters
field toSearchResult
: dynamic filters that can be additionally applied to search results. - Added the
dynamic
field toDirectoryFilter
to handle dynamic filters. - Added the
BaseCamera.maxTiltRestriction
method to define and obtain the function of dependence of the maximum camera tilt angle on the style zoom level. - Enabled creating the
MapObjectManager
with generalization of objects viaMapObjectManager.withGeneralization
. - Added the
Projection.screenToMapClipped
method that returns the map point nearest to the projection of the specified screen point. - In the navigator mode, alternative routes are now displayed and can be suggested as a better route. The
Model.betterRouteChannel
is a channel for notifications about alternative routes appearing. TheModel.betterRouteResponse
is a method for confirming an alternative route. Routes are configured withNavigationManager.alternativeRoutesProviderSettings
. - Added the
Voice.playWelcome
method to play a voice sample in the navigator. - Added more types to
RoutePointKind
for identifying point objects on a route. - Enabled specifying excluded areas via
ExcludedArea
when searching for routes.
❗️ Breaking changes and backward compatibility
- Removed the
DgisSource.createOnlineDgisSource
andDgisSource.createOfflineDgisSource
methods. UseDgisSource.createDgisSource
with the additionalDgisSourceWorkingMode
parameter to set the map working mode. Four modes are available now:ONLINE
,OFFLINE
,HYBRID_ONLINE_FIRST
, andHYBRID_OFFLINE_FIRST
. - The
FollowController
now returnsStyleZoom
instead ofZoom
. - Renamed
FollowValue.ZOOM
toFollowValue.STYLE_ZOOM
. - Renamed
ZoomFollowController
toStyleZoomFollowController
. - Renamed
ZoomToTiltRelation
toStyleZoomToTiltRelation
. - Renamed
SpeedRangeToZoom
toSpeedRangeToStyleZoom
. - The
Projection.screenToMap
method now returns a null value instead of exception if a point is located outside the map. - Removed the
BaseCamera.setPadding
andBaseCamera.setPositionPoint
methods and theCameraPositionPointChangeBehaviour
enum. Now theBaseCamera.padding
andBaseCamera.positionPoint
field are setters. - Removed the
Camera.animatedMoveStarted
andCamera.animatedMoveFinished
methods. Use theCamera.stateChannel
channel instead. - Renamed the
IndoorControlModel.levelNames
andIndoorControlModel.activeLevelIndex
channels toIndoorControlModel.levelNamesChannel
andIndoorControlModel.activeLevelIndexChannel
respectively. Removed theIndoorControlModel.onLevelClicked
method. Renamed theIndoorControlModel.isMarkedLevel
method toIndoorControlModel.isLevelMarked
. - Changed titles in the
ZoomFollowSettings
to better reflect their purpose. - Removed the
Model.applyBetterRoute
method. Instead, added theModel.betterRouteResponse
method and theBetterRouteResponse
enum to work with alternative routes. - Removed the
State.FREE_ROAM
value. To determine if the navigator is in the Free Roam mode, you need to check if theRouteInfo.routeBuildOptions
value is empty.
🛠 Bug fixes
- Decreased the size of the full build by reducing the dependence of the offline directory on other modules.
- Fixed memory leaks during the destruction of a map with active camera flyover.
- Optimized the usage of a single
DgisSource
data source added to two or moreMap
objects. - Fixed the
Map.dataLoadingStateChannel
channel performance so that it now considers any interactions with a map (for example, adding objects, changing themes, adding data sources). - If a camera position point is located closer to the bottom of the screen, the value of the maximum camera tilt angle can now be decreased.
- In the navigation mode, a route is displayed on a map only after a position appears on the route.
- Fixed returning to the tracking mode during the navigator default operation mode.
🗺 Map style updates
- Added support for a
Bus + No Entry
icon in lane callouts. - Set gradient colors for an inactive route line.
5.2.2 (2023-04-26)
🛠 Bug fixes
- Fixed issues causing program crashes while the key specifies restrictions for regions that do not have offline data.
5.2.1 (2023-03-27)
🛠 Bug fixes
- Fixed issues causing program crashes while the map is rotating.
- Fixed issues causing program crashes when markers with SVG images appear with animation.
5.2.0 (2023-03-16)
🌟 Features and improvements
- Enabled the
DgisSource.setHighlighted
method to take building entrance IDs to add/remove highlight.
🛠 Bug fixes
- Fixed the representation of markers with SVG images.
🗺 Map style updates
- Changed icon size for layers
Parking lots with unknown price
,Parking for persons with disabilities
,Parking for residents
,Parking for taxi
,Free parking
, andCovered parking
. - For the dark theme, changed the caption color for layers
Airport
,Railway station
,Bus terminal
, andPort
in thePOI icons
catalog. - Changed default parameters of the selected state of objects:
- Fill and outline color for the
Flat buildings
catalog; - Top, wall, and outline color for the
Building 3D
catalog; - Icons for the following layers:
Entrances, under buildings
,Entrances, over buildings
,Small gates
,Boom gates
,Parking lots with unknown price
,Parking for persons with disabilities
,Parking for residents
,Parking for taxi
,Free parking
, andCovered parking
. - Icons for the following catalogs:
Sights
(except for thePark
layer in dark theme),POI icons
(light theme only),Transport landmarks
(light theme only), andPublic transport stops icons
(except forRailway station point
andStop point
layers). - Icon size for the following catalogs:
Parking lots bubbles
(Paid parking
,Parking lots with unknown price
,Parking for residents
,Parking for persons with disabilities
,Parking for taxi
,Free parking
layers),POI icons
(dark theme only),Transport landmarks
(dark theme only),Sights
(only for thePark
layer in dark theme); - Icons and caption color for
Metro stations icons
(except forMCD 1
andMCD 2
layers) andMetro exits icons
(except forMCD 1
andMCD 2
layers) catalogs; - Icon size and caption color for
MCD 1
andMCD 2
layers inMetro stations icons
andMetro exits icons
catalogs; - Fill color for the
Roads
catalog (except forIntercity, background
andFederal, background
layers in the light theme); - Line width for the
Roads
catalog in the light theme (except forWalkways
,Intercity, background
, andFederal, background
layers).
- Fill and outline color for the
- Added a new
Entrances, arrows
layer with selected state only.
5.1.2 (2023-02-15)
🛠 Bug fixes
- Fixed issues causing program crashes when a
Context
object is removed. - Fixed issues causing program crashes when caching of map tiles fails.
5.1.0 (2023-01-11)
🌟 Features and improvements
- Added new
size
parameter (map size) to thecalcPosition
method.
🛠 Bug fixes
- Fixed issues with the
HttpOptions.timeout
setting, which previously did not change the timeout ofOnlineSearchManager
/SmartSearchManager
requests. - Disabled
OpenStreetMap
appearing in the copyright. - Fixed navigation failure if the data package misses voice instructions.
- Fixed locale definition when creating requests via
OnlineSearchManager
.
5.0.1 (2022-12-08)
🛠 Bug fixes
- Fixed issues that could result in a camera (in a rest state) flying to the current location after the navigation is finished.
5.0.0 (2022-12-06)
🌟 Features and improvements
- Added pedestrian navigation inside buildings, which turns on when a created route takes floors into account (using the
PedestrianRouteSearchOptions.useIndoor
flag). When a user enters a building, the navigator UI displays a control panel with floor switches showing which floors the route passes. The bottom panel displays the floor number of the destination point. Added theIndoorDetector
property to theNavigationManager
class to define user location indoors in the navigation mode. - Enabled searching and displaying pedestrian routes inside building with floor plans.
- The
PedestrianRouteSearchOptions.useIndoor
flag must be enabled during search (enabled by default). - The indoor route is displayed in dotted lines on an active floor. If
RouteMapObjectDisplayFlag.inactiveFloors
is enabled, the route is displayed on all floors. - In the transitions between floors icons with instructions are displayed, controlled by
RouteMapObjectDisplayFlag.indoorInstructions
. - To get information about floors that the rout passes, use
Route.levels
.
- The
- Added a new
BaseCamera
class to store primary camera settings. TheCamera
class is a child ofBaseCamera
. Additionally, added aclone
method to theBase Camera
class to copy cameras. - Added overloading for
zoomOutToFit
andcalcPosition
methods that takes an array ofSimpleMapObject
map objects instead of geometries. - Added
TrafficRouter.findBriefRouteInfos
method for quickly getting basic information about routes (travel time, length, etc.) without building them. - Added route search for scooters. To enable it, define
ScooterRouteSearchOptions
forTrafficRouter.findRoute
. - Added information about altitude levels on the route:
Route.altitudes
. - Added information about restricted areas on the route:
Route.truckRestrictedAreas
,Route.vehicleRestrictedAreas
. - Enabled cutting out the passed distance from both ends of the route:
RouteMapObject.passedDistanceVisualization
. - Added new
RouteMapObject.replaceAllObjects
method to create several displayed routes simultaneously. - Enabled configuration of bubble display on the route:
RouteMapObject.calloutLabelFlags
,RouteMapObject.calloutLabelDisplayMode
. - Added
RouteMapObject.permanentDisplayFlags
to disable hiding of certain elements of a route when it cuts out. - Added a new
NavigationFollowController
class to control how a map follows the geolocation marker in the navigator. - Enabled getting a route bubble using
Map.getRenderedObject
. The returned object is of typeRouteInfoCalloutMapObject
. - Improved
SmartSearchManager
performance: any exceptions inOnlineSearchManager
cause switching toOfflineSearchManager
. - Enabled defining IDs for request in WebAPI for On-premise keys.
- Updated the logo in the map copyright.
- Added a new
lastPosition
property inDefaultLocationSource
showing the last known user location. - Added
MapView.addObjectTappedCallback
,MapView.addObjectLongTouchCallback
,MapView.removeObjectTappedCallback
, andMapView.removeLongTouchCallback
methods to add or removeMapObjectTappedCallback
(processors of taps and long presses on a map).
❗️ Breaking changes and backward compatibility
- Updated method signatures:
zoomOutToFit
now takes only camera and geometry;calcPosition
now takes new parameters (screen area, tilt, bearing) so that you do not need to preset a camera to calculate position.
- Removed the redundant
RoutePosition
class. UseRoutePoint
instead. - Removed
Model.cameraProgressChannel
. Use theCameraNotifier
instead. - Changed the type of
Traffic.durations
fromSecondsRouteLongAttribute
toMillisecondsRouteAttribute
and increased value precision. - Changed the type of
Route.obstacles
toObstacleInfoRouteAttribute
and added additional information. - Enabled the
ZoomFollowController
builder to take theMap
parameter. - Removed the
showOsmCopyright
method from theMapView
class.
🛠 Bug fixes
- Increased precision of displaying the remaining travel time in the navigator.
- Changed the behavior of
OfflineSearchManager
: in case of empty result, it returns an empry list without raising and exception. - Improved correctness of calculating points of difference between the primary route and a better one.
- Fixes locale definition in search queries. Now the region is defined based on the area of interest and the current user location.
- Enabled verification of adding customer markers with empty images.
- Fixed issues that caused a route selection panel and a better route disappear after the time out.
🗺 Map style updates
- Added the logic of displaying pedestrian routes (
Pedestrian route line
group) and route objects (Point A, Point B, Route joints, Intermediate route points in theDynamic objects
group) on floors. - Added the
Indoor instructions
group with navigation instructions inside buildings. - Hid the
Point A
layer in the navigation mode. - Disabled display of
Region border
andRegions
layers. - Defined gradient colors of an inactive route line.
- Fixed the selector of paid parkings.
- Moved the
Intermediate route points
,Route joints
,Point A
, andPoint B
layers after theLocation precision radius
layer.
Migration from versions 4.x to 5.x
For all types of Mobile SDK:
- Updated method signatures:
zoomOutToFit
now takes only camera and geometry;calcPosition
now takes new parameters (screen area, tilt, bearing) so that you do not need to preset a camera to calculate the position.
- Enabled the
ZoomFollowController
builder to take theMap
parameter. - Removed the
showOsmCopyright
method from theMapView
class.
Additionally, for the full version:
- Removed the redundant
RoutePosition
class. UseRoutePoint
instead. - Removed
Model.cameraProgressChannel
. Use theCameraNotifier
instead. - Changed the type of
Traffic.durations
fromSecondsRouteLongAttribute
toMillisecondsRouteAttribute
and increased value precision. - Changed the type of
Route.obstacles
toObstacleInfoRouteAttribute
and added additional information.