Release notes
Important: API versions described below are deprecated. Use versions 10.0 or higher. See instructions on How to migrate from lower versions.
7.4.1 (2023-12-29)
🛠 Bug fixes
- Fixed map rendering. Previously, map could freeze when a modal window is displayed above
MapView
.
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.
🛠 Bug fixes
- Optimized and fixed map display for the latest iOS versions.
- 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 the retrieval of the map snapshot using the
IMapSnapshotter.makeImage
method when transitioning the application from the background to the foreground. - 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.
- Fixed the retrieval of the map snapshot using the
IMapSnapshotter.makeImage
method when transitioning the application from the background to the foreground.
5.3.0 (2023-06-19)
🌟 Features and improvements
- Enabled specifying excluded areas via
ExcludedArea
when searching for routes. - Added the display of the target branch name during the Indoor navigation to
INavigationView
.
🛠 Bug fixes
- Fixed the issue that appeared after double-tapping a map and changing the scale sharply.
- Fixed the issue potentially causing program crashes when a marker is added to the map with a caption using
Marker
. - In
INavigationView
, fixed hiding map controls if a user is not interacting with the map for 10 seconds. - In
INavigationView
, fixed the button to add TUGC to the map in the ETA panel.
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
,hybridOnlineFirst
, andhybridOfflineFirst
. - The
FollowController
now returnsStyleZoom
instead ofZoom
. - Renamed
FollowValue.zoom
toFollowValue.styleZoom
. - 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
method and theCameraPositionPointChangeBehaviour
enum. Now theBaseCamera.padding
field is a setter. - Removed the
Camera.animatedMoveStarted
andCamera.animatedMoveFinished
methods. Use theCamera.stateChannel
channel instead. - Labeled the
SearchManager.createOnlineManager
,SearchManager.createOfflineManager
, andSearchManager.createSmartManager
methods asthrows
. - Removed the
BaseCamera.position
andBaseCamera.zoomRestrictions
setters. Labeled theBaseCamera.setPosition
,BaseCamera.setZoomRestrictions
, andBaseCamera.setPositionPoint
methods asthrows
. - Removed the
Map.fontIconSizeMultiplier
setter. Labeled theMap.setFontIconSizeMultiplier
method asthrows
. - Labeled the
NavigationManager
builder and theNavigationManager.start
andNavigationManager.startSimulation
methods asthrows
. - Labeled the
Container.context
getter and all otherContainer
factory-methods asthrows
.
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.freeRoam
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 a method for gettingImage
with Lottie data toIImageFactory
. - Added the
IndoorControlModel
UI model to implement theIndoorControl
for floor plans. - Added the
dynamicFilters
field to theSearchResult
: dynamic filters that can be additionally applied to search results. - Added the
dynamic
field to theDirectoryFilter
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.
Model.betterRouteChannel
is a channel for notifications about alternative routes appearing.Model.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. - Added the display of the target branch name during the Indoor navigation to
INavigationView
.
❗️ 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
,hybridOnlineFirst
, andhybridOfflineFirst
. - The
FollowController
now returnsStyleZoom
instead ofZoom
. - Renamed
FollowValue.zoom
toFollowValue.styleZoom
. - 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
method and theCameraPositionPointChangeBehaviour
enum. Now theBaseCamera.padding
field is a setter. - Removed the
Camera.animatedMoveStarted
andCamera.animatedMoveFinished
methods. Use theCamera.stateChannel
channel instead. - Labeled the
SearchManager.createOnlineManager
,SearchManager.createOfflineManager
, andSearchManager.createSmartManager
methods asthrows
. - Removed the
BaseCamera.position
andBaseCamera.zoomRestrictions
setters. Labeled theBaseCamera.setPosition
,BaseCamera.setZoomRestrictions
, andBaseCamera.setPositionPoint
methods asthrows
. - Removed the
Map.fontIconSizeMultiplier
setter. Labeled theMap.setFontIconSizeMultiplier
method asthrows
. - Labeled the
NavigationManager
builder and theNavigationManager.start
andNavigationManager.startSimulation
methods asthrows
. - Labeled the
Container.context
getter and all otherContainer
factory-methods asthrows
. - 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.freeRoam
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 flying.
- 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.
- In
INavigationView
, fixed hiding map controls if a user is not interacting with the map for 10 seconds. - In
INavigationView
, fixed the button to add TUGC to the map in the ETA panel.
🗺 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.2 (2022-12-26)
🛠 Bug fixes
- Fixed issues when the
Map
object was not removed after the removal ofMapView
. - Fixed the ETA panel display in
NavigationView
during the transition to theIndoor
mode.
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
- Stopped using OpenGL as a graphic API due to its performance issues on devices with M1 or newer processors. Replaced it with Apple Metal.
- 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
. - Added the
pinchScalingCenter
parameter toMapGestureViewOptions
to define the point on the screen about which the map scales upon the scaling gesture. - Enabled defining IDs for request in WebAPI for On-premise keys.
- Updated the logo in the map copyright.
- Added the
roadEventCreationEnabled
flag toNavigationViewOptions
to disable control of road events. - Enabled support of PPI on all models of iPhone 14 and iPad.
- Added the
locationService
property toDGis.Container
based on theILocationService
protocol to get 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). - Added the
makeNavigationView
method withINavigationViewControlsFactory
andINavigationMapControlsFactory
parameters toINavigationViewFactory
. This method allows you to redefine controls of the navigator and navigator maps. All controls are public now. - Added
makeNavigationViewControlsFactory
andmakeNavigationMapControlsFactory
methods toINavigationViewFactory
to get navigator control factories and navigator map controls respectively.
❗️ 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
showOsmCopyright
andosmCopyrightAnimationDuration
methods 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. - Changed the camera zoom level of
INavigationView
when the navigator starts. - Fixed the performance of the speed limit control in
INavigationView
. Now the zero limit is not displayed. - Forced the reset of camera settings after the navigation in
INavigationView
in finished. - Improved correctness of calculating points of difference between the primary route and a better one.
- Fixed the performance of
CompassControl
. - 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 position.
- Enabled the
ZoomFollowController
builder to take theMap
parameter. - Removed
showOsmCopyright
andosmCopyrightAnimationDuration
methods 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.
v4.6.1
Release Date: January 11, 2023
🛠 Fixes
- Fixed navigation failure if the data package misses voice instructions.
v4.6.0
Release Date: December 30, 2022
🛠 Fixes
- Fixed issues with the
HttpOptions.timeout
setting, which previously did not change the timeout ofOnlineSearchManager
/SmartSearchManager
requests. - Disabled
OpenStreetMap
appearing in the copyright.
v4.5.0
Release Date: November 16, 2023
🌟 New features
- Improved
SmartSearchManager
- now any exceptions inOnlineSearchManager
switch toOfflineSearchManager
. - In the
MapGestureViewOptions
appeared parameterpinchScalingCenter
to set a point on the screen, relative to which the map is scaled by zoom gesture. - Now it's possible to set identifier for On-Premise key's requests to WebAPI.
🛠 Fixes
- In case of an empty result,
OfflineSearchManager
does not throw an exception, but returns an empty list. - Camera zoom was changed in
NavigationView
on navigator startup, closer to 2GIS main application.
v5.0.0-beta.4
Release Date: November 8, 2023
🌟 New features
- Support for PPI of all iPad models.
- Implemented methods
IMapView.addObjectTappedCallback
,IMapView.addObjectLongPressCallback
,IMapView.removeObjectTappedCallback
,IMapView.removeLongPressCallback
to add and removeMapObjectTappedCallback
- tap and long-press map handlers. - In
MapGestureViewOptions
it's possible to set a point inpinchScalingCenter
, relative to which map scale will be changed.
🛠 Fixes
- More correct calculation of divergence point between main route and better route.
- Fixed the operation of the
CompassControl
compass control. - Fixed locale definition in search queries. The region is now determined through the area of interest or the user's current location.
v5.0.0-beta.3
Release Date: October 31, 2022
🌟 New features
- PPI support for all iPhone 14 models.
- Added
DGis.Container
propertylocationService
- implementation of theILocationService
protocol to get the last known location of the user.
🛠 Fixes
- Fixed an issue where a route would better disappear along with the route selection panel after a timeout.
v4.4.1
Release Date: October 31, 2022
🌟 New features
- PPI support for all iPhone 14 models.
🛠 Fixes
- Fixed an issue where the route would better disappear along with the route selection bar after a timeout.
v2.8.3
Release Date: October 31, 2022
🌟 New Features
- PPI support for all iPhone 14 models.
v5.0.0-beta.2
Release Date: October 13, 2022
🌟 New features
- Updated the 2GIS logo in the copyright on the map.
- The
roadEventCreationEnabled
flag appeared inNavigationViewOptions
to disable the road event controller.
🛠 Fixes
- In
INavigationView
the speed limit controller has been fixed - now zero limit is not displayed.
v4.4.0
Release Date: October 13, 2022
🌟 New features
- Updated the 2GIS logo in the copyright on the map.
v2.8.2
Release Date: October 13, 2022
🌟 New features
- Updated the 2GIS logo in the copywriter on the map.
v5.0.0-beta.1
Release Date: September 29, 2022
🌟 New features
- Dropped OpenGL as graphics API in favor of Apple Metal, due to unstable OpenGL performance on devices with M1 or newer processors.
- Added ability to search and display pedestrian routes in buildings with floor plans.
- When searching,
PedestrianRouteSearchOptions.useIndoor
must be enabled (enabled by default). - The route in the building is displayed dashed on the active floor, and when
RouteMapObjectDisplayFlag.inactiveFloors
is enabled, it is displayed on all floors. - Icons with instructions are displayed on transitions between floors, their visibility is controlled by
RouteMapObjectDisplayFlag.indoorInstructions
. - To get information about the floors the route passes through, use
Route.levels
.
- When searching,
- Added pedestrian navigation in the building (the feature is experimental and will be finalized). Enabled when route is built considering floors (with flag
PedestrianRouteSearchOptions.useIndoor
) when entering the building. Navigator's UI is changed - floor toggle control is displayed with marking which floors the route passes through, destination point's floor number is displayed in the bottom pane. - Added a method of getting basic information about routes (travel time, length, etc.) quickly without constructing them -
TrafficRouter.findBriefRouteInfos
. - Added fare search on scooters. To do this, set
ScooterRouteSearchOptions
inTrafficRouter.findRoute
. - Added information about altitudes on the route -
Route.altitudes
. - Added information about prohibited routes -
Route.truckRestrictedAreas
,Route.vehicleRestrictedAreas
. - Added ability to "eat" route from either end -
RouteMapObject.passedDistanceVisualization
. - Added method for simultaneous setting multiple routes
RouteMapObject.replaceAllObjects
. - Added settings for displaying bubbles on the route
RouteMapObject.calloutLabelFlags
,RouteMapObject.calloutLabelDisplayMode
. - Ability to not hide some elements of the route as it "eats" -
RouteMapObject.permanentDisplayFlags
. - Added class to control map tracking for geoposition marker in navigator -
NavigationFollowController
. - Added ability to get route bubble through
Map.getRenderedObject
, the returned object has typeRouteInfoCalloutMapObject
.
🛠 Fixes
- Increased accuracy of displaying remaining travel time in navigator.
❗️ Changes affecting backward compatibility
- Removed
RoutePosition
, a redundant class, and usedRoutePoint
instead. - Removed
Model.cameraProgressChannel
, you must use classCameraNotifier
instead. Traffic.durations
is now of typeMillisecondsRouteAttribute
instead ofSecondsRouteLongAttribute
and more accurate values.- The
Route.obstacles
now has the typeObstacleInfoRouteAttribute
and contains additional information besides the obstacle type. - The constructor
ZoomFollowController
now takes theMap
parameter.
🗺 Changes in map styles
- Pedestrian route (Pedestrian route line group) and route objects (Point A, Point B, Route joints, Intermediate route points in the Dynamic objects group) have added logic for display on floors.
- Added building navigation instructions - group Indoor instructions.
v4.3.0
Release Date: August 26, 2022
🌟 New features
- Ability to set the font of the marker labels by specifying
TextStyle.fontName
- font name from the style editor. - New value of enum-a
CameraState.followPosition
- camera is in position tracking mode.
🛠 Fixes
- Optimized offline fare search - don't load unnecessary region data.
- Fixed camera jerks during navigation at close maneuvers.
- Fixed wiping of a route when navigation is restarted.
- Fixed the crash when deleting the traffic jam source.
- Fixed display of the navigator's maneuvers when driving on the left side of the road.
- Improved operation of
MyLocationControl
- geo-positioning, switching between three tracking modes, displaying current mode. - Reduced the number of network requests for data on traffic jams when moving the map quickly.
- Timeout errors when downloading the traffic score are not logged as an error.
v4.2.0
Release Date: August 4, 2022
🛠 Fixes
- Fixed an exception in
Map.visibleArea
. - Localization of inscriptions on the map now uses all the languages defined in the system.
- Localization of road event captions.
- Fixed route rebuilding during navigation.
- Changed the default value of the
radius
parameter inMap.getRenderedObjects
.
v4.1.0
Release Date: July 15, 2022
🛠 Fixes
- Fixed flickering of traffic jams when zooming the map.
- Fixed display of stops and connection points on routes.
- Fixed map update when locale is changed.
DirectoryObject.markerPosition.elevation
can now have a non-zero elevation value.- Increased timeout of network fare search queries (the previous one was insufficient for long-distance routes).
- Now it is not necessary to set
deactivation_time
in key if offline features are not used. - Fixed a crash when checking for intersections of geometries using the
Geometry.intersects
method. - Fixed potential crashes when running the map.
❗️ Changes affecting backward compatibility
- The enum value of
RouteMapObjectDisplayFlag.tranportConnectionPoints
has been renamed totransportConnectionPoints
- corrected a typo.
Migration from v2.x
For all types of Mobile SDK:
- You need to contact 2GIS technical support to get a new key for using MobileSDK. It is obligatory to specify the
appId
of the application for which the key will be created. The received key filedgissdk.key
should be added either to the application root or during MobileSDK initialization pass the object of structureApiKeyOptions
specifying the path to the file. - The
APIKeys
structure has been removed. Instead of it inContainer.init
the first parameter must be passed the object of the structureApiKeyOptions
which contains the path to the filedgissdk.key
. The defaultApiKeyOptions.default
object tries to get the file from the root of the application. - Update styles.
- Renamed the
DirectoryObjectId
class toDgisObjectId
. - Removed
serialize
,deserialize
functions forCameraPosition
instead they should use new serialization mechanism -PackedMapState
. - Removed methods
SearchQueryBuilder.setLocation
andSuggestQueryBuilder.setLocation
- the value is automatically taken from the geoposition source. - Removed method
PackedSearchQuery.location
. - Removed
SearchResultMarkerObject
andSearchResultMarkerSource
for generating search result tokens due to lack of ability to dynamically add or remove objects. As an alternative, the user is offered to implement token generation himself or use clustering. - When creating
MyLocationMapObjectSource
by defaultSmoothMyLocationController
is used instead ofRawMyLocationController
.
Additionally for full version:
- Removed lists with route information in
RouteInfo
-cameras
,instructions
,laneSigns
etc. and current item indices -Model.cameraIndexChannel
,Model.instructionIndexChannel
. Instead the information should be obtained directly from the route and the current position, for example, get the nearest camera -Model.route.route.cameras.findNearForward(position)
. - Renamed the route search parameters:
BicycleRouteSearchOptions.avoidUnderpasses
->avoidUnderpassesAndOverpasses
.CarRouteSearchOptions.avoidFerry
->avoidFerries
.TruckRouteSearchOptions actualWeight
,maxPermissibleWeight
->actualMass
,maxPermittedMass
.
- The enum-a
RoadType.road
value is divided into subtypesRoadType.highway
,RoadType.federalRoad
, etc. - The
VoiceSelector.setVoice
method is replaced by thevoice
property. - Removed
Model.durationChannel
,Model.routeDurationChannel
, insteadModel.dynamicRouteInfo.traffic.durations.calculateDuration(routePoint)
. - Changed the set of enum-a
RoadSurface
values. - Removed
Model.navigationActiveChannel
,NavigationManager.uiSettings
, instead a new classActivityTracker
is used to get navigator activity.
v2.8.1
Release Date: July 13, 2022
🛠 Fixes
- Fixed crash when checking for intersecting geometries using the
Geometry.intersects
method. - Fixed potential crashes when running the map.
v4.0.0
**Release Date:**June 17, 2022
🌟 New features
- Hybrid mode of operation.
- Added the ability to download data for map, guidebook and fare finder operation, which will be used in the future when there is no internet connection. The
TerritoryManager
is used to download data about territories and get information about them. - For the map to work in hybrid mode, it is necessary to set a hybrid source in
MapOptions.sources
-[.dgisHybridSource]
. - Hybrid directory search engine -
SearchManager.createSmartManager
(but there are also separatecreateOnlineManager
andcreateOfflineManager
). - The fare search (
TrafficRouter
) is always hybrid - it uses online/offline data depending on its availability. - With
TerritoriesAlongRouteProvider
you can get a list of areas the route passes through.
- Added the ability to download data for map, guidebook and fare finder operation, which will be used in the future when there is no internet connection. The
- Display of floor plans.
- Occurs automatically when the map approaches large buildings (shopping malls, airports, etc.).
- To get information about the floor plans and switch them, serves `IndoorManager'.
- There is a ready-made UI controller for floor management -
IndoorControl
. - Dynamic objects (
SimpleMapObject
) can be placed on a specific floor plan using the parameterlevelId
.
- Display pop-up tooltips with a bar above the navigator's route.
- By default,
RouteMapObjectDisplayFlag.lanesBubbles
is set. - The positions of the cues on the route can be obtained with
RouteMapObject.lanesCalloutPositions
.
- By default,
- Information about events and traffic jams on the route in the navigator -
Model.dynamicRouteInfo
. To set its updating parameters, useNavigationManager.dynamicRouteInfoSettings
. - To set the parameters of the route display in the navigator, use
NavigationManager.routeMapSettings
. - Automatic switch to Free Roam mode when leaving the route.
- Added route search settings -
NavigationManager.betterRouteProviderSettings
. - Added fields with lane sign boundaries -
RouteLaneSign.signStartPoint
,signPoint
,signEndPoint
. - Added "avoid stairs" option on pedestrian routes -
PedestrianRouteSearchOptions.avoidStairways
. - Changed key logic. Now, when initializing MobileSDK, you need to pass the path to the file
dgissdk.key
, which contains information about the key. - New design of the Navigator
NavigationView
UI with all controls. The design coincides with the new navigator of the 2GIS application. - In addition to the updated design of controls in the new navigator:
- The ability to set the color schemes of all the controls has appeared.
- Defining callback function for the trip completion button. If the callback is not set, the button will not be displayed in the bottom pop-up bar.
- By default, the display of lane callouts is enabled.
- Bicycle specific attributes are added for bicycle routes, such as:
Route.badRoads
- whether the road is bad.ExtraInstructionInfo.bicycleCrossroad
- bicycle instructionsBicycleInstructionCrossroad
,BicycleInstructionCrossroadManeuver
,BicycleInstructionCrossroadManeuverDirection
,BicycleInstructionCrossroadLandmark
.
- By default, the
Free roam
caching of tiles in the route mode is enabled. UseFreeRoamSettings.onRoutePrefetchLength
,FreeRoamSettings.onRoutePrefetchRadiusMeters
andFreeRoamSettings.cachePrefetchRadiusMeters
to set caching. - Added flag
TruckRouteSearchOptions.fallbackOnCar
, which allows to search car route when truck route cannot be found. - Processing of clicks on building entrances. Added field
DgisObjectId.entranceId
- entry ID. It is populated for entrances received throughMap.getRenderedObjects
. Support for inputs in the directory will be added in future releases. - The navigator's "thermometer controller" that displays traffic jams on the route is
ThermometerControlView
. - Route overview in the navigator. Enabled by selecting the appropriate action on the Dashboard or by clicking on the `Thermometer.
- Added protocols
IMarkerView
andIMarkerViewFactory
to create UI View markers. You must use theIMarkerViewOverlay
protocol to add these markers to the map. - Exit markers have appeared in the lane callouts.
- Added information about exits to
DirectoryObject
-EntranceInfo
. - Modified
SearchManager.suggest
to display entrances and apartments. - Modified
SearchManager.searchByDirectoryObjectId
andSearchManager.searchById
to search the entryway by ID. - Added ability to customize the display of active and inactive routes through
RouteEditorSource.activeDisplayFlags
andRouteEditorSource.inactiveDisplayFlags
. - Added
RouteMapObjectDisplayFlag.bubbles
flag to control the visibility of callouts on routes. - Added priorities for network requests, so that higher priority data is loaded first.
- Added
Map.dataLoadingStateChannel
to track map loading status.
🛠 Fixes
- Reduced the size of the Mobile SDK map build.
- Free Roam data caching. Caching settings can be configured with
NavigationManager.freeRoamSettings
. - Fixed an issue in which a camera that was voiced once on a route was no longer voiced when passing through it again.
- Fixed search in offline and hybrid modes.
- Optimized traffic jam update.
- Disabled display of floor plans in navigation mode.
- Optimized sending statistics in navigation mode.
- Fixed the situation when
can't load from network
errors appeared in logs while displaying traffic events. - Optimized logic of route re-request.
- Fixed problem with route remaining on the map at the end of a trip.
- Fixed the order of drawing routes.
🗺 Changes in map styles
- Displayed floor plans.
- There are new catalogs with layers: Floor Squares, Organization Squares, Floor Walls, Organization Anchors, Floor Attractions, and Floor Captions.
- All layers in the "3D Houses" catalog as well as the "3D Models" layer have changed the data selection condition.
- It is required to reload the styles from the editor in order for the lane cues to appear.
- The names of the layers have been translated into English.
- Layer "Driveways above houses" became interactive - available for getting through
Map.getRenderedObjects
. - Removed layers "Traffic jams, bypass level [-3...3]".
- Changed line width of "Traffic jams, background", "Traffic jams fill color level [-3..3]".
- Added arrows parameters in "Car route line" folder for layers "Maneuver arrows, large scale, tracking mode", "Maneuver arrows, fine scale, tracking mode".
- The text color, halo color and halo size were changed in "Traffic alerts along the route" and "Traffic alerts along the route, tracking mode" layers for "Small gates", "Stairs up", "End of pedestrian underpass", "Beginning of pedestrian underpass", "Stairs down", "Boom gate", "Speed hump".
- Changes for new navigator: colors/sizes of traffic jams, route, maneuvers, new arrow model.
- Support for placing
SimpleMapObject
objects on floors.
v2.8.0
Release Date: June 9, 2022
🌟 New features
- Property
MapObjectManager.isVisible
- enable/disable displaying of all objects simultaneously.
🛠 Fixes
- Static map content is now loaded with higher priority than dynamic content.
- Fixed potential UI thread blocking for a long time when working with the network.
v4.0.0-beta.2
Release Date: May 25, 2022
🌟 New features
- The
MapObjectManager.isVisible
property - enable/disable display of all objects simultaneously. - Processing of clicks on building entrances. Added field
DgisObjectId.entranceId
- entry ID. It is populated for entrances received throughMap.getRenderedObjects
. Support for inputs in the directory will be added in future releases. - The navigator's "thermometer controller" that displays traffic jams on the route is
ThermometerControlView
. - Route overview in the navigator. Activated by selecting appropriate action on Dashboard or clicking on
ThermometerControlView
.
🛠 Fixes
- Fixed display of traffic jams during tracking.
❗️Changes affecting backward compatibility
- Removed
Model.durationChannel
,Model.routeDurationChannel
, insteadModel.dynamicRouteInfo.traffic.durations.calculateDuration(routePoint)
. - Changed the set of enum-a
RoadSurface
values. - Removed
Model.navigationActiveChannel
,NavigationManager.uiSettings
, instead a new classActivityTracker
is used to get navigator activity.
🗺 Changes in map styles
- Layer names have been translated into English.
- The "Driveways above houses" layer is now interactive - available for retrieval via
Map.getRenderedObjects
. - Removed layers "Traffic circled level [-3..3]".
- Changed line width of "Traffic jams, background", "Traffic jams fill color level [-3..3]".
- Added arrows parameters in "Car route line" folder for layers "Maneuver arrows, large scale, tracking mode", "Maneuver arrows, fine scale, tracking mode".
- The text color, halo color and halo size were changed in "Traffic alerts along the route" and "Traffic alerts along the route, tracking mode" layers for "Small gates", "Stairs up", "End of pedestrian underpass", "Beginning of pedestrian underpass", "Stairs down", "Boom gate", "Speed hump" in the night theme.
v2.7.0
Release Date: May 18, 2022
🌟 New features
- Added ability to set the rendering layer
SimpleObject
when creating theMapObjectManager
. Added parameter -layerId
- ID of the layer of the new typeDynamic Object
. When it is set, objects are placed on this layer, which allows you to set their order relative to other layers. - The situation is now taken into account when
DGis.Container
is not initialized from the main thread.
🛠 Fixes
- Fixed map hangs at high zoom and tilt angle values.
- Fixed an issue where loading the map in hybrid mode would fill everything with a water polygon for a while.
- Fixed an issue where the thickness of the added
Polygon
object would change at different zooms. - Optimized plug updates - now they are cached depending on the style zoom.
v4.0.0-beta.1
Release Date: May 4, 2022
🌟 New features
- Changed the logic of key handling. Now during MobileSDK initialization you have to pass path to
dgissdk.key
file, which contains information about the key. - New UI design for
NavigationView
navigator with all controls. The design coincides with the new navigator of the 2GIS application. - In addition to the updated design of controls in the new navigator:
- The ability to set the color schemes of all the controls has appeared.
- Defining callback function for the trip completion button. If the callback is not set, the button will not be displayed in the bottom pop-up bar.
- By default, the display of lane callouts is enabled.
- Added an option to set the rendering layer
SimpleObject
when creatingMapObjectManager
. Added parameter -layerId
- the ID of the layer of the new typeDynamic Object
. When it is set, objects are placed on this layer, which allows you to set their order relative to other layers. - In
MapOptions.sources
added ability to set hybrid map source viaMapOptions.SourceDescriptor.dgisHybridSource
. - Bicycle-specific attributes are added for bicycle routes, such as:
Route.badRoads
- whether the road section is bad.ExtraInstructionInfo.bicycleCrossroad
- bicycle instructionsBicycleInstructionCrossroad
,BicycleInstructionCrossroadManeuver
,BicycleInstructionCrossroadManeuverDirection
,BicycleInstructionCrossroadLandmark
.
- By default, the
Free roam
caching of tiles in the route mode is enabled. UseFreeRoamSettings.onRoutePrefetchLength
,FreeRoamSettings.onRoutePrefetchRadiusMeters
andFreeRoamSettings.cachePrefetchRadiusMeters
to set caching. - Added flag
TruckRouteSearchOptions.fallbackOnCar
, which allows to search truck route if truck route cannot be found. - Sending new field in events of navigator's statistics.
- Support for iPhone SE 3 and iPad Air 5.
🛠 Fixes
- Faster addition of complex polygons to the map.
- Fixed an issue where a camera that was voiced once on a route was no longer voiced when passing through it again.
- Fixed search in offline and hybrid modes.
- Optimized traffic jam update.
- Disabled display of floor plans in navigation mode.
- Optimized sending statistics in navigation mode.
- Fixed the situation when
can't load from network
errors appeared in logs while displaying traffic events. - Optimized logic of route re-request.
- Fixed problem when at the end of trip built route remained on the map.
❗️ Changes affecting backward compatibility
- The
APIKeys
structure has been removed. Instead, the first parameter inContainer.init
must be passed to theApiKeyOptions
structure object, which contains the path to thedgissdk.key
file. The defaultApiKeyOptions.default
object tries to get the file from the root of the application. - Removed methods
SearchQueryBuilder.setLocation
andSuggestQueryBuilder.setLocation
- value is automatically taken from geoposition source. - Removed method
PackedSearchQuery.location
. - Removed
SearchResultMarkerObject
andSearchResultMarkerSource
for generating search result tokens due to lack of ability to dynamically add or remove objects. As an alternative, the user is offered to implement token generation himself or use clustering. - When creating
MyLocationMapObjectSource
,SmoothMyLocationController
is used by default instead ofRawMyLocationController
.
🗺 Changes in map styles
- Changes for the new navigator: colors/size of traffic jams, route, maneuvers, new arrow model.
- Support for
SimpleMapObject
placement on floors.
v2.6.0
Release Date: April 19, 2022
🌟 New features
- Sending a new field in navigator statistics events.
- Support for iPhone SE 3 and iPad Air 5.
🛠 Fixes
- Faster addition of complex polygons to the map.
- Fixed updating traffic jams on the route.
- Caching of traffic events.
- Improved ETA update algorithm on the route.
❗️ Changes affecting backward compatibility
- The
SearchQueryBuilder.setLocation
andSuggestQueryBuilder.setLocation
methods are marked as deprecated - the value is automatically taken from the geoposition source.
v4.0.0-alpha.1
Release Date: April 4, 2022
🌟 New features
- Hybrid mode of operation.
- Added the ability to download data for map, directory and fare finder operations, which will be used in the future when there is no internet connection. The
TerritoryManager
is used to download data about territories and get information about them. - For the map to work in hybrid mode, it is necessary to set both online and offline sources at once in
MapOptions.sources
-[.dgisOnlineSource, .dgisOfflineSource]
. - Hybrid directory search engine -
SearchManager.createSmartManager
(but there are also separatecreateOnlineManager
andcreateOfflineManager
). - The fare search (
TrafficRouter
) is always hybrid - it uses online/offline data depending on its availability. - With
TerritoriesAlongRouteProvider
you can get a list of areas the route passes through.
- Added the ability to download data for map, directory and fare finder operations, which will be used in the future when there is no internet connection. The
- Displays floor plans.
- It happens automatically when the map approaches large buildings (shopping malls, airports, etc.).
- To get information about floor plans and switch them, the
IndoorManager
is used. - There is a ready-made UI controller for floor management -
IndoorControl
. - Dynamic objects (
SimpleMapObject
) can be placed on a specific floor plan using the parameterlevelId
.
- Display pop-up tooltips with a lanes above the navigator's route.
- Off by default. You can turn it on by setting
RouteMapObjectDisplayFlag.lanesBubbles
inRouteMapObject.displayFlags
,RouteMapSettings.onRouteDisplayFlags
orRouteMapSettings.freeRoamDisplayFlags
. - Cue positions on the route can be obtained with
RouteMapObject.lanesCalloutPositions
.
- Off by default. You can turn it on by setting
- Information about events and traffic jams on the route in the navigator -
Model.dynamicRouteInfo
. To set its updating parameters, useNavigationManager.dynamicRouteInfoSettings
. - To set the parameters of the route display in the navigator, use
NavigationManager.routeMapSettings
. - Automatic switch to Free Roam mode when leaving the route.
- Added route search settings -
NavigationManager.betterRouteProviderSettings
. - Added fields with lane sign boundaries -
RouteLaneSign.signStartPoint
,signPoint
,signEndPoint
. - Added "avoid stairs" option on pedestrian routes -
PedestrianRouteSearchOptions.avoidStairways
.
🛠 Fixes
- Fixed the update of traffic jams on the route.
- Free Roam data caching. Caching settings can be configured with
NavigationManager.freeRoamSettings
. - Traffic event caching.
❗️ Changes affecting backward compatibility
Map version:
- The
DirectoryObjectId
class has been renamed toDgisObjectId
. - Removed
serialize
,deserialize
functions forCameraPosition
instead they should use new serialization mechanism -PackedMapState
.
Full version:
- Removed lists with route information in
RouteInfo
-cameras
,instructions
,laneSigns
etc. and current element indices -Model.cameraIndexChannel
,Model.instructionIndexChannel
. Instead the information should be obtained directly from the route and the current position, for example, get the nearest camera -Model.route.route.cameras.findNearForward(position)
. - Renamed the route search parameters:
BicycleRouteSearchOptions.avoidUnderpasses
->avoidUnderpassesAndOverpasses
.CarRouteSearchOptions.avoidFerry
->avoidFerries
.TruckRouteSearchOptions actualWeight
,maxPermissibleWeight
->actualMass
,maxPermittedMass
.
- The enum-a
RoadType.road
value is divided into subtypesRoadType.highway
,RoadType.federalRoad
, etc. - The
VoiceSelector.setVoice
method is replaced by thevoice
property.
v2.5.0
Release Date: March 23, 2022
🌟 New features
- Event in stats about navigator settings change while navigating.
- Event in navigator statistics about leaving a route and returning to it.
🛠 Fixes
- Fixed
Map.getRenderedObjects
operation with transparent polygons. - Fixed update of traffic data in navigator UI model (
RouteInfo.trafficRoute.traffic
). - Corrected order of maneuver arrows overlapping in navigator.
- Bicycle routes now follow the sidewalk instead of the roadway.
- Handled null identifier in
SearchManager.searchById
,searchByDirectoryObjectId
methods.
🗺 Changes in map styles
List of changes
"Ocean" For the day and night theme, the font size is at [z2:9.15 ... z4:12.5]. The labeling indents for the text in the night theme changed from 10.1 to 20, now as in the day theme. "Large Sea" For the daytime and nighttime theme, the font size is [z3:9.15 ... z5:10.85]. "Small Sea and Large Lake" For the daytime and nighttime theme, the font size is at [z3.5:9.5 ... z6:11.65]. The labeling indents for text in the daytime theme changed from 40.1 to 20, now as in the nighttime theme. "Small Lake" For the daytime and nighttime theme, the font size has been changed to 9.15. text indents for the night theme, changed from 20 to 0, the same as for the day theme. "2GIS countries" For daytime and nighttime themes, font size to [z2:10 ... z5:15]. For the daytime and nighttime theme, the indentation of the labeling has been changed to 5. "Large Countries" For the daytime and nighttime theme, the font size at [z2:10 ... z5:15]. "Middle Countries" For the day and night theme, the font size is changed to [z2:10 ... z4:12.5]. For the daytime and nighttime theme, the indentation of the labeling is changed to 10. "Small Countries" For the day and night theme, the font size has been changed to 10.85. The indents for the day and night topics were changed to 5. "Regions" For the day and night theme, the font size has been changed to [z6:10.85 ... z9:16.65]. "Mid-Cities" For the daytime and nighttime theme, the font size is [z6:10 ... z9:13.75]. "Small Cities" For day and night theme, the font size is [z6:9.15 ... z9:12.9]. For the night theme, the sublayer filter has been changed to "City_small", now as in the day theme. For the night and day theme, the object_class filter has been changed to "universe_city". "Regional Centers" For the daytime and nighttime theme, the font size has been changed to [z4.5:9.15 ... z9:13.75]. "2GIS Small Cities" For daytime and nighttime theme, the font size is at [z6:10 ... z9:13.75]. "Major Cities" For the daytime and nighttime theme, the font size is [z5:10 ... z9:15]. For the day and night theme, changed the icon size to 5.85. For the night theme the indentation of the labeling has been changed by 20. "Middle Cities 2GIS" For day and night themes, the font size has been changed to [z4:8.35 ... z9:15]. Icon size changed to 5.85 for daytime and nighttime theme. "2GIS Major Cities" For the day and night theme changed the icon size to 5.85. For the day and night themes changed the font size to [z3:8.35 ... z9:15]. For day and night theme, changed the indentation of the labeling to 5. For the night theme changed sample filters: sublayer = city_2gis_big, objectClass = universe_city_2gis, universe_city_2gis_rc, now as in the day theme. "Small Capitals" For the day and night themes changed the icon size to 7.5. For day and night themes changed the font size to [z6:11.65 ... z11:18.35]. For day theme changed sampling filters, brought in line with night theme. For the day and night themes changed the indentation of the labeling to 4. "Capitals" For the night theme, changed the sampling filters to match the day theme. For the day and night themes changed the font sizes to [z3:9.15 ... z11:18.35]. For the daytime and nighttime theme changed the icon size to 7.5. "2GIS Capitals" For the daytime and nighttime theme, the font size has been changed to [z3:9.15 ... z11:18.35]. For the day and night theme changed the icon size to 7.5. For day and night themes the indentation of the labeling has been changed to 4. "Arteries" For the night theme, the base for the width interpolation logarithm has been changed to 2, now as in the day theme. "Walkways" For the night theme, the width has been changed to [z16.5:1.1 ... z19:3], also the interpolation has been changed to linear, now as in the day theme. For night and day theme, filter by db_sublayer changed, "Pedestrian_road_park_footpath", "Pedestrian_road_park_path" and "Pedestrian_street" added. "Intra-block arrows" For the day theme, changed the indentation from the edges of the line to place the arrows to 2, now as in the night theme. For the night theme, changed the sublayer filter to Oneway_internal_road. "Arrows Other" For the day theme, changed the indent from the edges of the line to place arrows to 2, now as in the night theme. For the night theme, the sublayer filter has been adjusted to match the day theme. "Arrows of highways" For the day theme, the indent from the edges of the line to place arrows has been changed to 2, now as in the night theme. "Traffic jam backing", "Traffic jam fill level -3", "Traffic jam fill level -2", "Traffic jam fill level -1", "Traffic jam fill level 0", "Traffic jam fill level 1", "Traffic jam fill level 2", "Traffic jam fill level 3" The line shift animation type was changed for the night theme, now it is linear like in the day theme. "Water Transport" For the night theme, the stroke length has been changed to [z14:2.3 ... z20:4.1], now as in the day theme. "Tram Dotted" For the night theme, the stroke length has been changed to [z15:8 ... z19:40.1], now as in the day theme. "Entrances under houses" For the night theme, the icon size has been changed to [z17:6 ... z18.5:11], now as in the day theme. "Entrances above houses" For the night theme, change the icon size to [z17:6 ... z18.5:11], now as in the day theme. "Route line on subway carpet pad", "Route line on subway outline" In daytime theme s_dvg_public_pedestrianan_route_mobile removed from filters. "Lookout", "Natural Monument", "Waterfall", "Helipad", "Beach", "Ski Area", "Information", "Garden", "Bridge", "Boat Station", "Skate Park", "Lifeguard", "Changing Room", "Water", "Rink", "Winter Equipment Rental", "Trees", "Attractions", "Ruins", "Paintball", "Stage", "Dance Floor", "Shower Booth", "Christmas Tree Bazaar", "Enclosure", "Homestead", "Crossing", "Monument", "Decorative Structure", "Gazebo", "Bookcrossing", "Graffiti", "Fountain", "Dog Walking Place", "Shooting Range", "Equipment Rental", "Playground", "Karting", "Toilet", "Sports Equipment" For the day theme, the icon size was changed to [z14:12 ... z16:14], like in the night theme. "Viewpoint", "Natural Monument", "Waterfall", "Park", "Beach" Font size changed to 16. "Park" For the night theme, the icon size has been changed to [z14:18 ... z18:24], now as in the day theme. "Water" (POI) In the daytime theme, added "springs" to the filters in the objectClass. "Shooting gallery" In the night theme, replaced the icon with "poi_shootingrange", now as in the day theme. "Sports equipment" For the night and day theme changed the indentation of the labeling to 5. For the day theme, the icon size has been changed to [z14:12 ... z16:14], now as in the night theme. "Other captions" For the night theme, the sublayer filter has been changed to "Other_caption_point", now as in the day theme. For night theme changed minimum zoom to 15, now as in day theme. "Other captions along the line" For the night and day theme, changed the indentation from the edges of the line to place the caption to 5. For the night and day theme, changed the distance between caption duplicates along the line to 1000. For the night and day theme, changed the additional indentation of the labeling along the edges by 5. For the night and day theme, the font size has been changed to [z15.5:10 ... z18:14]. "Special captions along the line" For the daytime theme, the Noto_Sans font is explicitly specified, now as in the nighttime theme. For the night and day theme, the indentation from the edges of the line to place the caption has been changed to 0. For the night and day theme, the additional indentation of the labeling on the edges has been changed to 8. For the night theme, changed the distance between duplicate lettering along the line to 200, as in the day theme. "River Captions" For the night theme, changed the indentation from the edges of the line to place the caption to 0, now as in the day theme. For night and day theme, textDuplicationSpacing changed to [z12:500 ... z18:1000]. "House numbers" For the night theme, the minimum zoom has been changed to 15.3, now as in the day theme. "ATM" For night theme changed filter for sublayer, now "Low_zoom_poi_navigator", like in day theme. "Clothing Shop", "Beauty Shop", "Coffee Shop", "Go-Karting", "Fitness Club", "Bar", "Chapel", "Aviation Club", "Car Service", "Shoe Shop" For the night theme, the sublayer filter has been changed to "Low_zoom_poi", as in the day theme. "Kindergarten", "Ticket Office", "Tennis Club", "Swimming Pool", "Rink", "Post Office", "Education", "Library", "Church", "Synagogue", "Datsan", "Mosque", "Medical Facility", "Sanatorium", "Hotel" For the night theme, the sublayer filter has been changed, now "Medium_zoom_poi", as in the day theme. "Mall", "Administration", "Pharmacy", "Police" For the night theme, the sublayer filter has been changed to "Medium_zoom_poi_navigator" as in the day theme. For night and day theme changed icon size to [z14:18 ... z18:24]. "Theater", "Cinema", "Golf Club", "Hippodrome", "Stadium", "Business Center" For the night theme, changed the sublayer filter, now "High_zoom_poi", as in the day theme. "Shopping Mall", "Gas Station", "Charging Station" For the night theme, the sublayer filter has been changed to "High_zoom_poi_navigator" as in the day theme. "Airport" in directory "POI icons" for night theme changed fonts size to [z14.5:10.1 ... z18:12], now as in day theme. In the "Transport sights" directory for the night and day theme changed the minimum zoom to 7.5. "Railway station" in directory "POI icons" for night theme changed fonts size to [z14.5:10.1 ... z18:12], now as in day theme. In the "Transportation Sights" catalog for the daytime theme, changed to a minimum zoom of 7.5. "Bus Station" In the "POI icons" catalog for the night theme, the object_class filter has been changed, now "bus_station", as in the day theme. In the "Transport sights" catalog, the minimum zoom has been changed to 11 for the night and day theme. "Port" in directory "POI icons" for night theme changed the size of icons to [z14:18 ... z18:24], now as in the day theme. In the catalog "Transport sights" for the night and day theme changed the minimum zoom to 11. "Railroad stations point" For the daytime theme, the icon size has been changed to 6, now as in the nighttime theme. "Chairlift" For the night theme, the icon has been changed to "chairlift", now as in the day theme. "Surface lift". For the night theme, the icon has been changed to "bugel", now as in the day theme. "Dark green" from the "Subway station icons" catalog Icons width was changed to 12 for the night theme. "MCD 1", "MCD 2" from the "Subway icons" catalog For the night theme minimal zoom is changed to 12, now as in the daytime theme. "MCSD 1", "MCSD 2" from the "Subway icons" catalog For the day theme, the width of the subway icons has been replaced by 22, now as in the night theme. "Turquoise", "Blue", "Yellow", "Green", "Brown", "Red", "Orange", "Gray", "Blue", "Dark Green", "Purple", "Gray-Blue", "MCC", "Pink" from the "Subway Icons" catalog Icons width was changed to 15 for Daytime theme. "Light-green" from the "Icons of subway exits" catalog The icon width was changed to 15 for the night and day theme. "City captions with dots" For the night and day theme, the font size has been changed to [z6:11.5 ... z15:20]. For the night and day theme, the indentation of the labeling has been replaced by 16. "Main City Caption" for the night theme the font size has been changed to [z0:10.1 ... z11:22 ... z11.9:22 ... z12:24], now as in the day theme. for the night theme changed the indentation of the labeling to 30, now as in the day theme. "Camera of unknown assignment", "Speed camera" and others in the "Traffic events on route" and "Traffic events on route in maintenance mode" directories For the night theme, the priority of text and priority of icons for labeling have been changed to 160, now as in the day theme. "Camera of Unknown Assignment" In the "Traffic events on route" directory, the text and icons priority for labeling have been changed to 160 for the daytime theme. "Speed camera_80" In the "Traffic events on the route" catalog for the daytime theme, the sublayer filter has been changed to "s_dvg_route_camera_80", now as in the nighttime theme. "Speed camera" from the catalog "Traffic events on the route in the maintenance mode" The icon size for the night theme has been changed to 28, now it is the same as in the day theme. For the night theme, the condition for navigatorOn in the filter is now the same as for the day theme. "Speed camera_100" In the "Traffic events on route in maintenance mode" folder of the daytime theme, changed the icon's anchor point to [0.4, 1], now it is the same as in the night theme. Changed the order of drawing traffic jams. Traffic jams are drawn before houses. In the night theme, the "Active underground pedestrian route line" layer (there are two of them) is renamed to "Active underground pedestrian route line". In the night theme, the "Active underground pedestrian route line copy" layer has been renamed to "Active pedestrian route line". In the night theme, the "Other line captions" layer has been renamed to "Other line captions". In the night theme, the "Special Line Captions" layer has been renamed to "Special Line Captions". The "Industrial area" layer in the night theme was renamed to "Industrial area". In the night theme the "Beginning and end of toll roads" layer was renamed to "Beginning and end of toll roads". Added "Bus Station" layer in Daytime and Nighttime themes. Layer "Shoe store" and "Cinema" in the daytime theme have changed the data sampling filter. The icon priority was changed to 160 for the "Speed camera" layer in the "Traffic events on route" directory in the daytime theme. Icon priority for the "Speed camera of unknown purpose" layer in the "Traffic events on route in maintenance mode" catalog in the daytime theme was changed to 160. The icon size of the layer "Graffiti" in the night theme has been changed to z14:12 . z16:14. All layers in the directory "POI icons" in the night theme now have an icon size of z14:18 ... z18:24. The "Airport", "Railway station", "Bus station", "Port" layers in "POI icons" folder in night theme have rgba(255,255,255,0.5) stroke color now. The "Inactive auto route line" and "Inactive auto route line carpet pad" layers are now separated into a separate "Inactive auto route line" catalog. The "Speed camera" layer in the "Traffic events on route in maintenance mode" directory has been changed to icon priority 160. The maximum scale in the editor is a strict boundary. Since you can set z 20 in Mobile SDK, and on some latitudes it corresponds to the style z 20, objects with a maximum scale of 20 may hide in this situation. Because of that, you can now set the maximum scale more than 20 in the editor, and in the style templates for Mobile SDK all such layers are set to maximum scale 21. In night theme all layers in directory "POI icons" color of stroke was changed to rgba(0,0,0,0.19).
v2.4.2
Release Date: March 16, 2022
🛠 Corrections
- Disabled
accessibility
in copyright control.
v2.4.1
Release Date: March 11, 2022
🛠 Fixes
- Fixed update of traffic jams along the route.
- Fixed bug when sending fare finder statistics.
v2.4.0
Release Date: March 4, 2022
🌟 New features
- Added warnings and errors to the log in case support for a particular MobileSDK version expires or has expired.
- Supported
CarRouteSearchOptions.avoidFerry
filter to prohibit ferrying. - Gesture handlers
IMapGestureInputController.didDoubleTap
andIMapGestureInputController.didTwoFingerTap
now have ability to set gesture work position. - When sending statistics, the events handled are:
- Completion of the alternate route request
- Change of the index of the next intermediate route point
- Updates of dynamic route information
🛠 Fixes
- Fixed a bug where the carriage boarding description was invalid on routes on public transport when no carriage information was available.
- Calling
Camera.setPadding
andCamera.setPositionPoint
with theCameraPositionPointChangeBehaviour.keepCamera
parameter now resets position tracking. - Fixed an issue with rendering some regions.
- Fixed an issue with sending statistics related to generating an event after reaching an endpoint.
- In
NavigationView
the problem, in which the second and subsequent routes are built not to the specified point was fixed. - Now if you sent a request to find a new route, but returned to the current route before receiving it, the requests for a better route are sent.
❗️ Changes affecting backward compatibility
- The
TrafficRouter.findRoute
method now returns an empty list instead of throwing an exception if no routes are found.
v2.3.3
Release Date: February 25, 2022
🌟 New features
- Added network request logging at log info and verbose level.
🛠 Fixes
- Fixed sending stats with mobile network generation. Used to send invalid null values.
v1.6.18
Release Date: February 25, 2022
🌟 New features
- Added network request logging at log info and verbose level.
🛠 Fixes
- Fixed sending stats with mobile network generation. Used to send invalid null values.
v2.3.2
Release Date: February 21, 2022
🛠 Fixes
- Fixed sending of stats about navigation start.
v2.3.0
Release Date: February 10, 2022
🌟 New features
- Smooth flight when geo-position tracking is activated -
CameraBehaviour.transitionType
(defaultTransitionType.SMOOTH
- enabled). - Ability to set settings that are not available through the API (eg, URLs of web services) - parameter
vendorConfig
in the constructorContainer
- json-file with settings. The settings set is currently undocumented. - Automatically switching to a route is better if the user continued on it.
- Sending statistics on fare search and navigation performance.
- Text description of cars recommended for boarding -
PublicTransportInfo.boardingSuggest
. For example, "board the first car". - Displaying cars recommended for boarding in the route card (
PublicTransportCard
). - Information about the schedule of a traffic event -
RoadEvent.schedule
. - Display traffic event schedule in the event card (
RoadEventCard
). - Auxiliary methods
GeoPoint.isValid
,GeoRect.isValid
,GeoRect.contains
,GeoRect.intersects
,GeoRect.expand
. - Get bounding rectangle of geometry -
Geometry.bounds
,GeometryMapObject.bounds
,SimpleMapObject.bounds
. - Ability to get current navigator's voice -
VoiceSelector.voice
.
🛠 Fixes
- Using the system HTTP client instead of CURL.
- Ability to define your own implementation of the HTTP-client -
IHTTPClient
. - Optimization of displaying traffic jams on the map.
- Optimized adding of route to the map.
- Fixed route detection better after leaving a route and back.
- Fixed erroneous notification about bad GPS signal when starting navigation simulation (
NavigationManager.startSimulation
).
v1.6.16
Release Date: January 26, 2022
🌟 New features
- All network request handling has been moved from
libcurl
to the system network client.
🛠 Fixes
- Added camera position logging if incorrect position value is passed to
Camera.move
,Camera.position
andMapOptions.position
methods.
v1.6.14
Release Date: January 10, 2022
🛠 Fixes
- Fixed an issue where tiles would not load when AdGuard VPN was enabled.
- Removed logging errors when map object crashes immediately after creation.
- Fixed network cache crash.
- Added request logging for network errors.
- Fixed errors in logs when processing map tiles.
- Fixed rare crashes during map creation in different threads.
- Fixed errors in logs when adding marker to the map.
v2.2.0
Release Date: December 29, 2021
🌟 New features
- Save and restore route and navigator state -
PackedNavigationState
,TrafficRoute.fromNavigationState
. - Added property
PublicTransportTransfer.startPointName
- name of the start point of the route section. - Displaying numbers and colors of subway lines in the public transport card (
PublicTransportCard
).
🛠 Fixes
- Fixed crash when changing map zoom settings in navigator (
NavigationManager.zoomFollowSettings
). - Fixed
PublicTransportInfo.color
operation for transport types other than metro. - The period of traffic data update is limited by 30 seconds from the bottom.
❗️ Changes affecting backward compatibility
- The
PublicTransportTransfer.waypointName
property has been renamed tofinishPointName
.
🗺 Map style changes
-
Changes for finding public transportation fare.
- In the Walking Line directory, added layers "Inactive Underground Walking Line" (two layers with the same name), "Inactive Walking Line", "Active Underground Walking Line" (two layers), "Active Walking Line", removed layers "Underground Walking Line" (two layers) and "Walking Line".
- The Underground Walking Route Line, Inactive Underground Walking Route Line, Inactive Walking Route Line, Active Underground Walking Route Line, Active Walking Route Line layers were added, and the Underground Walking Route Line and Walking Route Line layers were deleted in the Maintained Walking Line catalog.
- Renamed the Maneuver Arrows Shallow Scale in Maintain Mode layer to Maneuver Arrows Shallow Scale in Maintain Mode.
- Added directory with layers "Route line on public transport".
-
The "Traffic", "Walking route line", "Walking route line in guided mode", and "Walking route line in auto" catalogs have been moved higher to keep the models and buildings from covering the routes. They are now above the 3D Model layer.
-
Arrow display has been corrected - for the Other Arrows, Highway Arrows layers, the object selection condition has been changed (select JSON to see the current condition and compare it to the condition in your styles).
-
For the layer "Yellow Line Subway Drop-off Stop in active state" leibeling has been disabled (in templates through adding new leibeling group, but it's easier to turn on the checkbox "Keep visible when overlaying on other objects").
-
The "Generalized Marker" layer has had the "search_marker_icon" group added to the image leibeling, so that it is not hidden by other objects.
-
Changed daytime and nighttime theme inconsistencies.
- In the daytime theme:
- Removed font at "Lookout," "Natural Monument," "Waterfall," "Park," and "Beach" layers.
- Minzoom was changed from 18 to 17 for "Playground" and "Sports equipment" layers.
- Layer "Garden", "Ski Center" minzoom changed from 12 to 14.
- The "Streetcar Dotted" layer has been changed from 16.5 to 15.5 minzoom to correspond to the "Streetcar" layer.
- The text display has been changed from 17 to 16 zoom on the "Speed Camera_100" layer.
- In the night theme:
- The "Rail/D Line" layer has had its maxzoom changed from 13.5 to 13 to match the "Rail/Dash Dot" layer.
- The "Stairs" and "Zebra" layers have had their minzoom changed from 16.5 to 16.
- All "Flat Houses" layers have been changed from 20 to 16 to avoid displaying them simultaneously with 3D houses.
- The "Gardens" and "Schools" layers in the "Flat Houses" catalog have changed their minzoom from 15 to 14.
- The "Parking Area" layer has changed its minzoom from 17.5 to 17.
- Minzoom was changed from 4 to 3 for the "Large 2GIS Cities" layer.
- Minzoom has been changed from 6 to 4 for the "Medium 2GIS Cities" layer.
- Minor cities" layer has minzoom changed from 7 to 6.
- For the "Large Countries" and "2GIS Countries" layers, maxzoom was changed from 8 to 6.
- The zoom value in the interpolate line width of the "Maneuver Arrows fine scale in guide mode" layer was changed from 19 to 20.
- The search_marker_icon and search_marker_text labeling groups were added, and these groups are specified in the "Search Marker" layer.
- The "selection_marker" and "selection_marker_text" labeling groups are specified in the "selection search marker" layer.
- Some theme inconsistencies occurred because of the use of a range from the data. To prevent this from happening in the future, all scales in templates are now specified explicitly.
- In the daytime theme:
v2.1.0
Release Date: December 24, 2021
🌟 New features
- Added crosswalk and bike routes, as well as routes on public transportation.
- Added ability to disable route completion and GPS signal loss instructions.
- Two fields appeared in the
Location
structure - the name of the geopositioning sourcesource
and the time point at which the geoposition was defined,timestamp
. - Class
PackedMapState
for serialization and deserialization of the map state. The oldserialize(cameraPosition:)
anddeserialize(positionString:)
methods are marked as deprecated. - Class
PackedSearchQuery
for serializing and deserializing a search query. - Added
mapToScreen(geoPointWithElevation:)
method to theProjection
structure. - Implemented a control for displaying routes on public transport.
- Added the sending of statistics for the navigator.
🛠 Fixes
- Corrected a bug when switching from
FreeRoam
mode to navigation mode to play a re-route instruction. - Fixed missing intermediate points when re-routing a route.
- Added 30 seconds timer for sounding instructions on rerouting.
- Fixed working with traffic events for anonymous users.
- Removed the speed controller display for pedestrian and bicycle routes.
- Fixed notification on bad GPS signal when starting navigation simulation.
- Fixed the problem with black screen on initialization of the map before loading the background colors from the stylesheets. Added field
MapOptions.backgroundColor
for setting initial background color. - Fixed an issue where map tiles would not load when AdGuard VPN was enabled.
- Optimized the display of traffic jams on the map.
v1.6.12
Release Date: December 8, 2021
🛠 Fixes
- Fixed crashes related to the SIGABRT system signal.
v2.0.0
Release Date: December 2, 2021
🌟 New features
- In the search result
SearchResult
fieldSearchResultType
- information about result type was added. - In the
SearchQueryBuilder
it is now possible to set filtering viaSearchQueryBuilder.setDirectoryFilter(directoryFilter:)
and sorting viaSearchQueryBuilder.setSortingType(sortingType:)
. Currently, filtering by open time (open now
andopen at specific time
) and sorting by relevance, by rating and by distance from current user location are implemented. - In
SearchQueryBuilder
there is an option to set the current location of the user for the search query viaSearchQueryBuilder.setLocation(locationPoint:)
. - The
GeoPoint
andGeoPointWithElevation
classes have added methodsbearing(point:)
,distance(point:)
andmove(bearing:, meter:)
.
🛠 Fixes
- Fixed the display of cameras on the route. Cameras that are closer to the start of the route are now always displayed at a higher priority than cameras that are further away.
- Removed the notification that you need to provide permission to search for and connect to devices on the local network. This notification was appearing when first installing the application with our MobileSDK and then initializing the map.
- Fixed a crash when running
MyLocationController
. - Fixed a bug where cameras in
free roam
mode would sometimes be displayed without a miscalculation 2 km ahead in the driving direction.
❗️ Changes affecting backward compatibility
- Changed signature of methods
NavigationManager.start
andNavigationManager.startSimulation
. They now takeRouteBuildOptions
together with the route. - The method
Geometry.hasIntersection
is renamed toGeometry.intersects
. - The
ParkingPurpose
state has been removed. Instead theParkingInfo.forTruck
flag was added. - The function
toMapGeometry(route: TrafficRoute)
was replaced by the functiontoMapGeometry(geometry: GeoPointRouteAttribute)
. - Removed the
BetterRouteInfo.duration
field. AddedBetterRouteInfo.trafficRoute
andBetterRouteInfo.startPoint
instead. - Added classes
Route
andTraffic
. TheTrafficRoute
now has onlyroute
andtraffic
properties instead of the previous set of properties, through which you can get full information about the route. - Removed
BicycleRouteSearchOptions
andPedestrianRouteSearchOptions
- carried over for future releases. - Renamed
RouteParams
toRouteEditorRouteParams
.
Migration from v1.x.
- Instead of
Arcdegree
, which was used to set camera rotation, latitude, longitude, now separate types -Bearing
,Latitude
,Longitude
. - Changed API for working with traffic jams: Renamed
TrafficScore
intoTrafficScoreProvider
,TrafficScoreValue
intoTrafficScore
, removedTrafficManager
-TrafficScoreProvider
is created via constructor. - Fixed a crash when
GLContext
was not created when creating a map. Now in case of an error, an exceptionGLContextError
appears. Need to be able to handle it. - Renamed the
LocaleManager.setOverridedLocales
method tooverrideLocales
. - Removed getting the positioning queue via
IPositioningServicesFactory.positioningQueue
. Now inside theILocationProvider
protocol implementation there is no need to callback through the queue. - Fixes and changes to custom camera controllers API - now there can be only one controller, added/removed by
Camera.setCustomFollowController
/Camera.removeCustomFollowController
methods.
🗺 Changes in map styles
- In the styles editor on the tab
Dynamic objects
object'sRadius
of geo-positioning accuracyshould use sub-layer
s_dvg_accuracy_circle` (if there are 2 more - it's ok, they were left for compatibility with the first version). - The layers
Speed camera
in directoriesTransport events layer
,Transport events layer
, `Transport events en route en route en route en route en route en route en route en route en route en route en route en route en route en route en route en route en route en route en route en route en scale changed to 13-14. - Added layer
Parking area auto-generated for parking mode
. - Removed layer
Parkings
. - Added layers
Parking spaces with unknown price
,Parking spaces for disabled people
,Resident parking spaces
,Taxi parking spaces
,Parking spaces for free
. - There are new layers in the catalogs
Transport events on route in maintenance mode
andTransport events on route
. Add them to your styles to continue to display cameras on the route, and there are new events. - Added catalogs with layers
Transport events layer in guidance mode' and
Transport events layer' for the new traffic events layer. - A catalog of layers
Parking bubbles
was added, as well as layersParking no-go zone for parking enabled layer
andParking area for parking mode
. These data are displayed only when the map has the attributeparkingOn
set to true. - The
Parking Area
layer is now displayed when theparkingOn
attribute of the map is absent or set to false.
v1.6.10
Release Date: November 25, 2021
🛠 Fixes
- Removed the notification about granting permission to search for and connect to devices on the local network. This notification would appear when first installing the app with our MobileSDK and then initializing the map.
- Now creating a map with size 0x0 is valid.
- Fixed a crash when running
MyLocationController
.
v2.0.0-beta.8
Release Date: November 22, 2021
🌟 New features
- Added collecting and sending traffic jam data while navigating. Enabled by default, can be turned off with
TrafficCollector.trafficCollectingAllowed
. - Parking data in the directory -
DirectoryObject.parkingInfo
. - Data about reviews in the directory -
DirectoryObject.reviews
. - Data about the work status in the directory -
DirectoryObject.workStatus
. - Events in the statistics about creating and deleting map sources.
🛠 Fixes
- Updated libcurl library. Moved to asynchronous DNS name resolution.
- Traffic events display in navigator.
- Removed navigation start delay.
- Incorrect value of
Model.state
when switching from free-roam to route mode. - Incorrect macroGraph update status -
RoadMacroGraph.info.updateStatus
. - Behavior in case of changing map size during flight.
- Behavior of
Camera.padding
when map size is small. - Now creating a map with size 0x0 is valid.
❗️ Changes affecting backward compatibility
- The
LocaleManager.setOverridedLocales
method has been renamed tooverrideLocales
.
❗️ Other
- Requires styles to be reloaded from the editor. Fixes the display of railroads, and also fixes a crash in one of the scenarios.
v1.6.8
Release Date: November 19, 2021
🌟 New features
- Updated libcurl library. Moved to asynchronous DNS name resolution.
🛠 Fixes
- Fixed crash in loading map tiles.
- Circle(
Circle
) was flickering when moving.
❗️ Other
- Requires styles to be reloaded from the editor. Fixes the display of railroads, and also fixes a crash in one of the scenarios.
v2.0.0-beta.7
Release Date: November 10, 2021
🌟 New features
- Added captions to road event markers.
- Add road event card (
CreateRoadEventView
). - Displaying a photo in the road event card.
- Button for deleting a road event in the card.
- Possibility to turn on/off the sounding of instructions, obstacles and road subtype -
SoundCategory.instructions
,SoundCategory.obstacles
,SoundCategory.roadSubtypes
. - Send statistics about parameters of used maps - size, DPI, etc.
🛠 Fixes
- Didn't voice road events that didn't have a lane specified.
- Not allowing the map to be zoomed by double tapping when zooming is disabled in settings.
- The circle(
Circle
) was flickering while moving. - Removed the voiceover of speed bumps (it did not work before either - no such sounds, there was a blank instead).
v2.0.0-beta.6
Release Date: October 29, 2021
🛠 Fixes
- Getting photos of road events -
RoadEvent.photos
. - Ability to create road events -
RoadEventManager
with methodscreateAccident
,createCamera
etc. - Ability to delete a traffic event -
RoadEvent.remover
method. - Ability to perform actions with traffic events (confirm, deny, like, etc.) -
RoadEvent.availableActions
. - Improved description of road events-cameras.
- Corrected the display of icons of two-sided overlaps - previously it was displayed only on one side.
- Ability to set map size for camera position calculation functions - parameter
size
forcalcPosition
andzoomOutToFit
. - Route settings
RouteMapObjectSource.routeSourceSettings
,NavigationManager.routeSourceSettings
, with which you can set parameters for displaying maneuver arrows. - Alouding of re-building the route in the navigator.
- Fixed the sounding of the grouped cameras; only the first priority one will be sounded.
- Indicator of loading on route realignment in Navigator UI.
- Fixed error in sending statistics when there were few events
MapSource
with type2gis.online
. - Fixed potential crashes in processing network requests.
- Detailed logging of network request information at
LogLevel.verbose
level. - Corrected the display of the 2GIS logo so that Xcode does not generate warnings.
- Fixed a crash in
IBatteryInfoProvider
.
❗️ Changes affecting backward compatibility
- Fixed a crash where the
GLContext
was not created when the map was created. TheGLContextError
exception now appears in case of an error.
v1.6.4
Release Date: October 29, 2021
- Potential crashes in network request handling fixed.
v1.6.3
Release Date: October 26, 2021
- New devices PPI screen definition.
- Fixed 2GIS logo size on the map.
- Fixed a bug when sending statistics, in which there were few
MapSource
events with type2gis.online
. - Fixed a crash when
MyLocationController
was running. - Fixed a crash when
GLContext
was not created when creating the map. Now just write errors to the log. - Fixed the display of the 2GIS logo so that Xcode will not generate warnings.
- Fixed crash in the
IBatteryInfoProvider
.
v2.0.0-beta.5
Release Date: October 21, 2021
🛠 Fixes
- Fixed incorrect behavior of the close road event card button.
- Fixed an issue where artifacts would appear when hiding the lane control in
FreeRoam
mode. - Navigator controls are now hidden when reaching the finish point of the route.
- Fixed bug when downloading territories.
- Added processing of click on the road event on the route.
- Supported rendering cameras in FreeRoam mode when using the offline road graph source.
- Fixed a bug where cameras were not displayed when you first build a route.
- Fixed crash when
MyLocationController
is running. - Fixed errors in the display of traffic events.
- Fixed a bug where intersection control camera icons were not displayed.
- Added ability to disable voice by type via
NavigationManager.soundNotificationSettings.enabledSoundCategories
.
❗️ Changes affecting backward compatibility
- Removed getting the positioning queue via
IPositioningServicesFactory.positioningQueueue
. Now inside theILocationProvider
protocol implementation, there is no need to callback through the queue.
v2.0.0-beta.4
Release Date: October 14, 2021
🛠 Changes
- Corrections to the
RoadEventSource
traffic event source. - Fixed suggestions for some queries.
- Added display of road events on the route.
- Added
IRoadEventCardView
to display event card. - All navigator controls become inactive while displaying notifications.
- Named exits, exit numbers for the current maneuver, next maneuver if it is closer than 50 meters to the main maneuver are now displayed.
- Ability to set the color of navigator controls through
NavigationViewOptions.theme
. - Route retrieval in navigator, if previous attempt was unsuccessful.
- Capability to get from the navigator's model the current geo-position with which the navigator is working -
Model.location
. - Correction in voicing of cameras in navigator - now distance to camera is reported, not to the beginning of its action.
- Additional description of road type -
RouteInfo.roadSubtypes
. - Added default values for route search parameters in
TruckRouteSearchOptions
.
❗️ Changes affecting backward compatibility
- Fixes and changes to custom camera controllers API - now there can be only one controller, added/removed by
Camera.setCustomFollowController
/Camera.removeCustomFollowController
methods. Model.routeInfo
renamed toModel.route
,Model.currentRoutePosition
toModel.routePosition
, instead ofModel.badLocation
now the oppositeModel.locationAvailable
, instead ofModel.currentSpeedChannel
nowModel.locationChannel.groundSpeed
.
🗺 Changes in map styles
- The "Speed Camera" layers have changed the display scale to 13-14 in the "Transport Events Layer in Maintain Mode", "Transport Events Layer", "Transport Events on Route in Maintain Mode", and "Transport Events on Route" catalogs.
- The "Parking area" and "Parking area for parking mode" layers have been given a color for the selected state.
- Auto generated parking area for parking mode" layer was added.
- The layers in the "Parking Bubbles" catalog have the icon priority raised to 1, so that they displace the regular parking icons.
- Removed the "Parking Bubbles" layer.
- Added layers "Parking lots with unknown price", "Handicapped parking lots", "Resident parking lots", "Taxi parking lots", and "Free parking lots".
v2.0.0-beta.3
Release Date: October 7, 2021
- Displaying of the traffic events on the map (not tied to a specific route) -
RoadEventSource
,RoadEvent
. - Possibility to set a custom camera tracking controller -
CustomFollowController
. - Fixed regression: dragging markers without text did not work.
- Displayed the beginning and end of toll roads on the map.
- Support for inter-regional offline fare search.
- Support for cabs as a separate type of transport -
TaxiRouteSearchOptions
. - Support of passes for trucks -
TruckRouteSearchOptions.passId
,TrafficRoute.truckPassZoneIds
. - Fixed extra maneuver sounding in navigator.
- Voice announcement of crashes and roadworks in navigator.
- Voice announcement about via points in navigator.
- Correction in the navigator when navigator has zero speed.
- Displaying of the next maneuver and exit number in the navigator's UI.
- Navigator UI localized in Russian and English.
- Changes affecting backward compatibility in navigator's API Information about the route -
RoadTypeInfo
,TransportTypeInfo
,RoadSurfaceInfo
,SpeedLimitInfo
,RoadNameInfo
,TollInfo
- is now located inRouteInfo
in the form of lists, the current value can be obtained from them, referring to the appropriate index inModel
-Model.roadTypeIndex
,Model.transportTypeIndex
, etc. - Definition of PPI screen of new devices.
- Changes in map styles:
- Change affecting backward compatibility There are new layers in the "Transport Events on Route in Maintain Mode" and "Transport Events on Route" directories. Add them to your styles to continue to display cameras on the route, and new events have appeared.
- Added catalogs with layers "Transport Events Layer in Maintain Mode" and "Transport Events Layer" for the new traffic events layer.
- Added "Parking Bubbles" layer catalog, as well as "No Parking Zone for Enabled Parking Layer" and "Parking Area for Parking Mode" layers. These data are displayed only when the map has the parkingOn attribute set to true.
- The "Parking area" layer. is now displayed when the map has no parkingOn attribute or is set to false.
v2.0.0-beta.2
Release Date: September 28, 2021
- Fixed race in
RouteMapObject
, which could cause it to display incorrectly. - Added mapping and voicing of new camera types on the map.
- Added property
Camera.size
- view area size in pixels. - Changes in navigator's API:
- The
Model.maneuverInstructionIndex
property has been renamed toinstructionIndex
. - For information on navigator instructions,
RouteInfo.instructions
is used, the maneuver name from which can be obtained usinggetInstructionManeuver
function.
- The
- Fixed tracking of geoposition when using navigator with several maps at the same time.
- Removed unnecessary transition of
Model
intoState.DISABLED
state when re-searching a route.
v1.6.2
Release Date: September 23, 2021
- Fixed problems that occurred after refinement of moving markers without text - static markers without text worked slowly and transparency was not set for markers without text.
- Updated the size of the 2GIS logo on the map.
- Fixed an issue where when setting the slope angle when creating a map, the slope angle was reset whenever the map was changed.
v2.0.0-beta.1.2
Release Date: September 23, 2021
- Fixed issues that occurred after updating marker movement without text - static markers without text worked slowly and the transparency was not set for markers without text.
- Updated the size of the 2GIS logo on the map.
- Fixed the issue when setting the tilt angle when creating a map, the tilt angle was reset on any map changes.
v1.6.0
Release Date: September 21, 2021
- Significantly accelerated the movement of markers without text.
Important: it is necessary to re-export the style from the style editor, otherwise the markers will not be displayed. - Changed the logic of clustering - the cluster center is now the center of mass of the sub-clusters of the previous level.
- Fixed an error where in the clustering mode, when removing a marker, nearby closely located markers were also deleted.
- Fixed the functionality of
SuggestQueryBuilder.setSuggestorType
- previously this option did not affect the result.
v2.0.0-beta.1
Release Date: September 21, 2021
- Significantly accelerated the movement of markers without text.
Important: it is necessary to re-export the style from the style editor, without it the markers will not be displayed. - Changed clustering logic - the center of masses of subclusters of previous level is taken as the center of cluster.
- Fixed a bug when in the clustering mode, when deleting a marker, adjacent nearby markers were deleted.
- Fixed
SuggestQueryBuilder.setSuggestorType
- previously this option did not affect the result. - Added properties
TrafficRoute.startPoint
,TrafficRoute.finishPoint
- start and end points of the route. - Added zoom control settings for navigator -
NavigationManager.zoomFollowSettings
. - Added settings of traffic data update in the navigator -
NavigationManager.trafficSettings
. - Added
AudioOptions
andIAudioSettings
for sound settings. It is possible to adjust the muting of sounds of third-party applications in the navigator and the volume level during playback. - The tracking control in the navigator is
NavigatorFollowingControl
. - The
BetterRouteControlView
goes to the minimized state when there is no interaction with it.
Migration from v1.x.
- Instead of
Arcdegree
, which was used to set camera rotation, latitude, longitude, now separate types -Bearing
,Latitude
,Longitude
. - Changed API for working with traffic jams: Renamed
TrafficScore
inTrafficScoreProvider
,TrafficScoreValue
inTrafficScore
,TrafficManager
was removed -TrafficScoreProvider
is created through the constructor. - Changed the basic styles. In the styles editor on the tab
Dynamic Objects
objects geopositioning accuracy radius
should use sublayers_dvg_accuracy_circle
(if there are 2 more - it's okay, they were left for compatibility with the first version).
v1.5.0
Release Date: September 6, 2021
- Fixed problem with freeing memory after deleting
MapView
. - Fixed a problem with changing marker icons via
Marker.icon
, which would render a blank icon before a new loaded image would appear. Now before the new image is loaded the old one is displayed. - Improved drawing of overlaps on the road over traffic jams.
- Implemented the traffic control
TrafficControl
for the rendering of traffic jams on the map and the display of the traffic jam score. You can get the control object usingIMapControlFactory.makeTrafficControl
. - Fixed
Mobile SDK
crash oniOS 15 beta
when the app was in minimized state.
v2.0.0-alpha.8
Release Date: September 3, 2021
- Navigator will change map zoom level automatically depending on speed (no setting yet).
- Fixed display of traffic jams on map at maximum zoom levels.
- Fixed a problem with changing marker icons via the
Marker.icon
, which caused a blank icon to be displayed before a new loaded image. Now, before the new image is loaded, the old one is displayed. - Reworked the calculation of the camera coverage on the route.
- Fixed a bug where the position tracking is not enabled immediately when starting navigation.
- Supported different modes of navigator in base UI, such as
RouteSearch
,Finished
,Disabled
. - Improved drawing of overlaps on the road over traffic jams.
- Implemented
TrafficControl
control to enable the display of traffic jams on the map and the display of the traffic jam score. You can get the controller object usingIMapControlFactory.makeTrafficControl
. - Change affecting backward compatibility. The
RouteSearchOptions
class has been replaced by a variant which can contain one of the specific classes -CarRouteSearchOptions
,PedestrianRouteSearchOptions
,BicycleRouteSearchOptions
,PublicTransportRouteSearchOptions
orTruckRouteSearchOptions
. - Change affecting backward compatibility. The enum
RoutingType
has been removed. It should useRouteSearchOptions
instead. - Change affecting backward compatibility. The
NavigationManager.uiModel
class has had itsdistanceCountersChannel
removed. Instead it should now usecurrentRoutePositionChannel
to calculate the remaining distance to the nearest maneuver or to the end of the route. The classesDistanceCounters
andHumpPoint
have been removed. Added classIntermediatePoint
describing an intermediate point on the route. Information about the current position on the route is contained in a new classRoutePosition
. - Change affecting backward compatibility. Removed class
TrafficManager
. ClassTrafficScore
is renamed intoTrafficScoreProvider
and becomes the main class for working with traffic jams. The classTrafficScoreValue
is renamed toTrafficScore
. - Change affecting backward compatibility. The basic styles have changed. In the styles editor on the tab
Dynamic objects
objects
Radius of geopositioning accuracymust use
s_dvg_accuracy_circle` sublayer (if there are 2 more - it's ok, they were left for compatibility with the first version).
v2.0.0-alpha.7
Release Date: August 26, 2021
- Fixed an issue where
MapObjectManager.removeObject
would not work if attributes of the object being removed were changed in parallel. - Improved the clustering generated through
MapObjectManager.withClustering
. Now when deleting markers fromMapObjectManager
, the cluster position is corrected if the cluster-forming marker was deleted. - The
CameraPositionPoint
is now taken into account when calculating theCameraPosition
with thecalcPosition
function. - Change affecting backward compatibility. The display of the current location marker has been improved - now the icon with the direction can always be drawn, regardless of the navigation mode.
If you use custom styles, in the style editor you need to correct the dynamic objects of the current location as follows:
- At
Marker on auto
andMarker on auto, outdated position
in the itemVisibility
toggle switchNavigator mode
and select the itemOn
. - At
Marker with direction
,Marker without direction
andMarker without direction, obsolete position
in the itemVisibility
put the toggle switchNavigator mode
and select the itemOff
.
- At
- Fixed freezing in
TrafficSource
. - Fixes in attraction to route in Free Roam mode.
v1.4.0
Release Date: August 24, 2021
- Fixed an issue where
MapObjectManager.removeObject
would not work if attributes of the object being removed were changed in parallel. - Improved the clustering generated through
MapObjectManager.withClustering
. Now when deleting markers fromMapObjectManager
, the cluster position is corrected if the cluster-forming marker was deleted. - The
CameraPositionPoint
is now taken into account when calculating theCameraPosition
with thecalcPosition
function. - Change affecting backward compatibility. The display of the current location marker has been improved - now the icon with the direction can always be drawn, regardless of the navigation mode.
If you use custom styles, in the style editor you need to correct the dynamic objects of the current location as follows:
- At
Marker on auto
andMarker on auto, outdated position
in the itemVisibility
toggle switchNavigator mode
and select the itemOn
. - At
Directional marker
,Directionless marker
andDirectional marker, obsolete position
in the itemVisibility
set the switchNavigator mode
and select the itemOff
.
- At
v2.0.0-alpha.6
Release Date: August 13, 2021
- Added the ability to customize the pedestrian voice of the route when navigating.
- Added
navigationManager.uiModel
channelnavigationActiveChannel
, which returns two states -active
andinactive
. The second state is set when the user has finished driving the car and the navigator can be turned off. - Fixed crash when changing marker position and re-initializing
MapObjectManager
in parallel. - Fixed a bug where clustering would stop working for small zoom levels (0 or 1).
- Fixed incorrect behavior when clicking into a cluster when displaying clustering.
- Added support for `Map.interactive' for map and copywriting gestures.
- Fixed a bug where a memory leak appeared if the map became invisible, but the application code kept working with it (changing current objects on the map, adding new ones, etc.).
v1.3.0
Release Date: August 12, 2021
- Fixed crash when changing marker position and re-initializing
MapObjectManager
in parallel. - Fixed a bug where clustering would stop working for small zoom levels (0 or 1).
- Fixed incorrect behavior when clicking into a cluster when displaying clustering.
- Added support for `Map.interactive' for map and copywriting gestures.
- Fixed bug, which caused memory leak if map became invisible, but application code kept working with it (changing current objects on the map, adding new ones, etc.).
v2.0.0-alpha.5
Release Date: August 6, 2021
- Fixed an issue in the navigator where navigation mode would have long refreshes, and the position marker would have an incorrect direction and shift to a random position.
- The
MapObjectManager
methodclusteringObjects(withameraPosition:)
appeared to get clustering objects for a given camera position. The method returns bothSimpleClusterObject
clusters andMarker
markers. - Using the
SimpleClusterObject
object, you can now change the cluster attributes in the same way as the attributes of theMarker
markers, except for the cluster position. - Fixed a bug where
IMapView
would not work if theIMapFactory
that created it was destroyed. Now there is no need to always store theIMapFactory
object. - Fixed an issue where it was impossible to select a route at maximum zoom levels.
- Removed freezing of tracking the current position when changing the animation duration in the navigator.
v1.2.0
Release Date: August 5, 2021
- The
MapObjectManager
methodclusteringObjects(cameraPosition:)
appeared to get clustering objects for a given camera position. The method returns bothSimpleClusterObject
clusters andMarker
markers. - Using the
SimpleClusterObject
object, you can now change the cluster attributes in the same way as the attributes of theMarker
markers, except for the cluster position. - Fixed a bug where
IMapView
would not work if theIMapFactory
that created it was destroyed. Now there is no need to always keep theIMapFactory
object.
v2.0.0-alpha.4
Release Date: July 28, 2021
- In the
RouteMapObject
class, thecalloutPositionChannel
with the position of the babble over the route has been added. - In the structure
Camera
, which returnsNavigationManager
, added a fieldrange
- information about the range of the camera. - The voice of the navigator depending on the type of route - pedestrian/bicycle/vehicle - has been divided.
v1.1.0
Release Date: July 28, 2021
-
Fixed a bug with
MapObjectManager
adding a marker to the map before the image is fully loaded. -
Added new protocol
IEnergyConsumption
to set max fps in normal and power saving mode. -
Fixed a bug where the map would not update when removing markers during clustering via `MapObjectManager'.
-
Fixed an issue where my location marker would rotate in the opposite direction.
-
Partially fixed memory leak problem with frequent geometry updates at map objects (e.g. changing points at a polyline every 10ms). Full fix will be in next releases.
-
Updated common styles:
-
Moved to editor:
A. Maneuver Arrows (Route Line on Auto => 4 layers `Maneuver Arrows*').
B. Start point, end point, intermediate point of the route, and connection point of different parts of the routes (layers
Point B
,Point A
,Connection points
,Intermediate points
in theDynamic objects
directory).C. Search markers (layers
Search marker selection',
Search marker',Generalized marker' in the
Dynamic objects' catalog).D. Objects on the route (layers in the directories
TUGC on the route in guidance mode
andTUGC on the route
).E. Pedestrian parts of routes (layers in the directories
TUGC route line in guided mode' and
TUGC route line').F. Geo-position marker for pedestrian mode (layers
Marker with direction
,Marker without direction
,Old marker without direction
in theDynamic objects
catalog).Now these objects are customized from the editor and don't appear unconditionally on top of everything. The layers must be copied to their styles and placed in a similar order, so that all objects will display correctly with the new version of the SDK. To copy a layer, you can select the layers you want, press
Ctrl+C/Cmd+C
and open in the same window another style. -
The `Marker Footer' layer has been removed. It should also be removed in its own styles.
-
Changed layers for displaying entrances (layers
Elevations above houses
andElevations below houses
). Now the data are not set via JSON, and selected the correct layers in the tabData
. Also in the night theme, the font has been removed for the entrances under the houses, so that they are displayed without signatures. Need to make similar changes in their own styles. -
Added layers
Signatures of mountain ranges
andSignatures of platforms
to the directorySignatures of geo objects
in the night theme and layerGraffiti
in the directorySightseeing sights
. -
Added layers
Christmas bazaar
,Police
,Shower stall
,Tanzpol
to the daytime theme in the `Sightseeing' catalog. -
Changed the layers in the directory
Roads
, requires them to update their own styles.
-
v2.0.0-alpha.3
Release Date: July 23, 2021
-
Fixed a problem with guidance on a long route: the update of the geoposition marker and the whole map was not smoothly, but jerks.
-
Fixed an issue with
MapObjectManager
adding marker to the map before the image is fully loaded. -
Added new protocol
IEnergyConsumption
to set max fps in normal and power saving mode. -
Fixed a bug where the map would not update when removing markers during clustering via
MapObjectManager
. -
Fixed a bug where my location marker would rotate in the opposite direction.
-
Updated common styles:
-
Moved to the editor:
A. Maneuver Arrows (Route Line on Auto => 4 layers `Maneuver Arrows*').
B. Start point, end point, intermediate point of the route, and connection point of different parts of the routes (layers
Point B
,Point A
,Connection points
,Intermediate points
in theDynamic objects
directory).C. Search markers (layers
Search marker selection',
Search marker',Generalized marker' in the
Dynamic objects' catalog).D. Objects on the route (layers in the directories
TUGC on the route in guidance mode
andTUGC on the route
).E. Pedestrian parts of routes (layers in the directories
TUGC route line in guided mode' and
TUGC route line').F. Geo-position marker for pedestrian mode (layers
Marker with direction
,Marker without direction
,Old marker without direction
in theDynamic objects
catalog).Now these objects are customized from the editor and don't appear unconditionally on top of everything. The layers must be copied to their styles and placed in a similar order, so that all objects will display correctly with the new version of the SDK. To copy a layer, you can select the layers you want, press
Ctrl+C/Cmd+C
and open in the same window another style. -
The
Walker Marker
layer has been deleted. It also needs to be removed in its own styles. -
Changed layers for displaying entrances (layers
Entrances above houses
andEntrances below houses
). Now the data are not set via JSON, but the correct layers are selected in the tabData
. Also in the night theme, the font has been removed for the entrances under the houses, so that they are displayed without signatures. Need to make similar changes in their own styles. -
Added layers
Signatures of mountain ranges
andSignatures of platforms
to the directorySignatures of geo objects
in the night theme and layerGraffiti
in the directorySightseeing sights
. -
Added layers
Christmas bazaar
,Police
,Shower stall
,Tanzpol
to the daytime theme in the `Sightseeing' catalog. -
Changed the layers in the directory
Roads
, requires them to update their own styles.
-
v2.0.0-alpha.2
Release Date: July 13, 2021
- Added support for pedestrian routes with type
RoutingType.Pedestrian
. TheRouteInfo
class has an array with a description of all obstacles on a pedestrian routeRouteInfo.pedestrianObstacles
. - Added support for routes on public transport with type
RoutingType.Public
. - Implemented an interface
TerritoryManager
for downloading offline territories. - Added
NavigationVoice
andVoiceSelector
to select the voice and voice of the navigator. - Implemented
VoiceManager
for interaction with the list of the navigator's voice packages. - Implemented the basic functionality of managing floor plans through
Map.indoorManager
. - Added ability to get and set
zIndex
forSimpleMapObject
objects. - Added ability to specify which parts of the route are displayed on the map through
RouteMapObject.displayFlags
. - The
getLanesControlImages
function is now available to get a list of lane icons supplied with the SDK. - Updated the copyright logo on the map.
- Updated location marker in navigator when going off route.
- Change affecting backward compatibility. In class
RouteInfo
for route description now added whole TrafficRoute instead of route length.
v1.0.1
Release Date: July 8, 2021
🎉 First public release!🎉
-
Change affecting backward compatibility. Changed package names -
PlatformSDK
andPlatformMapSDK
renamed toDGis
regardless of build type. -
Reduced size of Map-version of SDK - removed work with offline directory and map data source.
For Map-version only
makeOnlineManager
method for creating online gazetteer remained inISearchManagerFactory
andmakeOfflineManager
andmakeSmartManager
are now available only in Full-version.For the Map-version, the
createOfflineDGISSource
method for creating offline map data source is removed inISourceFactory
. -
In
MapObjectManager
you can now enable clustering mode forMarker
objects.To initialize clustering, you need to create a
MapObjectManager
object usingMapObjectManager.withClustering(map:logicalPixel:maxZoom:clusterRenderer:)
.The fourth parameter is a custom implementation of the
ISimpleClusterRenderer
protocol to customize the rendering of clusters on the map. The customization itself is based on theSimpleClusterOptions
object which is returned by calling theISimpleClusterRenderer.renderCluster
function. -
With
TextStyle.textPlacement
andTextStyle.textOffset
it is now possible to set the position of the caption relative to the marker. -
Added ability to set camera tilt angle depending on scale -
ZoomToTiltRelation
,Camera.zoomToTiltRelation
. -
In
LogOptions
it became possible to set a custom logging handler. To do this, you need to implement theILogSink
protocol and pass an object toLogOptions.customSink
. -
Logging change: The
toMapGeometry(trafficRoute:currentRoutePoint:)
function has been renamed toremainingRouteGeometry(trafficRoute:currentRoutePoint:)
to get the geometry of the rest of the route. -
Optimized handling of network connections.
v0.16.1
Release Date: June 7, 2021
- Map default stylesheet updated - corrected size of lettering and icons.
v0.16.0
Release Date: June 2, 2021
-
When creating map objects it is now possible to set their rendering order with
MarkerOptions.zIndex
,PolygonOptions.zIndex
etc. The index value affects the priority of the object when the elements are overlaid on the map. -
Simplifying the creation of simple data types:
Arcdegree
,Color
,Elevation
,GeoPoint
,GeoPointWithElevation
,LogicalPixel
,Meter
,Tilt
andZoom
.For example, previously when creating an object of type
GeoPoint
it was necessary to construct objects of typeArcdegree
.let geoPoint = GeoPoint(latitude: Arcdegree(value: 54.0), longitude: Arcdegree(value: 32.0))
Initialization of
GeoPoint
is now available from a pair ofCLLocationDegrees
values.let geoPoint = GeoPoint(latitude: 54.0, longitude: 32.0)
. -
Added the ability to set a list of locales bypassing the system settings with
LocaleManager.setOverridedLocales
. To return to system locales, an empty list must be passed to theLocaleManager.setOverridedLocales
method. -
Added function
toMapGeometry(trafficRoute:currentRoutePoint:)
to get the geometry of the rest of the route. -
Fixed the map display when the z-level is zero.
-
Added ability to disable animation when objects appear or disappear on the map via
MarkerOptions.animatedAppearance
andMarker.setAnimatedAppearance
. -
Supported setting of correct DPI when creating a map. Now, besides DPI setting via
MapOptions.devicePPI
it is possible to setMapOptions.deviceDensity
- a multiplier equal to the number of physical pixels of device in one logical point of screen coordinate system. Because deviceDensity was not set, objects on the map at different z-levels had incorrect sizes.For example, for a given screen (
UIScreen
) this multiplier is equal to the value ofnativeScale
. By default, thenativeScale
of the main screen is taken. -
Change affecting backward compatibility. Removed the obsolete
MarkerBuilder
class for creating map objects. Instead, use classMapObjectManager
to add objects; constructorsMarker
,Polygon
etc. to create them.
v0.15.0
Release Date: May 25, 2021
-
Added the ability to check for the intersection of geometries -
Geometry.hasIntersection
. -
Added
autoUseFirstResult
attribute toSearchResult
, which indicates that the first element in the search result is the most suitable for the flight or building a route to it. -
Fixed a bug in the network caching mechanism, leading to slow writing of network responses to the device file system.
-
Change affecting backward compatibility. Changed the `MapObjectManager' interface.
Map objects are now created through the constructors
Marker
,Polygon
etc. instead ofMapObjectManager.addMarker
orMapObjectManager.addPolygon
.To add or remove map objects, you must now use the
MapObjectManager.addObjects/addObjects/removeObjects
etc. methods. When adding multiple objects, it is most effective to useMapObjectManager.addObjects
. -
Change affecting backward compatibility. Changed the order of the parameters of the
calcPosition
andzoomOutToFit
functions. -
Change affecting backward compatibility. The data collection service setting
DataCollectStatus
has been renamed toPersonalDataCollectionConsent
. -
Change affecting backward compatibility. In the
Container
constructor, thedataCollectStatus
parameter has also been renamed topersonalDataCollectionConsent
.
v0.14.0
Release Date: May 5, 2021
-
Fixed a bug when adding a marker to the map through the
MapObjectManager
.By default, the marker was pointing north. This was causing its rotation angle to depend on the rotation angle of the map.
Now the marker is pointing toward the top of the device screen regardless of map rotation.
-
Change affecting backward compatibility. The original marker rotation (
MarkerOptions.iconMapDirection
) and the existing marker rotation (Marker.iconMapDirection
) now have a null type ofMapDirection
.A null value means that the marker will point to the top of the device screen regardless of the map rotation.
v0.13.0
Release Date: April 30, 2021
- Added possibility to set marker rotation. Initial rotation -
MarkerOptions.iconMapDirection
; rotation of existing marker -Marker.iconMapDirection
. - The copyright on the map does not show the SDK version by default. To enable, you must set
MapView.showsAPIVersion
totrue
. - Added ability to get camera locations and directions in navigator:
Camera.geoPoint
,Camera.bearing
. - Added ability to set location point (
positionPoint
) incalcPosition
andzoomOutToFit
functions. - Change affecting backward compatibility. Many object creation functions have been replaced by initializers of the appropriate type.
For example:
createMapObjectManager
→MapObjectManager.init
;Geometry.createPoint
→PointGeometry.init
, etc.
v0.12.2
Release Date: April 24, 2021
- Fixed parameters when collecting statistics.
v0.12.1
Release Date: April 23, 2021
- Fixed the map display on different scales.
- Fixed the mechanism of statistics gathering.
- Fixed an issue with markers displacing each other at different scales.
- Set the minimum value of the zoom level to 2.
v0.12
Release Date: April 22, 2021
-
Fixed potential crash when passing
MapOptions
with non-zerostyleFuture
InContainer.makeMapFactory(options:)
. -
Fixed a potential crash when destroying map objects (
IMapFactory
). -
Fixed a single object leak when completely destroying the SDK container.
-
Improved handling of
CLLocation
objects inILocationProvider
protocol implementations.Previously, if a location contained both valid and invalid components (e.g., there were geo-coordinates but no velocity), the object was ignored as a whole. This was accompanied by the
Platform sent an invalid location
message in the log.Now in this case the correct components are taken into account. The message is written when, when a completely invalid location is sent to the SDK.
-
Added auto-detection of map PPI based on head unit model. See
DevicePpi.autodetected
. Default map settings (MapOptions.default
) use this PPI; in case of unsupported device is set toDevicePpi.defaultForFailedAutodetection
. -
The
DevicePpi
type now implements theExpressibleByFloatLiteral
protocol. -
Added ability to set map theme and enable auto-switching theme on iOS 13.
The new
Theme
type corresponds to a theme within a style. The newMapAppearance
type specifies set of themes and how to apply them:.universal
for a fixed theme;.automatic
for auto-switching between light and dark theme on iOS 13.The theme setting can be set in
MapOptions.appearance
when creating map by callingContainer.makeMapFactory(options:)
. Subsequent switching is available by setting theIMapView.appearance
property. -
Change affecting backward compatibility. Type
MapOptions.devicePpi
changed fromCGFloat?
toDevicePpi?
in order to improve documentation. -
Added collection of anonymous usage statistics. Enabled by default. See the
dataCollectionOptions
parameter ofContainer.init
. It's recommended to disable only in case of explicit user choice (e.g., GDPR waiver).
v0.11
Release Date: April 15, 2021
- Manage and retrieve information about HTTP cache -
HttpCacheManager
. - The non-static properties of most structures are made modifiable (i.e.
let
→var
). - Information about route lanes -
RouteInfo.laneSigns
. - Removed thin black border at map objects when it is not set.
- The
ScreenPoint
,ScreenSize
,ScreenShift
types implementEquatable
andHashable
. - Added constructors
ScreenPoint(_: CGPoint)
,ScreenSize(_: CGSize)
,ScreenShift(_: CGVector)
. - Change affecting backward compatibility
TextStyle.fontSize
,TextStyle.strokeWidth
are of typeLogicalPixel
, notFloat
. - Change affecting backward compatibility In the navigator model: instead of
Model.laneSign
nowModel.laneSignIndex
.LaneSign
can be obtained by this index fromRouteInfo.laneSigns
. - Change affecting backward compatibility A method for creating a custom gesture processing layer takes fewer parameters:
IMapGestureViewFactory.makeGestureView(map:coordinateSpace:)
. Removed theeventProcessor
parameter: theMap.processEvent
method should be used instead.
v0.10
Release Date: April 7, 2021
- Added a tool to get the last rendered map frame as an image -
IMapFactory.snapshotter.makeImage()
. removeSource
no longer throws an exception. Even if the source has not been added to the map.- Added a polyline with a gradient.
- Creation of a custom gesture recognition layer is now possible during map initialization, see
gestureViewFactory
byMapOptions
. - Change affecting backward compatibility have changed the type device associated with the map. The map must now be created by calling
Container.makeMapFactory(options:) -> IMapFactory
. The map controllermap
, map viewmapView
and other things are available from it. - Change affecting backward compatibility updated the GeoRect class.
- Change affecting backward compatibility we've changed the format for dealing with subscriptions to property changes. Previously fields like
Map.camera.position
were of typeStatefulChannel
. Before, we used to get notifications of property value changes throughcamera.position.sink(receiveValue:)
, and the current value throughcamera.position.value
. Such an API caused difficulties and was less efficient, so in the new version, for example,camera.position
is just a property of typeCameraPosition
; andcamera.positionChannel
isStatefulChannel<CameraPosition>
. This change is in effect for all properties previously of typeStatefulChannel
.
v0.9
Release Date: March 24, 2021
- Added the ability to draw dashed line.
- Opacity for Marker.
- Converters for working with Style Zoom(projectionZToStyleZ, styleZToProjectionZ).
- New type AttributeValue was added to handle map attributes.
- From DgisMapObject you can no longer get Future on a directory object. You need to use SearchManager.
- HTTP client settings: wait time, presence and size of disk cache.
- Possibility to set custom implementations of geopositioning services or disable them (e.g. for simulator).
v0.8
Release Date: March 17, 2021
- Added cache for tiles on the map. Configurable cache size will appear in next release.
- Padding on the map.
- Added ability to change current geometry for Polygon/Polyline objects.
- Added a source for raster tiles (see [createRasterTileData]). createRasterTileDataSource.
- Supported the theme attribute for map stylesheets unloaded from the editor.