Release notes
10.3.0 (2024-05-06)
🌟 Новые возможности
- Получаем обновленную информацию о пробочных данных в регионах независимо от обновления конфигурационного файла SDK.
- Теперь при zoom-уровне выше 2 карту нельзя сдвинуть для отображения пустых полос сверху и снизу.
- Арабский голосовой пакет для навигатора.
🛠 Исправления
- Исправлена работа кластеризации через
MapObjectManager.withClustering
, если изменялась позиция одного из маркеров черезMarker.position
. Теперь иерархия кластеров перестраивается, если позиция одного из составных маркеров изменилась. - Исправлена некорректная обработка тапа в
Marker
с lottie анимацией. Map.dataLoadingStateChannel
больше не зависает в состоянииloading
при режиме слежения за геопозицией.- Добавлен файл
PrivacyInfo.xcprivacy
.
❗ Ломающие изменения
- Заканчивается поддержка iOS 12 версии. Со следующей версии SDK работает только для iOS 13 и выше.
10.2.0 (2024-03-07)
🌟 Новые возможности
- Опции
CircleOptions.dashedStrokeOptions
иCircle.dashedStrokeOptions
для создания пунктирной окружности или добавления пунктира для уже созданной окружности. - Метод
RoadEventSource.setHighlighted
для выделения дорожных событий с идентификаторами изRoadEventMapObject.id
. - Функция
calculateClosestPoint
для получения ближайшей точки на маршруте относительно переданной точки.
🛠 Исправления
- Исправлена ошибка в работе
layedId
, который задается вMapObjectManager
: теперь он влияет на отображение кластеризованных маркеров. - Исправлен отрисовка карты: раньше карта зависала при отображении модального окна над
MapView
. - Исправлена работа карты при сворачивании приложения.
🗺 Изменения в стилях карты
- Для корректной работы пунктирных окружностей нужно заново выгрузить стили.
10.1.0 (2024-01-16)
🌟 Новые возможности
- Добавлена структура
DirectoryObject.buildingInfo
со справочной информацией о здании:buildingName
,purposeName
,purposeCode
иbuildingLevels
.DirectoryObject.buildingLevels
помеченоdeprecated
и будет удалено в будущих мажорных релизах. - Добавлен
DirectoryObject.address.fiasCode
- ФИАС-код объекта справочника. - В
DirectoryObject.address.components
в структурахAddressComponent.streetAddress
иAddressComponent.number
добавлено полеfiasCode
- ФИАС-код улицы.
Миграция с версий 7.x на 10.х
Для всех типов Mobile SDK:
- Заново выгрузить стили.
- Изменена работа с
FollowController
:- Методы
createRawMyLocationController
иcreateSmoothMyLocationController
удалены. Добавлен конструкторMyLocationController
для создания контроллера перемещения маркера геопозиции. - Теперь не нужно указывать источник направления, поэтому удалены значения
FollowBearing.satellite
иFollowBearing.magnetic
. Добавлено значениеFollowBearing.on
для включения слежения - источник выбирается автоматически. - Удалено поле
FollowPosition.tilt
. Слежение за наклоном теперь нужно включать отдельно. В конструкторCameraBehaviour
добавлен новый параметрtilt
для слежения за наклоном. Добавлен новый конструкторCameraBehaviour
с параметромtilt
для включения слежения только за наклоном. - Удалены значения
FollowValue.satelliteBearing
,FollowValue.magneticBearing
иFollowValue.accuracy
. Вместо них добавено значениеFollowValue.bearing
с автоматическим выбором источника. - Из интерфейса
CustomFollowController
удалены методыsatelliteBearing
,magneticBearing
иaccuracy
. Вместо этого добавлен методCustomFollowController.bearing
. - Из
FollowController
удалены методыsetClock
,satelliteBearing
,magneticBearing
иaccuracy
. Вместо этого добавлены методыonAddedToMap
,onRemovedFromMap
иbearing
. - Удален канал
FollowController.nextTimestampChannel
. Вместо этого добавленFollowController.changedChannel
. - Изменена сигнатура метода
FollowController.updateValues
. - Удален контроллер
PlatformLocationFollowController
. Вместо него добавлены контроллерыBearingFollowController
иCoordinatesFollowController
для слежения за направлением карты и за координатами позиции карты, соответственно. - Изменен конструктор контроллера
StyleZoomFollowController
. Удален методStyleZoomFollowController.setAnimationDuration
. - Изменен конструктор контроллера
TiltFollowController
. Удалены методыTiltFollowController.setTilt
иTiltFollowController.setAnimationDuration
. - Изменены параметры метода
FollowController.setThresholds
на типизированные. - Удален класс
FollowControllerClock
. Тип параметра в методеFollowController.setClock
заменен на timestamp. TransitionType
удален. КонструкторMyLocationControlModel
не принимаетtransitionType
. ПолеCameraBehaviour.transitionType
удалено. ПараметрtransitionType
удален из конструктораCameraBehaviour
.MyLocationDirectionBehaviour
удален. Конструктор источника геопозицииMyLocationMapObjectSource
не принимаетdirectionBehaviour
. МетодMyLocationMapObjectSource.setDirectionBehaviour
удален.
- Методы
- Удалено поле
BaseCamera.styleZoomToTiltRelation
. - Класс
MagneticHeadingProvider
переименован вHeadingProvider
. - Конструкторы динамических объектов
Circle
,Marker
,Polygon
иPolyline
помечены, как throws. - Удалена опция
MapOptions.mapRendererType
и enumMapRendererType
. Теперь всегда включен Metal для рендеринга карты. - Удалены сеттеры
Circle.position
иCircle.radius
. Вместо этого добавлены методыCircle.setPosition
иCircle.setRadius
, которые могут бросить исключение. - Структура
Locale
теперь создается на основе отдельных значений языкаlanguage
и регионаregion
. - Из MobileSDK Map сборки удалены
PackageManager
иPackage
, что уменьшило размер продукта.
Дополнительно для полной версии:
- Метод
Voice.playWelcome
теперь возвращает Future, который становится готовым, когда проигрывание сэмпла завершается. - Удалено поле
RoadSubtype.stairway
. Вместо него добавлены поляRoadSubtype.stairwayUp
иRoadSubtype.stairwayDown
для использования лестниц с явным направлением. - Удалено поле
NavigationFollowController.mapTiltController
. - Кидается исключение при попытке стартовать навигатор в режиме ведения или симуляции с маршрутом на общественном транспорте.
- Отключено кэширование тайлов
FreeRoam
при навигации. MyLocationMapObjectSource
для навигатора устанавливается внутриNavigationView
.
10.0.0 (2023-12-29)
🌟 Новые возможности
- Иммерсивные деревья на карте отображаются по умолчанию.
- Поддержана новая модель для отображения маркера текущего местоположения. Если необходимо переопределить иконку текущего местоположения, нужно передать
MyLocationMapObjectMarkerType.svgIcon
в конструкторMyLocationMapObjectSource
, а в стилях отредактировать соответствующий слой. - Добавлены
MarkerOptions.iconAnimationMode
иMarker.iconAnimationMode
для возможности задания режима анимации в маркерах. Режим может быть обычным или зацикленным. - Добавлены
SearchResult.actionWidgets
иSearchResult.mainWidgets
для динамической фильтрации уже полученной поисковой выдачи.Widget
- базовый класс, представляющий виджет для фильтрации поисковой выдачи. - В
LocaleManager
добавлены методыlocales
иsystemLocales
и соответствующие каналы для получения всех локалей приложения и системных локалей. - Добавлен метод
BaseCamera.changePosition
для изменения только части параметров позиции камеры. Метод принимает новую структуруCameraPositionChange
. - Добавлен метод
Camera.move
для запуска анимированного перемещения карты с возможностью сброса слежения за наклоном. - Добавлен параметр
styleZoomToTiltRelation
для функцийcalcPosition
иzoomOutToFit
- функция зависимости угла наклона камеры от стилевого zoom-уровня. - Добавлена новая функция
createDefaultStyleZoomToTiltRelation
для получения зависимости угла наклона камеры от стилевого zoom-уровня для стандартного контроллера слежения за наклоном. - Добавлена функция
createDefaultMaxTiltRestriction
для получения дефолтной зависимости ограничения угла наклона от масштаба. По умолчанию эта зависимость устанавливается при создании карты -BaseCamera.maxTiltRestriction
. - Добавлен enum
BearingSource
- источник направления. - Добавлено поле
PackedMapState.cameraBehaviour
для сериализации режима слежения камеры. - В
PackageInfo
добавлено полеerror
- ошибка, произошедшая при попытке загрузки и/или установки пакета. - Добавлен метод
IndoorManager.setIndoorState
для управления отображением этажных планов на карте. - Добавлено поле
NavigationManager.alternativeRouteSelector
для выбора альтернативного маршрута. - Добавлено поле
Route.bicycleLanes
- признак наличия выделенной велополосы. - Добавлено значение
RoutePointKind.bicycleLane
- начало и конец велополосы. - Добавлен флаг
PedestrianRouteSearchOptions.avoidUnderpassesAndOverpasses
- избегать подземных и надземных переходов. - Добавлен метод
RouteMapObjectSource.replaceObject
для замены одного объекта маршрута в источнике на другой. - Добавлено поле
NavigationFollowController.mapLocationController
.MapLocationController
- контроллер для управления позиционированием карты в навигаторе. - Добавлено поле
NavigationFollowController.cameraBehaviour
для возможности менять режим слежения карты за маркером геопозиции. - Добавлено поле
ZoomFollowSettings.speedRangeToStyleZoomFreeRoamSequence
- последовательность интервалов скоростей и соответствующих им масштабов при ведении в режиме FreeRoam.
❗ Ломающие изменения
- Изменена работа с
FollowController
:- Методы
createRawMyLocationController
иcreateSmoothMyLocationController
удалены. Добавлен конструкторMyLocationController
для создания контроллера перемещения маркера геопозиции. - Теперь не нужно указывать источник направления, поэтому удалены значения
FollowBearing.satellite
иFollowBearing.magnetic
. Добавлено значениеFollowBearing.on
для включения слежения - источник выбирается автоматически. - Удалено поле
FollowPosition.tilt
. Слежение за наклоном теперь нужно включать отдельно. В конструкторCameraBehaviour
добавлен новый параметрtilt
для слежения за наклоном. Добавлен новый конструкторCameraBehaviour
с параметромtilt
для включения слежения только за наклоном. - Удалены значения
FollowValue.satelliteBearing
,FollowValue.magneticBearing
иFollowValue.accuracy
. Вместо них добавено значениеFollowValue.bearing
с автоматическим выбором источника. - Из интерфейса
CustomFollowController
удалены методыsatelliteBearing
,magneticBearing
иaccuracy
. Вместо этого добавлен методCustomFollowController.bearing
. - Из
FollowController
удалены методыsetClock
,satelliteBearing
,magneticBearing
иaccuracy
. Вместо этого добавлены методыonAddedToMap
,onRemovedFromMap
иbearing
. - Удален канал
FollowController.nextTimestampChannel
. Вместо этого добавленFollowController.changedChannel
. - Изменена сигнатура метода
FollowController.updateValues
. - Удален контроллер
PlatformLocationFollowController
. Вместо него добавлены контроллерыBearingFollowController
иCoordinatesFollowController
для слежения за направлением карты и за координатами позиции карты, соответственно. - Изменен конструктор контроллера
StyleZoomFollowController
. Удален методStyleZoomFollowController.setAnimationDuration
. - Изменен конструктор контроллера
TiltFollowController
. Удалены методыTiltFollowController.setTilt
иTiltFollowController.setAnimationDuration
. - Изменены параметры метода
FollowController.setThresholds
на типизированные. - Удален класс
FollowControllerClock
. Тип параметра в методеFollowController.setClock
заменен на timestamp. TransitionType
удален. КонструкторMyLocationControlModel
не принимаетtransitionType
. ПолеCameraBehaviour.transitionType
удалено. ПараметрtransitionType
удален из конструктораCameraBehaviour
.MyLocationDirectionBehaviour
удален. Конструктор источника геопозицииMyLocationMapObjectSource
не принимаетdirectionBehaviour
. МетодMyLocationMapObjectSource.setDirectionBehaviour
удален.
- Методы
- Удалено поле
BaseCamera.styleZoomToTiltRelation
. - Класс
MagneticHeadingProvider
переименован вHeadingProvider
. - Конструкторы динамических объектов
Circle
,Marker
,Polygon
иPolyline
помечены, какthrows
. - Удалена опция
MapOptions.mapRendererType
и enumMapRendererType
. Теперь всегда включен Metal для рендеринга карты. - Удалены сеттеры
Circle.position
иCircle.radius
. Вместо этого добавлены методыCircle.setPosition
иCircle.setRadius
, которые могут бросить исключение. - Структура
Locale
теперь создается на основе отдельных значений языкаlanguage
и регионаregion
. - Из MobileSDK Map сборки удалены
PackageManager
иPackage
, что уменьшило размер продукта. - Метод
Voice.playWelcome
теперь возвращает Future, который становится готовым, когда проигрывание сэмпла завершается. - Удалено поле
RoadSubtype.stairway
. Вместо него добавлены поляRoadSubtype.stairwayUp
иRoadSubtype.stairwayDown
для использования лестниц с явным направлением. - Удалено поле
NavigationFollowController.mapTiltController
. - Кидается исключение при попытке стартовать навигатор в режиме ведения или симуляции с маршрутом на общественном транспорте.
- Отключено кэширование тайлов
FreeRoam
при навигации. MyLocationMapObjectSource
для навигатора устанавливается внутриNavigationView
.
❗ Известные ошибки
- При частом обновлении динамических объектов (около 100 FPS) зависает карта.
🛠 Исправления
- Оптимизирована перерисовка кадров карты при любых изменениях.
- Исправлено отображение пробок на карте в зависимости от zoom-уровня.
- Исправлено неплавное обновление маркера геопозиции.
- Оптимизировано и исправлено отображение карты на последних версиях iOS.
- Исправлена работа метода
SimpleClusterObject.setIcon
при первом вызове. - Исправлена работа кластеризации через
MapObjectManager.withClustering
, если передать дробные значенияminZoom
иmaxZoom
. - Обновлен логотип 2GIS в копирайте на снапшотах карты.
- Теперь бросается корректное исключение, если в карту загрузить битые стили.
- При установке в
MapOptions.appearance
значенияMapAppearance.default
будет устанавливаться дневная тема по умолчанию. - При расчёте дистанции для проигрывания предварительной инструкции о манёвре учитывается полосность.
- При проигрывании финишной фразы в режиме навигатора учитывается пеший маршрут.
- Исправлена ошибка, при которой баблы полосности не отображают направление маршрута.
- Исправлено формирование баблов полосности, чтобы не учитывалось ограничение по скорости.
- Исправлено отображение баблов автобусной полосы, идущей прямо, со знаком "Въезд запрещен" для остального транспорта.
- Не убирается предложенный маршрут лучше с карты, если пользователь явно отказался переходить на него.
- Убирается с карты альтернативные маршруты, от развилки с которыми уже слежение уехало слишком далеко, даже если к ним всё ещё можно притянуться.
- Откидываются альтернативные маршруты, ответвляющиеся от основного маршрута в одной и той же точке и идущие в одну и ту же сторону.
- Отзыв предложения маршрута лучше в случае, когда после обновления пробочных данных маршрут лучше перестаёт быть таковым.
- Не озвучиваются предупреждения о камерах-муляжах.
- В
NavigationView
при отображении полного маршрута отображается только оставшаяся часть маршрута. - По умолчанию отключено кэширование тайлов
FreeRoam
при навигации для уменьшения запросов к бэкендам.
🗺 Изменения в стилях карты
- Добавлены стили светофоров.
- Добавлены иммерсивные модели деревьев и зданий.
- Поддержаны новые ветки Московского метро МЦД-3 и МЦД-4.
- Оптимизированы модели иммерсивных деревьев.
- Добавлена новая модель для отображения маркера текущего местоположения.
7.4.1 (2023-12-29)
🛠 Исправления
- Исправлен рендеринг карты - карта зависала при отображении модального окна над
MapView
.
7.4.0 (2023-11-15)
🌟 Новые возможности
- Добавлены
MarkerOptions.iconAnimationMode
иMarker.iconAnimationMode
для возможности задания режима анимации в маркерах. Режим может быть обычным или зацикленным.
🛠 Исправления
- Оптимизировано и исправлено отображение карты на последних версиях iOS.
- Исправлена работа метода
SimpleClusterObject.setIcon
при первом вызове. - Исправлена работа кластеризации через
MapObjectManager.withClustering
, если передать дробные значенияminZoom
иmaxZoom
. - Обновлен логотип 2GIS в копирайте на снапшотах карты.
- В
NavigationView
при отображении полного маршрута отображается только оставшаяся часть маршрута. - По умолчанию отключено кэширование тайлов
FreeRoam
при навигации для уменьшения запросов к бэкендам.
7.3.1 (2023-08-16)
🛠 Исправления
- Теперь при формировании запроса в справочник через
SearchQueryBuilder
для определения локали всегда берется первое значение из методаLocaleManager.locales
, если не удалось определить локаль по области поиска.
7.3.0 (2023-08-07)
🛠 Исправления
- Теперь при формировании запроса в справочник через
SearchQueryBuilder
для определения локали не используется текущая геопозиция пользователя, а берется первое значение из методаLocaleManager.locales
, если вSearchQueryBuilder
явно не задана область для поиска. - Исправлена ошибка, возникающая при обращении к полям
SimpleClusterObject
при формировании кластера в реализации методаSimpleClusterRenderer.renderCluster
.
7.2.1 (2023-07-31)
🌟 Новые возможности
- Добавлены два метода
SearchQueryBuilder.fromRubricIds
иSearchQueryBuilder.fromQueryTextAndRubricIds
для создания поисковых запросов с фильтрацией по идентификаторам рубрик. - Добавлено новое поле
DirectoryObject.tradeLicense
с информацией о лицензии организации.
7.1.0 (2023-07-20)
🛠 Исправления
- Поддержана работа справочника с новым форматом ключей.
- Исправлено получение snapshot карты методом
IMapSnapshotter.makeImage
при переходе приложения из состояния background в foreground. - Исправлен расчет оставшегося рабочего времени организации в
Directory.workStatus
при офлайн поиске. - Контрол
TUGC
в режимеFreeRoam
доступен только при добавленииRoadEventSource
на карту.
5.4.0 (2023-07-20)
🛠 Исправления
- Поддержана работа справочника с новым форматом ключей.
- Исправлено получение snapshot карты методом
IMapSnapshotter.makeImage
при переходе приложения из состояния background в foreground.
5.3.0 (2023-06-19)
🌟 Новые возможности
- Появилась возможность задавать исключаемые области при поиске маршрутов через
ExcludedArea
. - В
INavigationView
добавлено отображение названия организации назначения при Indoor навигации.
🛠 Исправления
- Исправлена ошибка при двойном тапе в карту и резком изменении масштаба.
- Исправлено потенциальное падение при добавлении маркера на карту с подписью через
Marker
. - В
INavigationView
исправлено скрывание контролов карты через 10 секунд в случае, если пользователь не взаимодействует с картой. - В
INavigationView
исправлена кнопка добавления TUGC на карту на панели ETA.
Миграция с версий 5.x на 7.х
Для всех типов Mobile SDK:
- Заново выгрузить стили.
- Методы
DgisSource.createOnlineDgisSource
иDgisSource.createOfflineDgisSource
удалены. Вместо них нужно использоватьDgisSource.createDgisSource
с дополнительным параметромDgisSourceWorkingMode
- режим работы карты. Сейчас доступно четыре режима работы:online
,offline
,hybridOnlineFirst
иhybridOfflineFirst
. FollowController
теперь возвращаетStyleZoom
, а неZoom
.FollowValue.zoom
переименован вFollowValue.styleZoom
.ZoomFollowController
переименован вStyleZoomFollowController
.ZoomToTiltRelation
переименован вStyleZoomToTiltRelation
.SpeedRangeToZoom
переименован вSpeedRangeToStyleZoom
.- Метод
Projection.screenToMap
теперь вместо исключения возвращает пустое значение, если точка находится за пределами карты. - Метод
BaseCamera.setPadding
удален. EnumCameraPositionPointChangeBehaviour
также удален. ПолеBaseCamera.padding
теперь является сеттером. - Методы
Camera.animatedMoveStarted
иCamera.animatedMoveFinished
удалены. Вместо них можно использовать каналCamera.stateChannel
. - Методы
SearchManager.createOnlineManager
,SearchManager.createOfflineManager
иSearchManager.createSmartManager
помечены какthrows
. - Сеттеры
BaseCamera.position
иBaseCamera.zoomRestrictions
удалены. МетодыBaseCamera.setPosition
,BaseCamera.setZoomRestrictions
иBaseCamera.setPositionPoint
помечены какthrows
. - Сеттер
Map.fontIconSizeMultiplier
удален. МетодMap.setFontIconSizeMultiplier
помечен какthrows
. - Конструктор
NavigationManager
и методыNavigationManager.start
иNavigationManager.startSimulation
помечены какthrows
. - Геттер
Container.context
помечен какthrows
. Так же помечены все остальные методы-фабрикиContainer
.
Дополнительно для полной версии:
- Изменены названия в
ZoomFollowSettings
, чтобы лучше соответствовать назначению. - Метод
Model.applyBetterRoute
удален. Вместо него появился методModel.betterRouteResponse
и enumBetterRouteResponse
для работы с альтернативными маршрутами. - Удалено значение
State.freeRoam
. Теперь для определения, что навигатор в режиме Free Roam, нужно смотреть на значениеRouteInfo.routeBuildOptions
- оно должно быть пустым.
7.0.0 (2023-06-16)
🌟 Новые возможности
- Добавлена возможность устанавливать Lottie-анимацию у маркера через
Marker.icon
. ВIImageFactory
добавлен метод для полученияImage
c Lottie-данными. - Добавлена UI-модель
IndoorControlModel
для реализации контрола этажных плановIndoorControl
. - В
SearchResult
добавлено полеdynamicFilters
- динамические фильтры, которые можно дополнительно применить для поисковой выдачи. - В
DirectoryFilter
добавлено полеdynamic
для передачи динамических фильтров. - Добавлен метод
BaseCamera.maxTiltRestriction
для задания и получения функции зависимости максимального угла наклона камеры от стилевого zoom-уровня. - Добавлена возможность создать
MapObjectManager
с генерализацией объектов черезMapObjectManager.withGeneralization
. - Добавлен метод
Projection.screenToMapClipped
, который возвращает ближайшую точку карты к проекции указанной точки экрана. - В режиме навигатора теперь отображаются альтернативные маршруты, которые могут быть предложены как маршрут лучше.
Model.betterRouteChannel
— канал для оповещений о появлении альтернативного маршрута.Model.betterRouteResponse
— метод для подтверждения альтернативного маршрута. Маршруты настраиваются с помощьюNavigationManager.alternativeRoutesProviderSettings
. - Добавлен метод
Voice.playWelcome
для воспроизведения образца голоса в навигаторе. - В
RoutePointKind
добавлено больше типов для идентификации точечных объектов на маршруте. - Появилась возможность задавать исключаемые области при поиске маршрутов через
ExcludedArea
. - В
INavigationView
добавлено отображение названия организации назначения при Indoor навигации.
❗ Ломающие изменения
- Методы
DgisSource.createOnlineDgisSource
иDgisSource.createOfflineDgisSource
удалены. Вместо них нужно использоватьDgisSource.createDgisSource
с дополнительным параметромDgisSourceWorkingMode
- режим работы карты. Сейчас доступно четыре режима работы:online
,offline
,hybridOnlineFirst
иhybridOfflineFirst
. FollowController
теперь возвращаетStyleZoom
, а неZoom
.FollowValue.zoom
переименован вFollowValue.styleZoom
.ZoomFollowController
переименован вStyleZoomFollowController
.ZoomToTiltRelation
переименован вStyleZoomToTiltRelation
.SpeedRangeToZoom
переименован вSpeedRangeToStyleZoom
.- Метод
Projection.screenToMap
теперь вместо исключения возвращает пустое значение, если точка находится за пределами карты. - Метод
BaseCamera.setPadding
удален. EnumCameraPositionPointChangeBehaviour
также удален. ПолеBaseCamera.padding
теперь является сеттером. - Методы
Camera.animatedMoveStarted
иCamera.animatedMoveFinished
удалены. Вместо них можно использовать каналCamera.stateChannel
. - Методы
SearchManager.createOnlineManager
,SearchManager.createOfflineManager
иSearchManager.createSmartManager
помечены, как throws. - Сеттеры
BaseCamera.position
иBaseCamera.zoomRestrictions
удалены. МетодыBaseCamera.setPosition
,BaseCamera.setZoomRestrictions
иBaseCamera.setPositionPoint
помечены, как throws. - Сеттер
Map.fontIconSizeMultiplier
удален. МетодMap.setFontIconSizeMultiplier
помечен, как throws. - Конструктор
NavigationManager
и методыNavigationManager.start
иNavigationManager.startSimulation
помечены, как throws. - Геттер
Container.context
помечен, как throws. Также помечены все остальные методы-фабрикиContainer
. - Изменены названия в
ZoomFollowSettings
, чтобы лучше соответствовать назначению. - Метод
Model.applyBetterRoute
удален. Вместо него появился методModel.betterRouteResponse
и enumBetterRouteResponse
для работы с альтернативными маршрутами. - Удалено значение
State.freeRoam
. Теперь для определения, что навигатор в режиме Free Roam, нужно смотреть на значениеRouteInfo.routeBuildOptions
- оно должно быть пустым.
🛠 Исправления
- Уменьшен размер Full сборки за счет уменьшения зависимости Offline справочника от других модулей.
- Исправлены утечки памяти при разрушении карты с активным перелётом.
- Оптимизировали использование одного источника данных
DgisSource
, добавленного в 2 и более объектовMap
. - Исправили работу канала
Map.dataLoadingStateChannel
, который теперь учитывает любую работу с картой (добавление объектов, изменение темы, добавление источников данных и т.д.). - В случаях, когда точка позиции камеры расположена ближе к нижнему краю экрана, значение максимального угла наклона камеры может быть уменьшено.
- Исправлена ошибка при двойном тапе в карту и резком изменении масштаба.
- Теперь маршрут не будет отображаться на карте в режиме навигации до появления позиции на нем.
- Исправлен возврат в режим слежения при работе навигатора по умолчанию.
- В
INavigationView
исправлено скрывание контролов карты через 10 секунд в случае, если пользователь не взаимодействует с картой. - В
INavigationView
исправлена кнопка добавления TUGC на карту на панели ETA.
🗺 Изменения в стилях карты
- Добавлена поддержка иконки
автобус + знак "Въезд запрещен"
в баблах полосности. - Установлены цвета для градиента линии неактивного маршрута.
5.2.2 (2023-04-26)
🛠 Исправления
- Исправили падение, когда в ключе указаны ограничения по регионам, у которых нет офлайн-данных.
5.2.1 (2023-03-27)
🛠 Исправления
- Исправлено потенциальное падение при вращении карты.
- Исправлено потенциальное падение при анимации появления маркеров с SVG изображением.
5.2.0 (2023-03-16)
🌟 Новые возможности
- В метод
DgisSource.setHighlighted
теперь можно передавать идентификаторы входов в здание для их выделения/снятия выделения.
🛠 Исправления
- Исправлено отображение маркеров с SVG изображением.
🗺 Изменения в стилях карты
- У слоёв
Parking lots with unknown price
,Parking for persons with disabilities
,Parking for residents
,Parking for taxi
,Free parking
иCovered parking
поменялся размер иконки. - В ночной теме в каталоге
POI icons
у слоёвAirport
,Railway station
,Bus terminal
иPort
поменялся цвет подписи. - Изменения для выделенного состояния:
- Цвета заливки и обводки: каталог
Flat buildings
. - Цвета заливки верхней плоскости, стены и обводки: каталог
Building 3D
. - Иконка: слои
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
,Covered parking
. - Иконка: каталоги
Sights
(кроме слояPark
в ночной теме),POI icons
(только в дневной теме),Transport landmarks
(только в дневной теме),Public transport stops icons
(кроме слоёвRailway station point
иStop point
). - Размер иконки: каталоги
Parking lots bubbles
(слоиPaid parking
,Parking lots with unknown price
,Parking for residents
,Parking for persons with disabilities
,Parking for taxi
,Free parking
),POI icons
(только в ночной теме),Transport landmarks
(только в ночной теме), слойPark
каталогаSights
(только в ночной теме). - Иконка и цвет подписи: каталог
Metro stations icons
(кроме слоёвMCD 1
,MCD 2
),Metro exits icons
(кроме слоёвMCD 1
,MCD 2
). - Размер иконки и цвет подписи: каталог
Metro stations icons
(слоиMCD 1
,MCD 2
),Metro exits icons
(слоиMCD 1
,MCD 2
). - Цвет заливки и ширина линии: каталог
Roads
в дневной теме (кромеWalkways
,Intercity, background
,Federal, background
). - Цвет заливки: каталог
Roads
в ночной теме, каталогRoads
в дневной теме (слойWalkways
).
- Цвета заливки и обводки: каталог
- Добавился слой
Entrances, arrows
только с выделенным состоянием.
5.1.2 (2023-02-15)
🛠 Исправления
- Исправлено падение при уничтожении объекта
Context
. - Исправлено падение, когда не удалось закэшировать тайлы карты.
5.1.0 (2023-01-11)
🌟 Новые возможности
- В метод
calcPosition
добавлен параметрsize
- размер карты.
🛠 Исправления
- Исправлена ошибка, при которой настройка
HTTPOptions.timeout
никак не влияла на таймаут запросов черезOnlineSearchManager
/SmartSearchManager
. - Удалено появление
OpenStreetMap
в копирайте. - Исправлено падение при навигации в случае, если голосовой инструкции нет в пакете данных.
- Исправлено определение локали при формировании запросов через
OnlineSearchManager
.
5.0.2 (2022-12-26)
🛠 Исправления
- Исправлена проблема, когда после удаления
MapView
не удалялся объектMap
. - Исправлено отображение панели ETA в
NavigationView
при переходе вIndoor
режим.
5.0.1 (2022-12-08)
🛠 Исправления
- Исправлена проблема, при которой после завершения навигации оставался периодический перелет к текущему местоположению, если камера находилась в состоянии покоя.
5.0.0 (2022-12-06)
🌟 Новые возможности
- Отказались от использования OpenGL в качестве графического API в пользу Apple Metal по причине нестабильной работы OpenGL на устройствах с процессорами M1 и новее.
- Добавлена пешая навигация в здании. Включается, когда маршрут построен с учетом этажей (с флагом
PedestrianRouteSearchOptions.useIndoor
) при входе в здание. UI навигатора меняется - отображается контрол переключения этажей с пометками, через какие этажи проходит маршрут, в нижней панели отображается номер этажа точки назначения. ВNavigationManager
добавленIndoorDetector
для определения нахождения пользователя в помещении в режиме навигации. - Добавлена возможность поиска и отображения пешеходных маршрутов в зданиях с этажными планами.
- При поиске должно быть включено
PedestrianRouteSearchOptions.useIndoor
(по умолчанию включено). - Маршрут в здании отображается пунктиром на активном этаже, а при включенном
RouteMapObjectDisplayFlag.inactiveFloors
- на всех этажах. - На переходах между этажами отображаются иконки с инструкциями, их видимостью управляет
RouteMapObjectDisplayFlag.indoorInstructions
. - Получить информацию об этажах, через которые проходит маршрут, можно с помощью
Route.levels
.
- При поиске должно быть включено
- Добавлен класс
BaseCamera
для хранения основных настроек камеры. КлассCamera
является наследникомBaseCamera
. ВBaseCamera
также добавлен методclone
для копирования камеры. - Добавлены перегрузки для методов
zoomOutToFit
иcalcPosition
, принимающие вместо геометрий массив объектов картыSimpleMapObject
. - Добавлен метод быстрого получения базовой информации о маршрутах (время в пути, длина и др.) без их построения -
TrafficRouter.findBriefRouteInfos
. - Добавлен поиск проезда на самокатах. Для этого необходимо задать
ScooterRouteSearchOptions
вTrafficRouter.findRoute
. - Добавлена информация об уровне высот на маршруте -
Route.altitudes
. - Добавлена информация о запретах перемещения по маршруту -
Route.truckRestrictedAreas
,Route.vehicleRestrictedAreas
. - Добавлена возможность "съедать" маршрут с любого конца -
RouteMapObject.passedDistanceVisualization
. - Добавлен метод для одновременного задания нескольких отображаемых маршрутов
RouteMapObject.replaceAllObjects
. - Добавлены настройки отображения баблов на маршруте
RouteMapObject.calloutLabelFlags
,RouteMapObject.calloutLabelDisplayMode
. - Появилась возможность не скрывать некоторые элементы маршрута по мере его "съедания" -
RouteMapObject.permanentDisplayFlags
. - Добавлен класс для управления слежением карты за маркером геопозиции в навигаторе -
NavigationFollowController
. - Добавлена возможность получить бабл маршрута через
Map.getRenderedObject
, возвращаемый объект имеет типRouteInfoCalloutMapObject
. - Улучшена работа
SmartSearchManager
- теперь при любых исключениях вOnlineSearchManager
происходит переключение наOfflineSearchManager
. - В
MapGestureViewOptions
появился параметрpinchScalingCenter
для задания точки на экране, относительно которой происходит масштабирование карты при жесте изменения масштаба. - Появилась возможность задавать идентификатор для запросов в WebAPI для On-Premise ключей.
- Обновлен логотип 2GIS в копирайте на карте.
- В
NavigationViewOptions
появился флагroadEventCreationEnabled
для отключения контрола дорожных событий. - Поддержка PPI всех моделей iPhone 14 и iPad.
- В
DGis.Container
добавлено свойствоlocationService
- реализация протоколаILocationService
для получения последнего известного местоположения пользователя. - Реализованы методы
IMapView.addObjectTappedCallback
,IMapView.addObjectLongPressCallback
,IMapView.removeObjectTappedCallback
,IMapView.removeLongPressCallback
для добавления и удаленияMapObjectTappedCallback
- обработчиков тапа и долгого нажатия на карту. - В
INavigationViewFactory
добавлен методmakeNavigationView
с дополнительными параметрамиINavigationViewControlsFactory
иINavigationMapControlsFactory
для переопределения контролов навигатора и контролов карты в навигаторе. Все контролы теперь публичные. - В
INavigationViewFactory
добавлены методыmakeNavigationViewControlsFactory
иmakeNavigationMapControlsFactory
для получения фабрик контролов навигатора и контролов карты в навигаторе, соответственно.
❗ Ломающие изменения
- Изменена сигнатура методов
zoomOutToFit
иcalcPosition
.zoomOutToFit
теперь принимает только камеру и геометрию. ВcalcPosition
теперь помимо камеры и геометрии можно передать активную область, угол наклона и поворота карты, поэтому теперь необязательно предварительно настраивать камеру для расчета позиции. - Удален
RoutePosition
- избыточный класс, вместо него используетсяRoutePoint
. - Удалено
Model.cameraProgressChannel
, вместо него необходимо использовать классCameraNotifier
. Traffic.durations
теперь имеет типMillisecondsRouteAttribute
вместоSecondsRouteLongAttribute
и большую точность значений.Route.obstacles
теперь имеет типObstacleInfoRouteAttribute
и помимо типа препятствия содержит дополнительную информацию.- Конструктор
ZoomFollowController
теперь принимает параметромMap
. - В
MapView
были удалены методыosmCopyrightAnimationDuration
иshowOSMCopyright
.
🛠 Исправления
- Увеличена точность отображения оставшегося времени в пути в навигаторе.
- В случае пустого результата
OfflineSearchManager
не кидает исключение, а возвращает пустой список. - У
INavigationView
при старте навигатора изменили zoom-уровень камеры, приближенный к основному приложению 2ГИС. - В
INavigationView
исправлена работа контрола ограничения скорости - теперь нулевое ограничение не отображается. - После завершения навигации в
INavigationView
камера возвращается к исходным настройкам. - Более корректное вычисление точки расхождения между основным маршрутом и маршрутом лучше.
- Исправлена работа контрола компаса
CompassControl
. - Исправлено определение локали в поисковых запросах. Теперь регион определяется через область интереса или текущее местоположение пользователя.
- Добавлена проверка на добавление пользовательских маркеров с пустым изображением.
- Исправлена проблема, при которой маршрут лучше исчезал вместе с панелью выбора маршрута по истечению таймаута.
🗺 Изменения в стилях карты
- У пешего маршрута (группа Pedestrian route line) и объектов на маршруте (Point A, Point B, Route joints, Intermediate route points в группе Dynamic objects) добавлена логика отображения на этажах.
- Добавлены инструкции навигации в здании - группа Indoor instructions.
- Cлой "Point A" теперь не отображается в режиме навигации.
- Выключено отображение слоёв "Region border" и "Regions".
- Установлены цвета для градиента линии неактивного маршрута.
- Исправлен селектор для платных парковок.
- Слои "Intermediate route points", "Route joints", "Point A", "Point B" теперь сразу после слоя "Location precision radius".
Миграция с версий 4.x на 5.х
Для всех типов Mobile SDK:
- Изменена сигнатура методов
zoomOutToFit
иcalcPosition
.zoomOutToFit
теперь принимает только камеру и геометрию. ВcalcPosition
теперь помимо камеры и геометрии можно передать активную область, угол наклона и поворота карты, поэтому теперь необязательно предварительно настраивать камеру для расчета позиции. - Конструктор
ZoomFollowController
теперь принимает параметромMap
. - В
MapView
были удалены методыosmCopyrightAnimationDuration
иshowOSMCopyright
.
Дополнительно для полной версии:
- Удален
RoutePosition
- избыточный класс, вместо него используетсяRoutePoint
. - Удалено
Model.cameraProgressChannel
, вместо него необходимо использовать классCameraNotifier
. Traffic.durations
теперь имеет типMillisecondsRouteAttribute
вместоSecondsRouteLongAttribute
и большую точность значений.Route.obstacles
теперь имеет типObstacleInfoRouteAttribute
и помимо типа препятствия содержит дополнительную информацию.