Релизы
Миграция с версий 12.x на 13.х
Для версий Full и Map
-
Повторно выгрузите стили: исправлены ошибки отображения пользовательских и иммерсивных объектов.
-
Обновлены все слои групп
Roadsдля отображения иммерсивных дорог в основном режиме карты. -
Добавлена группа
Traffic v13.0.0для отображения новых цветов тайлов с пробками. -
Добавлена группа
Car route line v13.0.0для отображения автомобильных маршрутов на иммерсивных дорогах. -
Для изоляции потоков и совместимости с Swift 6 в проект добавлен атрибут
@MainActorи отмечены протоколы, структуры и функции какSendable. -
Минимальная поддерживаемая версия iOS обновлена до 16.0.
-
Основные изменения в SwiftUI-элементах:
- Переименован основной слой карты
MapViewOverlayв MapView и переименованы все методы для настройки слоя. - Переименовано свойство
IMapFactory.mapViewOverlayв IMapFactory.mapView. - Переименована фабрика SwiftUI-элементов управления картой
IMapControlViewFactoryв IMapViewsFactory. - Переименованы методы SwiftUI-элементов для создания дорожных событий RoadEventCreatorView.
- Переименованы методы SwiftUI-элементов для настройки отображения информации о дорожном событии RoadEventInfoView.
- Переименованы пользовательские SwiftUI-маркеры и контейнеры на карте
MapMarkerView,MapMarkerViewModelиMapMarkerViewOverlayв MarkerView, MarkerViewModel и MarkerOverlayView соответственно. - Переименовано свойство
IMapFactory.mapMarkerViewOverlayв IMapFactory.markerOverlayView. - Переименован основной слой навигатора
NavigatorViewв NavigationView. - Переименован метод
NavigatorView.navigatorViewFinishButtonCallback()в NavigationView.finishButtonCallback(). - Переименована фабрика SwiftUI-элементов управления навигатором
INavigatorViewFactoryв INavigationViewFactory.
- Переименован основной слой карты
-
Основные изменения в UIKit-элементах:
- Переименован основной слой карты
IMapViewв IMapUIView. - Переименовано свойство
IMapFactory.mapViewв IMapFactory.mapUIView. - Переименованы интерфейсы слоя обработки жестов
IMapGestureViewиIMapGestureViewFactoryв IMapGestureUIView и IMapGestureUIViewFactory соответственно. - Переименовано свойство
IMapFactory.gestureViewв IMapFactory.gestureUIView. - Переименованы пользовательские UIKit-маркеры и контейнеры на карте
IMarkerView,IMarkerViewFactoryиIMarkerViewOverlayв IMarkerUIView, IMarkerUIViewFactory и IMarkerOverlayUIView соответственно. - Переименован объект
IMapFactory.markerViewOverlayв IMapFactory.markerOverlayUIView. - Переименована фабрика UIKit-элементов управления картой
IMapControlFactoryв IMapUIControlsFactory. - Переименованы все публичные классы UIKit-элементов управления, моделей и их фабрик. Например,
ZoomControlпереименован в ZoomUIControl,TrafficControlпереименован в TrafficUIControl,IndoorControlпереименован в IndoorUIControl и т. д. - Переименована фабрика UIKit-элементов управления карточками дорожных событий
RoadEventCardViewOptionsв IRoadEventUIViewFactory. - Переименован объект
IRoadEventCardViewв IRoadEventInfoUIView. - Переименован объект
ICreateRoadEventViewв IRoadEventCreatorUIView. - Переименован объект
RoadEventCardViewOptionsв RoadEventInfoViewOptions. - Переименован основной слой навигатора
INavigationViewв INavigationUIView. - Переименована фабрика UIKit-элементов управления навигатором
INavigationViewControlsFactoryв INavigationUIControlsFactory. - Переименована фабрика UIKit-элементов управления картой
INavigationMapControlsFactoryв INavigationMapUIControlsFactory.
- Переименован основной слой карты
-
Теперь для отслеживания изменений состояний камеры используется единый канал BaseCamera.changed вместо отдельных каналов для каждого свойства. Заменены подписки и добавлена дополнительная фильтрация причин изменений.
-
Изменён способ создания некоторых классов:
- Удалена функция
getSystemMemoryManager. Чтобы получить объект для управления системной памятью, используйте метод SystemMemoryManager.instance(). - Удалён конструктор SearchHistory. Чтобы получить объект истории поиска, используйте метод SearchHistory.instance().
- Удалён конструктор RoadEventManager. Чтобы получить объект для работы с дорожными событиями, используйте метод RoadEventManager.instance().
- Удалена функция
getHttpCacheManager. Чтобы получить объект для управления HTTP-кешем, используйте метод HttpCacheManager.get(). - Удалена функция
getLocaleManager. Чтобы получить объект для управления локалями приложения, используйте метод LocaleManager.instance(). - Удалён конструктор TrafficCollector. Чтобы получить объект для управления сервисом сбора информации о дорожном движении, используйте метод TrafficCollector.instance().
- Удалена функция
getAudioSettings. Чтобы получить объект для управления звуком приложения, используйте метод AudioSettings.get(). - Удалена функция
getPackageManager. Чтобы получить объект для работы с пакетами, используйте метод PackageManager.instance(). - Удалена функция
getTerritoryManager. Чтобы получить объект для работы с территориями, используйте метод TerritoryManager.instance(). - Удалена функция
getTerritoriesAlongRouteProvider. Чтобы получить объект для извлечения списка территорий вдоль маршрута, используйте конструктор TerritoriesAlongRouteProvider. - Удалена функция
getVoiceManager. Чтобы получить объект для управления голосовыми пакетами, используйте метод VoiceManager.instance().
- Удалена функция
-
Свойство
buildingLevelsдля получения этажных планов удалено из DirectoryObject. -
Свойство DirectoryObject.buildingInfo теперь опциональное.
-
Свойство BuildingInfo.buildingId теперь обязательное и не может быть пустым.
-
Свойство LevelInfo.id теперь опциональное.
-
Изменён тип свойства PublicTransportDirectoryRouteInfo.color с
Int?наColor?. -
Метод SearchQueryBuilder.setGeoPoint() теперь принимает опциональный тип значения.
-
Метод SearchQueryBuilder.setRadius() теперь принимает опциональный тип значения.
-
Удалены функция
getRoadMacroGraphи классRoadMacroGraph. Теперь для построения офлайн-маршрутов между соседними регионами достаточно скачать пакеты нужных регионов. -
Удалены класс для настройки позиции бабла с полосами на маршруте (
LanesCalloutMapPositionиRouteMapObject.lanesCalloutPositions) и свойство в RouteMapObject. -
Переименован класс
UIntRouteLongAttributeв DoubleRouteLongAttribute. -
Изменён тип свойства Route.trafficLights с VoidRouteAttribute на StringRouteAttribute.
-
Добавлен новый вид транспорта
motorcycle(мотоцикл) в TransportType. -
Добавлены параметры для настройки уровня масштабирования для стиля в конструктор SpeedRangeToStyleZoom.
-
Добавлены значения для пандусов
rampDown,rampUp,smoothRampDownиsmoothRampUpв RoadSubtype. -
Добавлены новые значения позиций и ориентиров в CarInstructionCrossroadLandmark.
-
Добавлены значения цветов
deepGreenиorangeв TrafficSpeedColor. -
Добавлен флаг
crossingдля отображения начала и конца переправы на маршруте в RouteMapObjectDisplayFlag. -
Добавлен новый тип точки маршрута
crossing(начало и конец переправы) в RoutePointKind. -
Добавлены значения для оповещений о событиях
betterRoute(«маршрут лучше») иhumps(искусственные дорожные неровности) в SoundCategory.
13.0.0 (2025-10-13)
🌟 Новые возможности
- DgisSource.createImmersiveDgisSource — источник иммерсивных данных.
- BaseCamera.changed — канал для уведомлений об изменениях состояния камеры.
- CameraChange — класс с информацией об изменениях состояния камеры.
- CameraChangeReason — причины изменения состояния камеры.
- LevelInfo.linkedLevelIds — идентификаторы связанных этажных планов.
- BriefRoadEvent.trustworthy — флаг достоверности дорожного события.
- IndoorBuilding.mode и IndoorBuilding.modeChannel — режим отображения зданий с этажными планами.
- IndoorBuilding.linkedWith() — метод для проверки связи между зданиями с этажными планами.
- RoadEvent.elevation — высота дорожного события.
- BranchesInfo и DirectoryObject.branchesInfo — информация о связанных организациях.
- FloorsInfo и BuildingInfo.floorsInfo — информация о количестве этажей в здании.
- SearchManager.search() — метод для поиска объектов справочника по поисковым подсказкам SuggestQuery и настройкам.
- SearchSettings — настройки поиска объектов справочника.
- SearchHistoryKeyStrategy и SearchHistory.setKeyStrategy() — метод для установки политики создания ключей для элементов истории поиска.
- IncompleteTextHandler.searchQuery — свойство поискового запроса.
- RouteCamera.mobility — флаг, указывающий на мобильность дорожной камеры.
- ObstacleInfo.objectId — идентификатор объекта препятствия на маршруте.
- BicycleRouteSearchOptions.avoidUnpavedRoads — флаг для избегания грунтовых дорог на велосипедных маршрутах.
- PedestrianRouteSearchOptions.avoidUnpavedRoads — флаг для избегания грунтовых дорог на пешеходных маршрутах.
- ScooterRouteSearchOptions.avoidUnpavedRoads — флаг для избегания грунтовых дорог на маршрутах на самокате.
- DataPrefetcher и NavigationManager.dataPrefetcher — класс для предварительной загрузки тайлов карты на маршруте.
- FinishDetector и NavigationManager.finishDetector — класс для управления контроллером завершения маршрута.
- TrafficJamDetector и NavigationManager.trafficJamDetector — класс для обнаружения пробок на маршруте.
- MapLocationController.userControlOverMap — флаг для применения пользовательских значений уровня масштабирования и наклона карты.
- CrossingType и Route.crossingTypes — типы переправ на маршруте.
- MotorcycleBriefRouteInfo — класс с основной информацией о маршруте на мотоцикле.
- MotorcycleBriefRouteInfoTrafficSpeed — скорости движения для маршрутов на мотоцикле.
- MotorcycleRouteSearchOptions — класс с параметрами поиска маршрута на мотоцикле.
- PublicTransportInfo.routeInfos — описания маршрутов общественного транспорта.
- PublicTransportRouteInfo — класс с информацией о маршруте общественного транспорта.
- PublicTransportCostInfo — класс с информацией о стоимости проезда на общественном транспорте.
- RouteTollPaymentPointInfo и Route.tollPaymentPointInfos — класс с информацией о пунктах оплаты проезда по платной дороге.
- RouteTollPaymentPointType — тип оплаты проезда по платной дороге.
- TraversalType — направление кольцевой линии общественного транспорта.
- Package.pause() — метод для постановки на паузу установки или обновления пакета.
- Package.install(InstallFallback) — метод для установки или обновления пакета с обработчиком ошибок.
- InstallFallback — интерфейс для задания поведения при ошибках установки или обновления пакета.
- DefaultInstallFallback — фабрика для создания стратегий обработки ошибок установки и обновления пакета.
- DefaultInstallFallback.noOperation() — метод для создания
InstallFallback, не выполняющего операций. - DefaultInstallFallback.retryOnError() — метод для создания
InstallFallback, который вызывает повторную установку при ошибке загрузки пакета. - VoiceManager.defaultVoice — свойство для получения голосового пакета на основании списка локалей.
- Добавлена возможность создавать дорожные события в NavigationView с помощью RoadEventCreatorView в SwiftUI-элементе дашборда навигатора.
❗ Изменения, влияющие на обратную совместимость
-
Для изоляции потоков и совместимости с Swift 6 в проект добавлен атрибут
@MainActorи отмечены протоколы, структуры и функции какSendable. -
Минимальная поддерживаемая версия iOS обновлена до 16.0.
-
Основные изменения в SwiftUI-элементах:
- Переименован основной слой карты
MapViewOverlayв MapView и переименованы все методы для настройки слоя. - Переименовано свойство
IMapFactory.mapViewOverlayв IMapFactory.mapView. - Переименована фабрика SwiftUI-элементов управления картой
IMapControlViewFactoryв IMapViewsFactory. - Переименованы методы SwiftUI-элементов для создания дорожных событий RoadEventCreatorView.
- Переименованы методы SwiftUI-элементов для настройки отображения информации о дорожном событии RoadEventInfoView.
- Переименованы пользовательские SwiftUI-маркеры и контейнеры на карте
MapMarkerView,MapMarkerViewModelиMapMarkerViewOverlayв MarkerView, MarkerViewModel и MarkerOverlayView соответственно. - Переименовано свойство
IMapFactory.mapMarkerViewOverlayв IMapFactory.markerOverlayView. - Переименован основной слой навигатора
NavigatorViewв NavigationView. - Переименован метод
NavigatorView.navigatorViewFinishButtonCallback()в NavigationView.finishButtonCallback(). - Переименована фабрика SwiftUI-элементов управления навигатором
INavigatorViewFactoryв INavigationViewFactory.
- Переименован основной слой карты
-
Основные изменения в UIKit-элементах:
- Переименован основной слой карты
IMapViewв IMapUIView. - Переименовано свойство
IMapFactory.mapViewв IMapFactory.mapUIView. - Переименованы интерфейсы слоя обработки жестов
IMapGestureViewиIMapGestureViewFactoryв IMapGestureUIView и IMapGestureUIViewFactory соответственно. - Переименовано свойство
IMapFactory.gestureViewв IMapFactory.gestureUIView. - Переименованы пользовательские UIKit-маркеры и контейнеры на карте
IMarkerView,IMarkerViewFactoryиIMarkerViewOverlayв IMarkerUIView, IMarkerUIViewFactory и IMarkerOverlayUIView соответственно. - Переименован объект
IMapFactory.markerViewOverlayв IMapFactory.markerOverlayUIView. - Переименована фабрика UIKit-элементов управления картой
IMapControlFactoryв IMapUIControlsFactory. - Переименованы все публичные классы UIKit-элементов управления, моделей и их фабрик. Например,
ZoomControlпереименован в ZoomUIControl,TrafficControlпереименован в TrafficUIControl,IndoorControlпереименован в IndoorUIControl и т. д. - Переименована фабрика UIKit-элементов управления карточками дорожных событий
RoadEventCardViewOptionsв IRoadEventUIViewFactory. - Переименован объект
IRoadEventCardViewв IRoadEventInfoUIView. - Переименован объект
ICreateRoadEventViewв IRoadEventCreatorUIView. - Переименован объект
RoadEventCardViewOptionsв RoadEventInfoViewOptions. - Переименован основной слой навигатора
INavigationViewв INavigationUIView. - Переименована фабрика UIKit-элементов управления навигатором
INavigationViewControlsFactoryв INavigationUIControlsFactory. - Переименована фабрика UIKit-элементов управления картой
INavigationMapControlsFactoryв INavigationMapUIControlsFactory.
- Переименован основной слой карты
-
Теперь для отслеживания изменений состояний камеры используется единый канал BaseCamera.changed вместо отдельных каналов для каждого свойства. Заменены подписки и добавлена дополнительная фильтрация причин изменений.
-
Изменён способ создания некоторых классов:
- Удалена функция
getSystemMemoryManager. Чтобы получить объект для управления системной памятью, используйте метод SystemMemoryManager.instance(). - Удалён конструктор SearchHistory. Чтобы получить объект истории поиска, используйте метод SearchHistory.instance().
- Удалён конструктор RoadEventManager. Чтобы получить объект для работы с дорожными событиями, используйте метод RoadEventManager.instance().
- Удалена функция
getHttpCacheManager. Чтобы получить объект для управления HTTP-кешем, используйте метод HttpCacheManager.get(). - Удалена функция
getLocaleManager. Чтобы получить объект для управления локалями приложения, используйте метод LocaleManager.instance(). - Удалён конструктор TrafficCollector. Чтобы получить объект для управления сервисом сбора информации о дорожном движении, используйте метод TrafficCollector.instance().
- Удалена функция
getAudioSettings. Чтобы получить объект для управления звуком приложения, используйте метод AudioSettings.get(). - Удалена функция
getPackageManager. Чтобы получить объект для работы с пакетами, используйте метод PackageManager.instance(). - Удалена функция
getTerritoryManager. Чтобы получить объект для работы с территориями, используйте метод TerritoryManager.instance(). - Удалена функция
getTerritoriesAlongRouteProvider. Чтобы получить объект для извлечения списка территорий вдоль маршрута, используйте конструктор TerritoriesAlongRouteProvider. - Удалена функция
getVoiceManager. Чтобы получить объект для управления голосовыми пакетами, используйте метод VoiceManager.instance().
- Удалена функция
-
Свойство
buildingLevelsдля получения этажных планов удалено из DirectoryObject. -
Свойство DirectoryObject.buildingInfo теперь опциональное.
-
Свойство BuildingInfo.buildingId теперь обязательное и не может быть пустым.
-
Свойство LevelInfo.id теперь опциональное.
-
Изменён тип свойства PublicTransportDirectoryRouteInfo.color с
Int?наColor?. -
Метод SearchQueryBuilder.setGeoPoint() теперь принимает опциональный тип значения.
-
Метод SearchQueryBuilder.setRadius() теперь принимает опциональный тип значения.
-
Удалены функция
getRoadMacroGraphи классRoadMacroGraph. Теперь для построения офлайн-маршрутов между соседними регионами достаточно скачать пакеты нужных регионов. -
Удалены класс для настройки позиции бабла с полосами на маршруте (
LanesCalloutMapPositionиRouteMapObject.lanesCalloutPositions) и свойство в RouteMapObject. -
Переименован класс
UIntRouteLongAttributeв DoubleRouteLongAttribute. -
Изменён тип свойства Route.trafficLights с VoidRouteAttribute на StringRouteAttribute.
-
Добавлен новый вид транспорта
motorcycle(мотоцикл) в TransportType. -
Добавлены параметры для настройки уровня масштабирования для стиля в конструктор SpeedRangeToStyleZoom.
-
Добавлены значения для пандусов
rampDown,rampUp,smoothRampDownиsmoothRampUpв RoadSubtype. -
Добавлены новые значения позиций и ориентиров в CarInstructionCrossroadLandmark.
-
Добавлены значения цветов
deepGreenиorangeв TrafficSpeedColor. -
Добавлен флаг
crossingдля отображения начала и конца переправы на маршруте в RouteMapObjectDisplayFlag. -
Добавлен новый тип точки маршрута
crossing(начало и конец переправы) в RoutePointKind. -
Добавлены значения для оповещений о событиях
betterRoute(«маршрут лучше») иhumps(искусственные дорожные неровности) в SoundCategory.
🛠 Исправления
-
Исправлена ошибка, из-за которой падало приложение при работе SearchManager.createSmartManager(), если не было скачанных территорий.
-
Добавлена поддержка моделей iPhone 17, iPhone 17 Pro, iPhone 17 Pro Max и iPhone Air с учётом их PPI при вычислении DPI.
-
Исправлена ошибка в истории поиска при многократном добавлении одного и того же элемента.
-
Исправлена проблема, из-за которой новые поисковые запросы не сохранялись в истории при достижении установленного лимита.
-
Добавлен фильтр для скрытия этажей зданий на карте, если их площадь на экране меньше определённого порога.
-
Исправлены звуковые оповещения в навигаторе:
- Исправлена ошибка, из-за которой не озвучивалось предупреждение о камере «в спину».
- Исправлена ошибка, из-за которой не озвучивались промофразы (при наличии корректного голосового пакета).
- Добавлены звуковые оповещения о лестницах на маршруте.
- Исправлена ошибка, при которой камеры контроля перекрёстка озвучивались как камеры контроля скорости.
- Добавлены звуковые оповещения о перестроении маршрутов для велосипедов и самокатов.
-
Исправлены ошибки в работе навигатора при проблемах с GPS-сигналом:
- Исправлена ошибка перелёта маркера текущей геопозиции при работе детектора слабого GPS-сигнала.
- Исправлены ошибки, возникавшие при приближении пользователя к точке конца маршрута при нестабильном GPS-сигнале.
- Добавлено отключение детектирования схода с маршрута при низкой точности GPS-сигнала.
- Теперь при резком снижении точности GPS-сигнала во время работы навигатора геопозиция пользователя не переносится в другое место на карте.
-
Исправлены проблемы в работе навигатора:
- Исправлена проблема, из-за которой на экране поиска маршрута не отображался бабл с информацией о времени и длине маршрута, если у одного из маршрутов отсутствовали уникальные отрезки.
- Исправлена проблема, из-за которой в бабле альтернативного маршрута не обновлялась разница во времени движения, если при использовании навигатора пользователь не двигался.
- Удалены названия съездов в баблах, если не указано направление движения или съезд ведёт к объекту с типом «аэропорт».
- Исправлена проблема, из-за которой иконки дорожных событий не реагировали на нажатия.
- Добавлена поддержка отображения и цветовой индикации пробок на грунтовых дорогах.
- Исправлено дублирование иконок МЦК, МЦД, Аэроэкспресса и электричек в бабле маршрута с пересадками.
- Исправлено некорректное отображение линии маршрута на перекрёстках.
- Удалено отображение дополнительной иконки с полосами движения для камер, которые фиксируют непредоставление преимущества в движении пешеходам.
- Исправлена ошибка притяжки геопозиции пользователя к маршруту при возврате на маршрут.
- Исправлена ошибка, при которой падало приложение при перестроении пешеходного маршрута в режиме ведения по маршруту.
- Исправлено поведение, при котором дополнительные иконки отображались на маршруте после истечения срока действия дорожного события.
- Изменена логика отображения дополнительных иконок с полосами движения для подтверждённых дорожных событий.
- Добавлено ограничение, при котором при перестроении маршрута в него не включаются платные дороги, если пользователь выбрал проезд только по бесплатным дорогам.
- Добавлено отображение уведомлений о лестницах на панели с предполагаемым временем маршрута.
- Теперь навигатор продолжает вести пользователя по маршруту и перестраивает его при необходимости, даже если была закрыта финишная панель (с кнопкой Завершить маршрут).
- Изменена логика фильтрации полос: полосы, разрешающие движение прямо, не исключаются из баблов с полосами на маршруте.
- Добавлена визуализация мигания пробок на маршруте при скорости 80–90 км/ч.
-
Исправлена вёрстка всех SwiftUI-элементов в NavigationView.
-
Исправлен возврат к слежению за позицией и уровнем масштабирования в NavigationView. Теперь камера и режим слежения восстанавливаются корректно при выходе из обзора маршрута.
🗺 Изменения в стилях карты
- Повторно выгрузите стили: исправлены ошибки отображения пользовательских и иммерсивных объектов.
- Обновлены все слои групп
Roadsдля отображения иммерсивных дорог в основном режиме карты. - Добавлена группа
Traffic v13.0.0для отображения новых цветов тайлов с пробками. - Добавлена группа
Car route line v13.0.0для отображения автомобильных маршрутов на иммерсивных дорогах.
12.8.0 (2025-08-14)
🌟 Новые возможности
- Добавлена поддержка армянского языка на карте, в справочнике и при построении маршрутов. Также добавлены голосовые пакеты уведомлений на армянском языке.
- MiniMapView и NavigationMiniMapView — SwiftUI-элементы мини-карты для отображения на карте и в NavigatorView.
- SearchResultItemView — SwiftUI-элемент мини-карточки объекта для поисковой выдачи. Содержит соответствующие темы оформления, локализацию и вспомогательные визуальные элементы и компоненты утилиты.
- RoadEventCreatorView — SwiftUI-элемент для создания дорожных событий.
- RoadEventInfoView — SwiftUI-элемент для отображения информации о дорожном событии.
- IRoadEventViewFactory — фабрика для создания SwiftUI-элементов дорожных событий.
- В TrafficRouter добавлена возможность задавать тип поисковика маршрутов (онлайн, офлайн или гибрид) с помощью RouterType.
- В NavigationManager и RouteEditor добавлена возможность указывать поисковик маршрутов (TrafficRouter).
🛠 Исправления
- Данные о пробках через источник TrafficSource теперь не запрашиваются и не обновляются в фоновом режиме приложения.
- Улучшена вёрстка дашборда управления поездкой в NavigatorView: обновлены отступы, размеры кнопок, порядок и структура компонентов, а также исправлены значения высот элементов.
- Изменены отступы блока манёвров в NavigatorView, чтобы сообщения о потере GPS-сигнала и перестроении маршрута отображались ниже на экране.
12.7.2 (2025-06-20)
🌟 Новые возможности
- DirectoryObject.platformIds — информация об идентификаторах платформ общественного транспорта в объекте справочника.
- EntranceInfo.entranceNumber — номер входа на станцию общественного транспорта.
🛠 Исправления
- DirectoryObject.routeInfos теперь возвращает корректную информацию о маршрутах, проходящих через определённую платформу общественного транспорта.
- DirectoryObject.entrances теперь возвращает корректную информацию о входах в метро.
12.7.0 (2025-06-03)
🌟 Новые возможности
- DirectoryObject.routeInfos — информация о маршрутах общественного транспорта в объекте справочника.
- ItemMarkerInfo.tradeLicense — информация о торговой лицензии организации в маркере.
- SearchResult.nearbyRequested — признак в результатах поиска, что при поиске были запрошены объекты поблизости.
- TrafficRoute.routeTollPaymentInfos — информация о стоимости проезда по платным участкам маршрута.
- RoadMacroGraph — пакет глобального дорожного графа будет удалён в следующих версиях. Вы можете строить маршруты между регионами на основе скачанных офлайн-данных.
- SwiftUI-элементы для отображения сообщений об ошибках при построении маршрутов и для отображения выбора «маршрута лучше» в NavigatorView.
🗺 Изменения в стилях карты
- Повторно выгрузите стили: в навигаторе исправлено отображение иммерсивных дорог и тумана.
12.6.3 (2025-05-13)
🛠 Исправления
-
Оптимизирована работа TrafficSource:
- Тайлы с пробками запрашиваются при изменении масштаба карты и по таймеру.
- Уровень пробок в баллах обновляется при смене региона и по таймеру.
-
Улучшена производительность карты при добавлении полигонов с большим количеством вершин через MapObjectManager.
12.6.0 (2025-04-17)
🌟 Новые возможности
- TextStyle.suppressOnOverlap — опция для скрытия текста подписи маркера при пересечении с другими объектами.
🛠 Исправления
- Исправлено обновление генерализации при изменении атрибутов объектов, добавленных через метод MapObjectManager.withGeneralization.
- Исправлена ошибка, при которой приложение падало при логировании сетевых запросов.
- Исправлена ошибка, при которой приложение падало при обработке жеста наклона карты.
12.5.0 (2025-03-25)
🌟 Новые возможности
- SearchQueryBuilder.setLocale — метод для задания локали, в которой выполняется поисковый запрос.
- DirectoryObject.group — объединение объектов разного типа в одной карточке. Например, карточка здания суда содержит информацию о здании как геообъекте и о суде как организации в здании.
- SearchQueryWithInfo.rubrics — список рубрик, по которым производится запрос.
- PackedSearchQuery.locale — локаль для поискового запроса.
- VoiceAssistantView — SwiftUI-элемент для управления голосовым вводом. Чтобы создать элемент, используйте метод IDirectoryViewsFactory.makeVoiceAssistantView.
🛠 Исправления
- Исправлена ошибка, при которой маркер местоположения, добавленный через MyLocationMapObjectSource, исчезал при первом перелёте камеры.
- Исправлено восстановление отображения маркера геопозиции после того, как приложение долго находилось в свернутом состоянии.
- Исправлено отображение информации о маршруте на карте при направлении текста справа налево (RTL) для источника данных RouteEditorSource.
- Изменены настройки кеширования данных из источника на маршруте. Теперь данные кешируются на расстоянии 4000 метров впереди от текущей позиции на маршруте вместо 20000.
🗺 Изменения в стилях карты
- Следует заново выгрузить стили: исправлено отображение информации о маршруте на карте при направлении текста справа налево.
12.4.3 (2025-02-19)
🌟 Новые возможности
- Projection.distanceOnMap — метод для вычисления расстояния между точками на карте, которые соответствуют указанным точкам на экране.
- Projection.distanceOnScreen — метод для вычисления расстояния между точками на экране, которые соответствуют указанным точкам на карте.
🛠 Исправления
- Исправлено отображение окружности на карте при добавлении объекта Circle в MapObjectManager.withClustering и MapObjectManager.withGeneralization.
12.4.0 (2025-01-30)
🌟 Новые возможности
- Container.makeNavigatorViewFactory и INavigatorViewFactory — фабрика для работы со SwiftUI-элементами навигатора.
- NavigatorView — контейнер со SwiftUI-элементами навигатора.
- INavigationMapViewsFactory — фабрика SwiftUI-элементов карты для NavigatorView.
- INavigationViewsFactory — фабрика SwiftUI-элементов навигатора для NavigatorView.
- Map.sublayerAttributes — возможность переопределения атрибутов конкретного слоя карты.
- SearchHistory — класс для работы с историей поисковых запросов: чтения, добавления и удаления записей с информацией о результате работы поиска и поисковых подсказках.
- SearchQueryBuilder.fromOrgId — метод для формирования поискового запроса по идентификатору организации.
- SearchQueryBuilder.fromBuildingId — метод для формирования поискового запроса по идентификатору здания.
- SearchQueryBuilder.fromGeoPoint — метод для формирования поискового запроса c центром области поиска.
- SearchQueryBuilder.setGeoPoint и SearchQueryBuilder.setRadius — методы для установки центра области поиска и радиуса при формировании поискового запроса.
- DirectoryObject.orgInfo — информация об организации в объекте справочника.
- MyLocationMapObject.setModelData — метод для установки 3D-модели маркера геопозиции.
- BaseCamera.viewPoint — возможность изменения точки обзора камеры относительно размера области видимости карты.
- AnimationSettings.animationName — возможность переключения анимации 3D-модели по названию.
- Добавлена инструкция по управлению стилевыми слоями карты.
🛠 Исправления
- Теперь положение 3D-модели совпадает с направлением камеры, если значение угла поворота не задано в ModelMapObject.mapDirection.
- Исправлена некорректная установка атрибутов для генерализуемых объектов, добавленных на карту через MapObjectManager.withClustering. Теперь изменение атрибутов объектов на определённом zoom-уровне распространяется на все уровни.
- Исправлена работа атрибута для управления видимостью объекта на карте SimpleMapObject.isVisible при генерализации и кластеризации объектов.
🗺 Изменения в стилях карты
- Исправлен приоритет обработки нажатий между маркером геопозиции и зданиями на карте.
12.3.0 (2024-12-18)
🌟 Новые возможности
- ModelMapObject и ModelMapObjectOptions — классы для создания и настройки динамических объектов с 3D-моделями. Вы можете добавить данные объекты на карту с помощью MapObjectManager.
- ModelData и IModelFactory — возможность загрузки пользовательских 3D-моделей.
- Теперь при добавлении TrafficSource на карту тайлы с пробками запрашиваются на основе области видимости экрана независимо от обновления конфигурационного файла SDK.
- DirectoryObject.rubricIds — идентификаторы рубрик в объекте справочника.
- FreeRoamSelector и NavigationManager.freeRoamSelector — возможность включения и выключения перевода навигатора в режим
FreeRoamпри слишком долгом перестроении маршрута. - RouteRebuilder и NavigationManager.routeRebuilder — возможность включения и выключения поиска нового маршрута при сходе с текущего маршрута.
- TrafficRouter.requestRoute — возможность поиска маршрута по ранее сериализованным параметрам.
🛠 Исправления
- Исправлено дублирование числа филиалов для категорий организаций в Suggest.subtitle.
- Исправлена ошибка получения координат объекта при обработке клика на Marker, добавленный на карту перед первичной загрузкой карты.
- Исправлено отображение 3D-модели маркера геопозиции навигатора для всех типов маршрута, кроме пешеходного. Для пешеходного маршрута отображается обычная модель маркера геопозиции.
- Обновлена конфигурация навигатора для улучшения работы при плохом сигнале GPS.
- Исправлено отображение следующего манёвра для левостороннего движения при прохождении круговых перекрёстков в INavigationView.
🗺 Изменения в стилях карты
- Добавлен слой для отображения динамических 3D-моделей.
12.2.1 (2024-12-03)
🛠 Исправления
- Исправлены ошибки, которые приводили к снижению производительности при отображении большого количества объектов на карте.
12.2.0 (2024-11-15)
🌟 Новые возможности
- AnimationSettings — класс для настройки анимаций объектов карты. Применяется для объектов с типами слоя
3D modelиDirectional model. - MyLocationMapObject.animationSettings — возможность настройки анимаций для маркера геопозиции, если в качестве модели в стилях загружена анимированная модель.
- MyLocationMapObject.objectAttributes — возможность настройки атрибутов стилей для маркера геопозиции. Возможные значения атрибутов можно увидеть в стилях для соответствующего слоя.
- RoadEventMapObject.animationSettings — возможность настройки анимаций для дорожных событий, если в качестве модели в стилях загружена анимированная модель.
- RoadEvent.id — идентификатор дорожного события.
- ParkingControlModel — модель для удобного переключения видимости парковок на карте.
- ItemMarkerInfo.rubricIds — идентификаторы рубрик, к которым относится объект маркера.
- TextHorizontalAlignment — настройка для выравнивания надписи по горизонтали в Marker через TextStyle.
- Определены операторы для Longitude и Latitude.
- MapMarkerView и MapMarkerViewOverlay — SwiftUI-элементы для добавления пользовательских SwiftUI View в качестве маркеров на карту.
- SpeedView — SwiftUI-элемент для отображения скорости в режиме навигации.
- 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 — скорость в м/с, превышение которой фиксируется камерой.
-
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.х
Для версий Full и Map
- Повторно выгрузите стили.
- Для корректного отображения маркера геопозиции необходимо скопировать соответствующие слои.
- Параметр
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 с возможностью задания прозрачности растровых тайлов.
Дополнительно для версии Full
- Для отображения иммерсивных дорог реальной ширины и для корректного взаимодействия остальных объектов с иммерсивными дорогами в режиме навигации необходимо выгрузить последние стили 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.х
Для версий Full и Map
-
Повторно выгрузите стили.
-
Изменена работа с 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, что уменьшило размер продукта.
Дополнительно для версии Full
- Метод Voice.playWelcome теперь возвращает Future, который становится готовым, когда проигрывание сэмпла завершается.
- Удалено поле
RoadSubtype.stairway. Вместо него добавлены поля RoadSubtype.stairwayUp и RoadSubtype.stairwayDown для использования лестниц с явным направлением. - Удалено поле NavigationFollowController.mapTiltController.
- Кидается исключение при попытке стартовать навигатор в режиме ведения или симуляции с маршрутом на общественном транспорте.
- Отключено кэширование тайлов
FreeRoamпри навигации. - MyLocationMapObjectSource для навигатора устанавливается внутри INavigationView.