Перейти к основному содержимому

Релизы

12.8.1 (2025-08-26)

🌟 Новые возможности

  • SDK адаптирован к использованию c Dynamic Feature Delivery. NB! При использовании стандартного способа инициализации, когда ключ для SDK берется из ассетов приложения, ключ должен находиться в ассетах feature-модуля.

🛠 Исправления

  • Исправлены редкие ошибки при загрузке нативной библиотеки (.so), приводившие к UnsatisfiedLinkError в некоторых сессиях.

12.8.0 (2025-08-14)

🌟 Новые возможности

  • Добавлена поддержка армянского языка на карте, в справочнике и при построении маршрутов. Также добавлены голосовые пакеты уведомлений на армянском языке.
  • В TrafficRouter добавлена возможность задавать тип поисковика маршрутов (онлайн, офлайн или гибрид) с помощью RouterType.
  • В NavigationManager и RouteEditor добавлена возможность указывать поисковик маршрутов (TrafficRouter).

🛠 Исправления

  • Добавлена опция линковщика для установки размера страницы памяти 16 КБ при сборке библиотеки.
  • Данные о пробках через источник TrafficSource теперь не запрашиваются и не обновляются в фоновом режиме приложения.
  • Исправлена утечка памяти в SearchLayout, которая происходила при смене конфигурации устройства.

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 — пакет глобального дорожного графа будет удалён в следующих версиях. Вы можете строить маршруты между регионами на основе скачанных офлайн-данных.

🗺 Изменения в стилях карты

  • Заново выгрузите стили: в навигаторе исправлено отображение иммерсивных дорог и тумана.

12.6.3 (2025-05-13)

🛠 Исправления

  • Оптимизирована работа TrafficSource:

    • Тайлы с пробками запрашиваются при изменении масштаба карты и по таймеру.
    • Уровень пробок в баллах обновляется при смене региона и по таймеру.
  • Улучшена производительность карты при добавлении полигонов с большим количеством вершин через MapObjectManager.

12.6.2 (2025-04-23)

🛠 Исправления

  • Исправлено отображение динамических объектов, добавленных через MapObjectManager, на некоторых устройствах Huawei.

12.6.0 (2025-04-17)

🌟 Новые возможности

  • В источник геопозиции DefaultLocationSource добавлена возможность настроить использование сервиса Radar API для геопозиционирования устройства по точкам доступа Wi-Fi и сотовым вышкам. Настроить использование Radar API можно через RadarApiSettings. Подробнее см. в разделе Использование Radar API.
  • TextStyle.suppressOnOverlap — опция для скрытия текста подписи маркера при пересечении с другими объектами.

🛠 Исправления

  • Исправлено обновление генерализации при изменении атрибутов объектов, добавленных через метод MapObjectManager.withGeneralization.
  • Исправлена ошибка, при которой приложение падало при логировании сетевых запросов.

12.5.0 (2025-03-25)

🌟 Новые возможности

  • SearchQueryBuilder.setLocale — метод для задания локали, в которой выполняется поисковый запрос.
  • DirectoryObject.group — объединение объектов разного типа в одной карточке. Например, карточка здания суда содержит информацию о здании как геообъекте и о суде как организации в здании.
  • SearchQueryWithInfo.rubrics — список рубрик, по которым производится запрос.
  • PackedSearchQuery.locale — локаль для поискового запроса.

🛠 Исправления

  • Исправлена ошибка, при которой маркер местоположения, добавленный через MyLocationMapObjectSource, исчезал при первом перелёте камеры.
  • Исправлено отображение информации о маршруте на карте при направлении текста справа налево (RTL) для источника данных RouteEditorSource.
  • Изменены настройки кеширования данных из источника на маршруте. Теперь данные кешируются на расстоянии 4000 метров впереди от текущей позиции на маршруте вместо 20000.

🗺 Изменения в стилях карты

  • Следует заново выгрузить стили: исправлено отображение информации о маршруте на карте при направлении текста справа налево.

12.4.3 (2025-02-19)

🌟 Новые возможности

  • Projection.distanceOnMap — метод для вычисления расстояния между точками на карте, которые соответствуют указанным точкам на экране.
  • Projection.distanceOnScreen — метод для вычисления расстояния между точками на экране, которые соответствуют указанным точкам на карте.

🛠 Исправления

12.4.0 (2025-01-30)

🌟 Новые возможности

  • SpeechRecognizer и DefaultSpeechRecognizer — возможность запускать распознавание речи и обрабатывать результаты через функции обратного вызова.
  • Map.sublayerAttributes — возможность переопределения атрибутов конкретного слоя карты.
  • SearchHistory — класс для работы с историей поисковых запросов: чтения, добавления и удаления записей с информацией о результате работы поиска и поисковых подсказках.
  • SearchQueryBuilder.fromOrgId — метод для формирования поискового запроса по идентификатору организации.
  • SearchQueryBuilder.fromBuildingId — метод для формирования поискового запроса по идентификатору здания.
  • SearchQueryBuilder.fromGeoPoint — метод для формирования поискового запроса c центром области поиска.
  • SearchQueryBuilder.setGeoPoint и SearchQueryBuilder.setRadius — методы для установки центра области поиска и радиуса при формировании поискового запроса.
  • DirectoryObject.orgInfo — информация об организации в объекте справочника.
  • MyLocationMapObject.setModelData — метод для установки 3D-модели маркера геопозиции.
  • BaseCamera.viewPoint — возможность изменения точки обзора камеры относительно размера области видимости карты.
  • AnimationSettings.animationName — возможность переключения анимации 3D-модели по названию.
  • Добавлена инструкция по работе с UI-элементами через Android Compose.
  • Добавлена инструкция по управлению стилями карты.

🛠 Исправления

  • Теперь положение 3D-модели совпадает с направлением камеры, если значение угла поворота не задано в ModelMapObject.mapDirection.
  • Исправлена некорректная установка атрибутов для генерализуемых объектов, добавленных на карту через MapObjectManager.withClustering. Теперь изменение атрибутов объектов на определённом zoom-уровне распространяется на все уровни.
  • Исправлена работа атрибута для управления видимостью объекта на карте SimpleMapObject.isVisible при генерализации и кластеризации объектов.

🗺 Изменения в стилях карты

  • Исправлен приоритет обработки нажатий между маркером геопозиции и зданиями на карте.

12.3.0 (2024-12-18)

🌟 Новые возможности

🛠 Исправления

  • Исправлено дублирование числа филиалов для категорий организаций в Suggest.subtitle.
  • Исправлена ошибка получения координат объекта при обработке клика на Marker, добавленный на карту перед первичной загрузкой карты.
  • Исправлено отображение 3D-модели маркера геопозиции навигатора для всех типов маршрута, кроме пешеходного. Для пешеходного маршрута отображается обычная модель маркера геопозиции.
  • Обновлена конфигурация навигатора для улучшения работы при плохом сигнале GPS.

🗺 Изменения в стилях карты

  • Добавлен слой для отображения динамических 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.
  • RouteMapObjectsProvider и NavigationManager.routeMapObjectsProvider — класс для получения объектов маршрута на карте.
  • RouteMapObject.roadEventObjects — дорожные события на карте для соответствующего маршрута.
  • MyLocationMapObjectSourceProvider и NavigationManager.myLocationMapObjectSourceProvider — класс для получения источника маркера геопозиции в навигаторе.

🛠 Исправления

  • Исправлен ряд ошибок для корректного отображения карты в Android Auto.
  • Доработан механизм получения названия объекта маркера ItemMarkerInfo.title. Теперь учитывается, что маркер может быть без названия.
  • Исправлена потенциальная проблема при инициализации карты, когда стиль устанавливался раньше, чем завершался процесс инициализации.
  • Исправлено потенциальное зависание в MapObjectManager при частом добавлении и удалении объектов через метод MapObjectManager.removeAndAddObjects.
  • Исправлена ошибка, при которой для некоторых регионов не работало отображение дорожных событий на карте.
  • Исправлено отображение стрелок маршрута относительно иммерсивных дорог реальной ширины в режиме навигатора.
  • Исправлена потенциальная проблема, при которой не отображались баблы полосности на маршруте в режиме навигатора.

🗺 Изменения в стилях карты

  • Исправлены ошибки в стилях при отображении маркера геопозиции в режиме навигатора с иммерсивными дорогами реальной ширины.
  • Исправлены ошибки в стилях при отображении этажных планов зданий.

10.8.0 (2024-11-02)

🛠 Исправления

  • Исправлено потенциальное зависание в MapObjectManager при частом добавлении и удалении объектов через метод MapObjectManager.removeAndAddObjects.
  • Исправлена ошибка, при которой приложение падало при логировании сетевых запросов.
  • Исправлена ошибка, при которой для некоторых регионов не работало отображение дорожных событий на карте.

12.1.0 (2024-09-24)

🌟 Новые возможности

🛠 Исправления

  • DgisSource.createDgisSource теперь возвращает гибридный источник тайлов карты по умолчанию в Full версии SDK.
  • Различные улучшения работы иммерсивных дорог реальной ширины в режиме навигатора.

🗺 Изменения в стилях карты

  • Исправлены ошибки в стилях при отображении иммерсивных дорог реальной ширины.
  • Исправлено отображение тумана при различных углах наклона карты.

12.0.0 (2024-08-19)

🌟 Новые возможности

  • Иммерсивные дороги реальной ширины отображаются в режиме навигации, если:

    На текущий момент дороги реальной ширины доступны только в некоторых крупных городах России, ОАЭ и Саудовской Аравии.

  • Отображение тумана для отсечения далеких объектов карты при наклоне камеры.

  • Пакет ru.dgis.sdk.androidauto для интегрирования SDK в Android Auto.

  • 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.

❗ Ломающие изменения

  • KeySource, KeyFromAsset, KeyFromFile и KeyFromString перенесены в ru.dgis.sdk.platform.
  • VendorConfig, VendorConfigFromAsset, VendorConfigFromFile и VendorConfigFromString перенесены в ru.dgis.sdk.platform.
  • LogOptions, LogLevel, LogMessage и LogSink перенесены в ru.dgis.sdk.platform.
  • HttpOptions, Certificate, CertificateFromAsset, CertificateFromFile, SystemCertificate и HttpProxyOptions перенесены в ru.dgis.sdk.platform.
  • MyLocationController и MapLocationController.myLocationIndicatorController удалены. Для настройки источника маркера геопозиции используйте MyLocationControllerSettings. В NavigationView теперь не происходит подмена источника геопозиции.
  • В EventsProcessingSettings.rotationCenter и EventsProcessingSettings.scalingCenter добавлено значение GEO_POSITION для установки режима работа жеста относительно геопозиции. Чтобы задать позицию, относительно которой будет работать жест, используйте метод GestureManager.setTargetGeoPoint.
  • Meter перенесен из модуля ru.dgis.sdk.map в ru.dgis.sdk.
  • Значение CameraState.FOLLOW_POSITION удалено. Вместо него ориентируйтесь на значение Camera.behaviour.
  • SuggestedType, SuggestorType и ObjectType расширены значениями и теперь соответствуют результатам Places API.
  • Метод createRasterTileDataSource удален. Добавлен новый источник растровых тайлов RasterTileSource с возможностью задания прозрачности растровых тайлов.
  • AudioVolume удален. Теперь вы можете задавать громкость инструкций от 0 до 100 через AudioSettings.volume.
  • RouteMapObjectDisplayFlag.IMMERSIVE_ROUTE_PARTS — флаг для использования иммерсивной геометрии для отрезков маршрута.

🛠 Исправления

  • Оптимизировано кеширование дорожных событий при отображении на карте.
  • Исправлены артефакты при повороте экрана при включении Vulkan.
  • Исправлена ошибка, при которой варианты проезда не отображались, если среди маршрутов на общественном транспорте предлагался нерабочий вариант.
  • Исправлен учёт пройденного расстояния вдоль альтернативного маршрута.
  • Доработано отображение остановок на маршруте на общественном транспорте.
  • Доработано стирание маршрута при достижении финишной точки маршрута.
  • Исправлено отображение активного маршрута при плохом сигнале GPS.
  • Не произносятся голосовые инструкции при навигации при плохом сигнале GPS.
  • Не озвучивается расстояние до следующей камеры, если оно меньше 150 метров.
  • Не озвучиваются голосовые инструкции при старте навигации.
  • Не озвучивается расстояние до камер контроля перекрёстка, полосы общественного транспорта и разметки.
  • Инструкция навигации «До конца маршрута осталось» не озвучивается, если впереди по маршруту есть другие инструкции.
  • Не озвучиваются пешеходные препятствия и подтипы дорог для непешеходных маршрутов.

🗺 Изменения в стилях карты

  • Добавлены слои с иммерсивными дорогами реальной ширины.
  • Доработаны различные слои, чтобы они корректно отображались при наличии иммерсивных дорог реальной ширины на карте.
  • Обновлены дизайны маркера геопозиции в обычном режиме и в режиме навигации. Также отображение маркера в дневной и ночной темах приведены к одному виду.
  • Поддержана новая ветка Московского метро МЦД-4А (литера А).
  • Исправлены стили веток Московского метро МЦД-3, МЦД-4, МЦД-4А и МЦД-5.
  • Добавлены подписи остановок на маршруте общественного транспорта.
  • Добавлены подписи остановок при просмотре полного маршрута выбранного общественного транспорта.

Миграция с версий 10.x на 12.х

Для всех типов Mobile SDK:

  • Заново выгрузить стили.
  • Для корректного отображения маркера геопозиции необходимо скопировать соответствующие слои.
  • KeySource, KeyFromAsset, KeyFromFile и KeyFromString перенесены в ru.dgis.sdk.platform.
  • VendorConfig, VendorConfigFromAsset, VendorConfigFromFile и VendorConfigFromString перенесены в ru.dgis.sdk.platform.
  • LogOptions, LogLevel, LogMessage и LogSink перенесены в ru.dgis.sdk.platform.
  • HttpOptions, Certificate, CertificateFromAsset, CertificateFromFile, SystemCertificate и HttpProxyOptions перенесены в ru.dgis.sdk.platform.
  • MyLocationController и MapLocationController.myLocationIndicatorController удалены. Для настройки источника маркера геопозиции используйте MyLocationControllerSettings. В NavigationView теперь не происходит подмена источника геопозиции.
  • В EventsProcessingSettings.rotationCenter и EventsProcessingSettings.scalingCenter добавлено значение GEO_POSITION для установки режима работа жеста относительно геопозиции. Для задания позиции, относительно которой будет работать жест, используйте метод GestureManager.setTargetGeoPoint.
  • Meter перенесен из модуля ru.dgis.sdk.map в ru.dgis.sdk.
  • Удалено значение CameraState.FOLLOW_POSITION. Вместо него ориентируйтесь на значение Camera.behaviour.
  • SuggestedType, SuggestorType и ObjectType расширены значениями и теперь соответствуют результатам Places API.
  • Метод createRasterTileDataSource удален. Добавлен новый источник растровых тайлов RasterTileSource с возможностью задания прозрачности растровых тайлов.

Дополнительно для полной версии:

  • Для отображения иммерсивных дорог реальной ширины и для корректного взаимодействия остальных объектов с иммерсивными дорогами в режиме навигации необходимо выгрузить последние стили Mobile SDK и применить свои настройки.
  • AudioVolume удален. Теперь вы можете задавать громкость инструкций от 0 до 100 через AudioSettings.volume.
  • RouteMapObjectDisplayFlag.IMMERSIVE_ROUTE_PARTS — флаг для использования иммерсивной геометрии для отрезков маршрута.

10.7.0 (2024-08-13)

🌟 Новые возможности

10.6.0 (2024-08-07)

🌟 Новые возможности

  • PackageInfo.finalSizeOnDisk — размер места на диске, которое территория занимает после установки, в байтах.
  • PackageInfo.currentSizeOnDisk — размер места на диске, которое занимают установленные файлы территории на данный момент, в байтах.

🛠 Исправления

  • Исправлено обновление позиции в дереве кластеризации через MapObjectManager.withClustering при изменении позиции маркера.
  • Обновлён дизайн копирайта снимка карты, полученного методом MapView.takeSnapshot.
  • В NavigationView UI-элемент спидометра теперь отображается при навигации по велосипедным маршрутам.
  • В NavigationView UI-элемент слежения за позицией теперь не скрывается при пешей навигации.

10.5.0 (2024-06-05)

🌟 Новые возможности

  • В настройках ключа можно задавать каскадный appId. Благодаря этой настройке вы можете привязать ключ не к конкретному приложению, а к группе приложений с одинаковой шаблонной частью в идентификаторе.
  • Обновлён дизайн копирайта.
  • Добавлен TiltSettings.maxParallelsDeviationDeg для настройки жеста наклона карты.

🛠 Исправления

  • Исправлена работа канала MapView.fpsChannel.
  • При отображении маркеров с помощью Marker текстовые подписи не перекрывают друг друга.
  • Исправлено отображение маркера геопозиции, когда перестают поступать данные от датчика направления.

10.4.0 (2024-05-20)

🌟 Новые возможности

🛠 Исправления

  • Исправлена ошибка, при которой изменение этажа через IndoorBuilding.activeLevelIndex не влияло на отображение IndoorControl.
  • Исправлена обработка жестов, когда карта работает в фоновом режиме.
  • В NavigationView источник геопозиции заменяется на источник с контроллером навигатора только при старте навигации.

❗ Ломающие изменения

  • В объект карты Map теперь можно добавить только один источник текущего местоположения MyLocationMapObjectSource.

10.3.0 (2024-05-06)

🌟 Новые возможности

  • Теперь информация о пробках в регионах обновляется независимо от обновления конфигурационного файла SDK.
  • Теперь при zoom-уровне выше 2 карту нельзя сдвинуть для отображения пустых полос сверху и снизу.
  • Добавлен арабский голосовой пакет для навигатора.

🛠 Исправления

  • Исправлена работа кластеризации через MapObjectManager.withClustering. Теперь иерархия кластеров перестраивается, если позиция одного из маркеров изменилась через Marker.position.
  • Исправлена некорректная обработка тапа в Marker с Lottie-анимацией.
  • Map.dataLoadingStateChannel больше не зависает в состоянии loading при режиме слежения за геопозицией.
  • Исправлена ошибка, при которой sources.jar в релизном пакете генерировался пустым.
  • Исправлено отображение дашборда в NavigationView в режиме FreeRoam.

10.2.0 (2024-03-07)

🌟 Новые возможности

🛠 Исправления

  • Исправлена ошибка в работе layedId, который задается в MapObjectManager: теперь он влияет на отображение кластеризованных маркеров.

🗺 Изменения в стилях карты

  • Для корректной работы пунктирных окружностей нужно заново выгрузить стили.

10.1.0 (2024-01-16)

🌟 Новые возможности

10.0.0 (2023-12-29)

🌟 Новые возможности

  • Поддержан Vulkan. Если Vulkan недоступен на девайсе, то используется OpenGL версии 3. По умолчанию включен OpenGL, так как поддержка Vulkan находится в процессе доработки и является экспериментальной фичей.
  • Иммерсивные деревья на карте отображаются по умолчанию.
  • Поддержана новая модель для отображения маркера текущего местоположения. Если необходимо переопределить иконку текущего местоположения, нужно передать MyLocationMapObjectMarkerType.SVG_ICON в конструктор MyLocationMapObjectSource, а в стилях отредактировать соответствующий слой.
  • Добавлен метод BaseCamera.changePosition для изменения только части параметров позиции камеры. Метод принимает новую структуру CameraPositionChange.
  • Добавлен метод Camera.move для запуска анимированного перемещения карты с возможностью сброса слежения за наклоном.
  • Добавлен параметр styleZoomToTiltRelation для функций calcPosition и zoomOutToFit: функция зависимости угла наклона камеры от стилевого zoom-уровня.
  • Добавлена новая функция createDefaultStyleZoomToTiltRelation для получения зависимости угла наклона камеры от стилевого zoom-уровня для стандартного контроллера слежения за наклоном.
  • Добавлен enum BearingSource - источник направления.
  • В DGis.initialize добавлена возможность переопределения сетевого клиента с помощью интерфейса HttpClient.
  • Добавлены MarkerOptions.iconAnimationMode и Marker.iconAnimationMode для возможности задания режима анимации в маркерах. Режим может быть обычным или зацикленным.
  • Добавлены SearchResult.actionWidgets и SearchResult.mainWidgets для динамической фильтрации уже полученной поисковой выдачи. Добавлен базовый класс Widget, представляющий виджет для фильтрации поисковой выдачи.
  • В LocaleManager добавлены методы locales и systemLocales и соответствующие каналы для получения всех локалей приложения и системных локалей.
  • Добавлена функция createDefaultMaxTiltRestriction для получения дефолтной зависимости ограничения угла наклона от масштаба. По умолчанию эта зависимость устанавливается при создании карты - BaseCamera.maxTiltRestriction.
  • Добавлен метод IndoorManager.setIndoorState для управления отображением этажных планов на карте.
  • Добавлен интерфейс LocationService для удобного получения последнего значения геопозиции пользователя.
  • Добавлен новый UI-элемент SearchLayout, реализующий логику поисковой строки: поиск, предложения, отображение поисковой выдачи.
  • Добавлено поле PackedMapState.cameraBehaviour для сериализации режима слежения камеры.
  • В PackageInfo добавлено поле error - ошибка, произошедшая при попытке загрузки и/или установки пакета.
  • Добавлено поле NavigationManager.alternativeRouteSelector для выбора альтернативного маршрута.
  • Добавлено поле Route.bicycleLanes - признак наличия выделенной велополосы.
  • Добавлено значение RoutePointKind.BICYCLE_LANE - начало и конец велополосы.
  • Добавлен флаг 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.SATELLITE_BEARING, FollowValue.MAGNETIC_BEARING и 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.

  • Метод LocaleManager.overrideLocales принимает теперь список структур Locale с отдельными полями language и region.

  • Из Map-сборки SDK удалены PackageManager и Package, что уменьшило размер продукта.

  • Метод Voice.playWelcome теперь возвращает Future, который становится готовым, когда проигрывание сэмпла завершается.

  • Удалено поле RoadSubtype.STAIRWAY. Вместо него добавлены поля RoadSubtype.STAIRWAY_UP и RoadSubtype.STAIRWAY_DOWN для использования лестниц с явным направлением.

  • Удалено поле NavigationFollowController.mapTiltController.

  • Возвращается исключение при попытке стартовать навигатор в режиме ведения или симуляции с маршрутом на общественном транспорте.

  • Отключено кэширование тайлов FreeRoam при навигации.

  • MyLocationMapObjectSource для навигатора устанавливается внутри NavigationView.

  • В MapOptions удалены поля lightTheme и darkTheme. Теперь для выставления темы нужно использовать класс MapTheme в методах MapOptions.setTheme и MapView.setTheme.

❗ Известные ошибки

  • При частом обновлении динамических объектов (около 100 FPS) зависает карта.

🛠 Исправления

  • Оптимизирована перерисовка кадров карты при любых изменениях.

  • Исправлено отображение пробок на карте в зависимости от zoom-уровня.

  • Исправлено неплавное обновление маркера геопозиции.

  • Исправлена работа метода SimpleClusterObject.setIcon при первом вызове.

  • При получении снапшота карты методом MapView.takeShapshot теперь учитывается прогруженность карты - значение loaded в Map.dataLoadingState.

  • Исправлена работа кластеризации через MapObjectManager.withClustering, если передать дробные значения minZoom и maxZoom.

  • Обновлен логотип 2GIS в копирайте на снапшотах карты.

  • Теперь возвращается корректное исключение, если в карту загрузить битые стили.

  • Исправлено отображение UI-элементов из DefaultNavigationControls в арабской локали.

  • При расчёте дистанции для проигрывания предварительной инструкции о манёвре учитывается полосность.

  • При проигрывании финишной фразы в режиме навигатора учитывается пеший маршрут.

  • Исправлена ошибка, при которой баблы полосности не отображают направление маршрута.

  • Исправлено формирование баблов полосности, чтобы не учитывалось ограничение по скорости.

  • Исправлено отображение баблов автобусной полосы, идущей прямо, со знаком «Въезд запрещен» для остального транспорта.

  • Исправлено отображение предложенных маршрутов:

    • Не убирается предложенный маршрут лучше с карты, если пользователь явно отказался переходить на него.
    • Убираются с карты альтернативные маршруты, от развилки с которыми уже слежение уехало слишком далеко, даже если к ним всё ещё можно притянуться.
    • Откидываются альтернативные маршруты, ответвляющиеся от основного маршрута в одной и той же точке и идущие в одну и ту же сторону.
    • Предложение маршрута лучше отзывается в случае, когда после обновления данных о пробках маршрут лучше перестаёт быть таковым.
  • Не озвучиваются предупреждения о камерах-муляжах.

  • В NavigationView при отображении полного маршрута отображается только оставшаяся часть маршрута.

  • По умолчанию отключено кэширование тайлов FreeRoam при навигации для уменьшения запросов к бэкендам.

🗺 Изменения в стилях карты

  • Добавлены стили светофоров.
  • Добавлены иммерсивные модели деревьев и зданий.
  • Поддержаны новые ветки Московского метро МЦД-3 и МЦД-4.
  • Оптимизированы модели иммерсивных деревьев.
  • Добавлена новая модель для отображения маркера текущего местоположения.

Миграция с версий 7.x на 10.х

Для всех типов Mobile SDK:

  • Заново выгрузить стили.

  • Изменена работа с FollowController:

    • Методы createRawMyLocationController и createSmoothMyLocationController удалены. Добавлен конструктор MyLocationController для создания контроллера перемещения маркера геопозиции.
    • Теперь не нужно указывать источник направления, поэтому удалены значения FollowBearing.SATELLITE и FollowBearing.MAGNETIC. Добавлено значение FollowBearing.ON для включения слежения - источник выбирается автоматически.
    • Удалено поле FollowPosition.tilt. Слежение за наклоном теперь нужно включать отдельно. В конструктор CameraBehaviour добавлен новый параметр tilt для слежения за наклоном.
    • Удалены значения FollowValue.SATELLITE_BEARING, FollowValue.MAGNETIC_BEARING и 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.

  • Метод LocaleManager.overrideLocales принимает теперь список структур Locale с отдельными полями language и region.

  • Из Mobile SDK Map-сборки удалены PackageManager и Package, что уменьшило размер продукта.

  • В MapOptions удалены поля lightTheme и darkTheme. Теперь для выставления темы нужно использовать класс MapTheme в методах MapOptions.setTheme и MapView.setTheme.

Дополнительно для полной версии:

  • Метод Voice.playWelcome теперь возвращает Future, который становится готовым, когда проигрывание сэмпла завершается.
  • Удалено поле RoadSubtype.STAIRWAY. Вместо него добавлены поля RoadSubtype.STAIRWAY_UP и RoadSubtype.STAIRWAY_DOWN для использования лестниц с явным направлением.
  • Удалено поле NavigationFollowController.mapTiltController.
  • Кидается исключение при попытке стартовать навигатор в режиме ведения или симуляции с маршрутом на общественном транспорте.
  • Отключено кэширование тайлов FreeRoam при навигации.
  • MyLocationMapObjectSource для навигатора устанавливается внутри NavigationView.