Release notes
12.2.0 (2024-11-15)
🌟 Новые возможности
- AnimationSettings — класс для настройки анимаций объектов карты. Применяется для объектов с типами слоя
3D model
иDirectional model
. - MyLocationMapObject.animationSettings — возможность настройки анимаций для маркера геопозиции, если в качестве модели в стилях загружена анимированная модель.
- MyLocationMapObject.objectAttributes — возможность настройки атрибутов стилей для маркера геопозиции. Возможные значения атрибутов можно увидеть в стилях для соответствующего слоя.
- RoadEventMapObject.animationSettings — возможность настройки анимаций для дорожных событий, если в качестве модели в стилях загружена анимированная модель.
- RoadEvent.id — идентификатор дорожного события из сервиса TUGC.
- ParkingControlModel — модель для удобного переключения видимости парковок на карте.
- ItemMarkerInfo.rubricIds — идентификаторы рубрик объекта маркера.
- TextHorizontalAlignment — настройка для выравнивания надписи по горизонтали в Marker через TextStyle.
- Определены операторы для Longitude и Latitude.
- SwiftUI MapViewMarker и MapMarkerViewOverlay - UI-элементы для добавления пользовательских SwiftUI View в качестве маркеров на карту.
- SwiftUI SpeedView - UI-элемент для отображения скорости в режиме навигации.
- RouteMapObjectsProvider и NavigationManager.routeMapObjectsProvider — класс для получения объектов маршрута на карте.
- RouteMapObject.roadEventObjects — дорожные события на карте для соответствующего маршрута.
- MyLocationMapObjectSourceProvider и NavigationManager.myLocationMapObjectSourceProvider — класс для получения источника маркера геопозиции в навигаторе.
🛠 Исправления
- Доработан механизм получения названия объекта маркера ItemMarkerInfo.title. Теперь учитывается, что маркер может быть без названия.
- Исправлена потенциальная проблема при инициализации карты, когда стиль устанавливался раньше, чем завершался процесс инициализации.
- Исправлено потенциальное зависание в MapObjectManager при частом добавлении и удалении объектов через метод MapObjectManager.removeAndAddObjects.
- Добавлена дополнительная проверка на корректность обработки жеста наклона карты, чтобы это не приводило к падению приложения.
- Исправлена ошибка, при которой приложение падало при логировании сетевых запросов.
- Исправлена ошибка, при которой MapViewOverlay работал с прерыванием при взаимодействии с картой.
- Исправлена работа SwiftUI-элементов для карты, которые пересоздавались при каждом обновлении интерфейса.
- Исправлена ошибка, при которой для некоторых регионов не работало отображение дорожных событий на карте.
- Исправлено отображение стрелок маршрута относительно иммерсивных дорог реальной ширины в режиме навигатора.
- Исправлена потенциальная проблема, при которой не отображались баблы полосности на маршруте в режиме навигатора.
🗺 Изменения в стилях карты
- Исправлены ошибки в стилях при отображении маркера геопозиции в режиме навигатора с иммерсивными дорогами реальной ширины.
- Исправлены ошибки в стилях при отображении этажных планов зданий.
10.8.0 (2024-11-02)
🛠 Исправления
- Исправлено потенциальное зависание в MapObjectManager при частом добавлении и удалении объектов через метод MapObjectManager.removeAndAddObjects.
- Добавлена дополнительная проверка на корректность обработки жеста наклона карты, чтобы это не приводило к падению приложения.
- Исправлена ошибка, при которой приложение падало при логировании сетевых запросов.
- Исправлена ошибка, при которой MapViewOverlay работал с прерыванием при взаимодействии с картой.
- Исправлена работа SwiftUI-элементов для карты, которые пересоздавались при каждом обновлении интерфейса.
- Исправлена ошибка, при которой для некоторых регионов не работало отображение дорожных событий на карте.
12.1.0 (2024-09-24)
🌟 Новые возможности
- ItemMarkerInfo.title — название объекта маркера.
- DirectoryObject.chargingStation — информация о станциях зарядки электромобилей в объекте справочника.
- Voice.playWelcome — метод для воспроизведения образца голоса.
🛠 Исправления
- DgisSource.createDgisSource теперь возвращает гибридный источник тайлов карты по умолчанию в
Full
версии SDK. - Различные улучшения работы иммерсивных дорог реальной ширины в режиме навигатора.
🗺 Изменения в стилях карты
- Исправлены ошибки в стилях при отображении иммерсивных дорог реальной ширины.
- Исправлено отображение тумана при различных углах наклона карты.
12.0.0 (2024-08-19)
🌟 Новые возможности
-
Иммерсивные дороги реальной ширины отображаются в режиме навигации, если:
- Поле Map.graphicsPreset установлено в значении
IMMERSIVE
. HttpCache
включен с помощью HttpOptions.useCache.
На текущий момент дороги реальной ширины доступны только в некоторых крупных городах России, ОАЭ и Саудовской Аравии.
- Поле Map.graphicsPreset установлено в значении
-
Отображение тумана для отсечения далеких объектов карты при наклоне камеры.
-
BaseCamera.viewportRestriction для установки области видимости камеры.
-
MapOptions.graphicsPreset для установки режима графики через GraphicsPreset при инициализации карты.
-
Map.graphicsPreset для установки режима графики через GraphicsPreset для созданной карты.
-
Map.graphicsPresetHint для получения рекомендуемого режима графики для данного устройства.
-
Возможность наклона карты до 70 градусов, начиная с 18 zoom-уровня.
-
RasterUrlTemplate для задания шаблона URL для запроса растровых тайлов. Может иметь два значения: DefaultRasterUrlTemplate для общего шаблона и WmsRasterUrlTemplate для растровых тайлов стандарта WMS.
-
MapLocationController.mapToNorthOrientation — установка принудительной ориентации карты на север.
-
RouteCamera.maxSpeedLimit — cкорость в м/с, превышение которой фиксируется камерой.
-
NavigationFollowController.cameraBehaviour — режим слежения камеры за маркером геопозиции в навигаторе.
-
При отображении дорожных событий и пробочных данных на маршруте теперь учитывается высота рельефа.
-
Если текущая позиция на маршруте находится на расстоянии более 500 метров от следующего маневра, произносится фраза:
Двигайтесь прямо
. -
Поддержаны звуковые инструкции для велосипедных и самокатных перекрёстков.
-
RouterType для установки типа поисковика в AlternativeRoutesProviderSettings для поиска альтернативных маршрутов.
-
Параметр
toRoutePoint
в методе MillisecondsRouteAttribute.calculateDuration для вычисления длительности движения по участку маршрута до конкретной точки. -
Методы TerritoryManager.findByPoint и TerritoryManager.findByRect для фильтрации доступных для скачивания офлайн регионов по
GeoPoint
иGeoRect
.
❗ Ломающие изменения
- Параметр
Container.apiKeyOptions
удален. Теперь вы можете передавать явно источник файл ключа с помощьюKeySource
,KeyFromAsset
,KeyFromFile
иKeyFromString
. - Параметр
Container.vendorConfigFile
удален. Теперь вы можете передавать явно источник файл конфигурационных настроек с помощьюVendorConfig
,VendorConfigFromAsset
,VendorConfigFromFile
иVendorConfigFromString
. - Методы
Container.makeStyleFactory
,Container.makeSearchManagerFactory
,Container.makeSourceFactory
,Container.makeImageFactory
иContainer.makeLocaleManager
удалены. Вместо них используйте поляContainer.styleFactory
,Container.searchManagerFactory
,Container.sourceFactory
,Container.imageFactory
иContainer.localeManager
. IPositioningServicesFactory
и параметрContainer.positioningServices
удалены. Теперь при созданииContainer
нужно передавать отдельноContainer.locationProvider
иContainer.magneticHeadingProvider
.ILocationService
удален. Вместо него используйтеLocationService
с аналогичным функционалом.MyLocationController
иMapLocationController.myLocationIndicatorController
удалены. Для настройки источника маркера геопозиции используйте MyLocationControllerSettings. В INavigationView теперь не происходит подмена источника геопозиции.- Структура HttpOptions изменена с сохранением функциональности.
- В LogOptions переименованы поля: вместо
osLogLevel
иcustomLogLevel
теперьsystemLevel
иcustomLevel
. - В LogLevel переименованы значения: вместо
disabled
иfault
теперьoff
иfatal
. - Значение
CameraState.followPosition
удалено. Вместо него ориентируйтесь на значение Camera.behaviour. - SuggestedType, SuggestorType и ObjectType расширены значениями и теперь соответствуют результатам Places API.
- Значения MyLocationMapObjectMarkerType приведены к стандарту именования.
- Метод
createRasterTileDataSource
удален. Добавлен новый источник растровых тайлов RasterTileSource с возможностью задания прозрачности растровых тайлов. AudioVolume
удален. Теперь вы можете задавать громкость инструкций от 0 до 100 через AudioSettings.volume.AudioOptions
иIAudioSettings
удалены. ИспользуйтеAudioSettings
для настройки звука в SDK.- RouteMapObjectDisplayFlag.immersiveRouteParts — флаг для использования иммерсивной геометрии для отрезков маршрута.
🛠 Исправления
- Оптимизировано кеширование дорожных событий при отображении на карте.
- Исправлена ошибка, при которой варианты проезда не отображались, если среди маршрутов на общественном транспорте предлагался нерабочий вариант.
- Исправлен учёт пройденного расстояния вдоль альтернативного маршрута.
- Доработано отображение остановок на маршруте на общественном транспорте.
- Доработано стирание маршрута при достижении финишной точки маршрута.
- Исправлено отображение активного маршрута в условиях плохого сигнала GPS.
- Не озвучиваются голосовые инструкции при навигации в условиях плохого сигнала GPS.
- Не озвучивается расстояние до следующей камеры, если оно меньше 150 метров.
- Не озвучиваются голосовые инструкции при старте навигации.
- Не озвучивается расстояние до камер контроля перекрёстка, полосы общественного транспорта и разметки.
- Инструкция навигации «До конца маршрута осталось» не озвучивается, если впереди по маршруту есть другие инструкции.
- Не озвучиваются пешеходные препятствия и подтипы дорог для непешеходных маршрутов.
🗺 Изменения в стилях карты
- Добавлены слои с иммерсивными дорогами реальной ширины.
- Доработаны различные слои, чтобы они корректно отображались при наличии иммерсивных дорог реальной ширины на карте.
- Обновлены дизайны маркера геопозиции в обычном режиме и в режиме навигации. Также отображение маркера в дневной и ночной темах приведены к одному виду.
- Поддержана новая ветка Московского метро МЦД-4А (литера А).
- Исправлены стили веток Московского метро МЦД-3, МЦД-4, МЦД-4А и МЦД-5.
- Добавлены подписи остановок на маршруте общественного транспорта.
- Добавлены подписи остановок при просмотре полного маршрута выбранного общественного транспорта.
Миграция с версий 10.x на 12.х
Для всех типов Mobile SDK:
- Заново выгрузить стили.
- Для корректного отображения маркера геопозиции необходимо скопировать соответствующие слои.
- Параметр
Container.apiKeyOptions
удален. Теперь вы можете передавать явно источник файл ключа с помощьюKeySource
,KeyFromAsset
,KeyFromFile
иKeyFromString
. - Параметр
Container.vendorConfigFile
удален. Теперь вы можете передавать явно источник файл конфигурационных настроек с помощьюVendorConfig
,VendorConfigFromAsset
,VendorConfigFromFile
иVendorConfigFromString
. - Методы
Container.makeStyleFactory
,Container.makeSearchManagerFactory
,Container.makeSourceFactory
,Container.makeImageFactory
иContainer.makeLocaleManager
удалены. Вместо них используйте поляContainer.styleFactory
,Container.searchManagerFactory
,Container.sourceFactory
,Container.imageFactory
иContainer.localeManager
. IPositioningServicesFactory
и параметрContainer.positioningServices
удалены. Теперь при созданииContainer
нужно передавать отдельноContainer.locationProvider
иContainer.magneticHeadingProvider
.ILocationService
удален. Вместо него используйтеLocationService
с аналогичным функционалом.MyLocationController
иMapLocationController.myLocationIndicatorController
удалены. Для настройки источника маркера геопозиции используйте MyLocationControllerSettings. В INavigationView теперь не происходит подмена источника геопозиции.- Структура HttpOptions изменена с сохранением функциональности.
- В LogOptions переименованы поля: вместо
osLogLevel
иcustomLogLevel
теперьsystemLevel
иcustomLevel
. - В LogLevel переименованы значения: вместо
disabled
иfault
теперьoff
иfatal
. - Удалено значение
CameraState.followPosition
. Вместо него ориентируйтесь на значение Camera.behaviour. - SuggestedType, SuggestorType и ObjectType расширены значениями и теперь соответствуют результатам Places API.
- Значения MyLocationMapObjectMarkerType приведены к стандарту именования.
- Метод
createRasterTileDataSource
удален. Добавлен новый источник растровых тайлов RasterTileSource с возможностью задания прозрачности растровых тайлов.
Дополнительно для полной версии:
- Для отображения иммерсивных дорог реальной ширины и для корректного взаимодействия остальных объектов с иммерсивными дорогами в режиме навигации необходимо выгрузить последние стили Mobile SDK и применить свои настройки.
AudioVolume
удален. Теперь вы можете задавать громкость инструкций от 0 до 100 через AudioSettings.volume.AudioOptions
иIAudioSettings
удалены. ИспользуйтеAudioSettings
для настройки звука в SDK.- RouteMapObjectDisplayFlag.immersiveRouteParts — флаг для использования иммерсивной геометрии для отрезков маршрута.
10.7.0 (2024-08-13)
🌟 Новые возможности
- DashboardButtonSettings в NavigationViewOptions для настройки кнопки добавления дорожных событий в дашборде навигатора.
10.6.0 (2024-08-07)
🌟 Новые возможности
- PackageInfo.finalSizeOnDisk — размер места на диске, которое территория занимает после установки, в байтах.
- PackageInfo.currentSizeOnDisk — размер места на диске, которое занимают установленные файлы территории на данный момент, в байтах.
- В NavigationViewTheme добавлены параметры для настройки UI-элементов INavigationView. Вы можете настроить цвет иконок основного и дополнительного манёвров, шрифты во всех UI-элементах, кастомизировать UI-элементы компаса и пробочного балла.
🛠 Исправления
- Исправлена работа карты с включенной настройкой
Metal API Validation
в Xcode. - Исправлено обновление позиции в дереве кластеризации через MapObjectManager.withClustering при изменении позиции маркера.
- Обновлён дизайн копирайта снимка карты, полученного через IMapSnapshotter.
- Исправлена ошибка, при которой MapViewOverlay не обновлялся при изменении параметров.
- В INavigationView UI-элемент спидометра теперь отображается при навигации по велосипедным маршрутам.
- В INavigationView UI-элемент слежения за позицией теперь не скрывается при пешей навигации.
10.5.0 (2024-06-05)
🌟 Новые возможности
- В настройках ключа можно задавать каскадный
appId
. Благодаря этой настройке ключ можно привязать не к конкретному приложению, а к группе приложений с одинаковой шаблонной частью в идентификаторе. - Обновлён дизайн копирайта.
🛠 Исправления
- Исправлена работа SDK для CarPlay.
- При отображении маркеров с помощью Marker текстовые подписи не перекрывают друг друга.
- Исправлено отображение маркера геопозиции, когда перестают поступать данные от датчика направления.
10.4.0 (2024-05-20)
🌟 Новые возможности
- Добавлены SwiftUI-элементы для карты: CurrentLocationView, ZoomView, TrafficView, IndoorView, CompassView. Все элементы могут быть созданы через фабрику IMapControlViewFactory.
- ZoomFollowSettings.speedRangeToStyleZoomFreeRoamSequence стал сеттером.
🛠 Исправления
- Исправлена ошибка, при которой изменение этажа через IndoorBuilding.activeLevelIndex не влияло на отображение IndoorControl.
- Обновлён файл
PrivacyInfo.xcprivacy
.
❗ Ломающие изменения
- В объект карты Map теперь можно добавить только один источник текущего местоположения MyLocationMapObjectSource.
- SDK поддерживает только iOS 13 и выше.
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
- ФИАС-код улицы.
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
для включения слежения только за наклоном. - Удалены значения
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
. ПараметрtransitionType
удален из конструктора CameraBehaviour.MyLocationDirectionBehaviour
удален. Конструктор источника геопозиции MyLocationMapObjectSource не принимаетdirectionBehaviour
. МетодMyLocationMapObjectSource.setDirectionBehaviour
удален.
- Методы
-
Удалено поле BaseCamera.styleZoomToTiltRelation.
-
Класс
MagneticHeadingProvider
переименован вHeadingProvider
. -
Конструкторы динамических объектов Circle, Marker, Polygon и Polyline помечены, как
throws
. -
Удалена опция MapOptions.mapRendererType и enum
MapRendererType
. Теперь всегда включен Metal для рендеринга карты. -
Удалены сеттеры
Circle.position
иCircle.radius
. Вместо этого добавлены методы Circle.setPosition и Circle.setRadius, которые могут бросить исключение. -
Структура Locale теперь создается на основе отдельных значений языка
language
и регионаregion
. -
Из Mobile SDK Map-сборки удалены PackageManager и Package, что уменьшило размер продукта.
-
Метод Voice.playWelcome теперь возвращает Future, который становится готовым, когда проигрывание сэмпла завершается.
-
Удалено поле
RoadSubtype.stairway
. Вместо него добавлены поля RoadSubtype.stairwayUp и RoadSubtype.stairwayDown для использования лестниц с явным направлением. -
Удалено поле NavigationFollowController.mapTiltController.
-
Кидается исключение при попытке стартовать навигатор в режиме ведения или симуляции с маршрутом на общественном транспорте.
-
Отключено кэширование тайлов
FreeRoam
при навигации. -
MyLocationMapObjectSource для навигатора устанавливается внутри INavigationView.
❗ Известные ошибки
- При частом обновлении динамических объектов (около 100 FPS) зависает карта.
🛠 Исправления
- Оптимизирована перерисовка кадров карты при любых изменениях.
- Исправлено отображение пробок на карте в зависимости от zoom-уровня.
- Исправлено неплавное обновление маркера геопозиции.
- Оптимизировано и исправлено отображение карты на последних версиях iOS.
- Исправлена работа метода SimpleClusterObject.setIcon при первом вызове.
- Исправлена работа кластеризации через MapObjectManager.withClustering, если передать дробные значения
minZoom
иmaxZoom
. - Обновлен логотип 2GIS в копирайте на снапшотах карты.
- Теперь бросается корректное исключение, если в карту загрузить битые стили.
- При установке в MapOptions.appearance значения MapAppearance.default будет устанавливаться дневная тема по умолчанию.
- При расчёте дистанции для проигрывания предварительной инструкции о манёвре учитывается полосность.
- При проигрывании финишной фразы в режиме навигатора учитывается пеший маршрут.
- Исправлена ошибка, при которой баблы полосности не отображают направление маршрута.
- Исправлено формирование баблов полосности, чтобы не учитывалось ограничение по скорости.
- Исправлено отображение баблов автобусной полосы, идущей прямо, со знаком "Въезд запрещен" для остального транспорта.
- Не убирается предложенный маршрут лучше с карты, если пользователь явно отказался переходить на него.
- Убирается с карты альтернативные маршруты, от развилки с которыми уже слежение уехало слишком далеко, даже если к ним всё ещё можно притянуться.
- Откидываются альтернативные маршруты, ответвляющиеся от основного маршрута в одной и той же точке и идущие в одну и ту же сторону.
- Отзыв предложения маршрута лучше в случае, когда после обновления пробочных данных маршрут лучше перестаёт быть таковым.
- Не озвучиваются предупреждения о камерах-муляжах.
- В INavigationView при отображении полного маршрута отображается только оставшаяся часть маршрута.
- По умолчанию отключено кэширование тайлов
FreeRoam
при навигации для уменьшения запросов к бэкендам.
🗺 Изменения в стилях карты
- Добавлены стили светофоров.
- Добавлены иммерсивные модели деревьев и зданий.
- Поддержаны новые ветки Московского метро МЦД-3 и МЦД-4.
- Оптимизированы модели иммерсивных деревьев.
- Добавлена новая модель для отображения маркера текущего местоположения.
Миграция с версий 7.x на 10.х
Для всех типов Mobile SDK:
-
Заново выгрузить стили.
-
Изменена работа с FollowController:
- Методы
createRawMyLocationController
иcreateSmoothMyLocationController
удалены. Добавлен конструктор MyLocationController для создания контроллера перемещения маркера геопозиции. - Теперь не нужно указывать источник направления, поэтому удалены значения
FollowBearing.satellite
иFollowBearing.magnetic
. Добавлено значение FollowBearing.on для включения слежения - источник выбирается автоматически. - Удалено поле FollowPosition.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
. ПараметрtransitionType
удален из конструктора CameraBehaviour.MyLocationDirectionBehaviour
удален. Конструктор источника геопозиции MyLocationMapObjectSource не принимаетdirectionBehaviour
. МетодMyLocationMapObjectSource.setDirectionBehaviour
удален.
- Методы
-
Удалено поле BaseCamera.styleZoomToTiltRelation.
-
Класс
MagneticHeadingProvider
переименован вHeadingProvider
. -
Конструкторы динамических объектов Circle, Marker, Polygon и Polyline помечены, как throws.
-
Удалена опция MapOptions.mapRendererType и enum
MapRendererType
. Теперь всегда включен 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 для навигатора устанавливается внутри INavigationView.