Android SDK Релизы | 2GIS Documentation
Android SDK

Release notes

  • Опции CircleOptions.dashedStrokeOptions и Circle.dashedStrokeOptions для создания пунктирной окружности или добавления пунктира для уже созданной окружности.
  • Метод RoadEventSource.setHighlighted для выделения дорожных событий с идентификаторами из RoadEventMapObject.id.
  • Функция calculateClosestPoint для получения ближайшей точки на маршруте относительно переданной точки.
  • Исправлена ошибка в работе layedId, который задается в MapObjectManager: теперь он влияет на отображение кластеризованных маркеров.
  • Для корректной работы пунктирных окружностей нужно заново выгрузить стили.
  • Добавлена структура DirectoryObject.buildingInfo со справочной информацией о здании: buildingName, purposeName, purposeCode и buildingLevels. DirectoryObject.buildingLevels помечено deprecated и будет удалено в будущих мажорных релизах.
  • Добавлен DirectoryObject.address.fiasCode - ФИАС-код объекта справочника.
  • В DirectoryObject.address.components в структурах AddressComponent.streetAddress и AddressComponent.number добавлено поле fiasCode - ФИАС-код улицы.

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

  • Заново выгрузить стили.
  • Изменена работа с FollowController:
    • Методы createRawMyLocationController и createSmoothMyLocationController удалены. Добавлен конструктор MyLocationController для создания контроллера перемещения маркера геопозиции.
    • Теперь не нужно указывать источник направления, поэтому удалены значения FollowBearing.SATELLITE и FollowBearing.MAGNETIC. Добавлено значение FollowBearing.ON для включения слежения - источник выбирается автоматически.
    • Удалено поле FollowPosition.tilt. Слежение за наклоном теперь нужно включать отдельно. В конструктор CameraBehaviour добавлен новый параметр 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.
  • Из MobileSDK 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.
  • Поддержан 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 для слежения за наклоном. Добавлен новый конструктор 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.
  • Оптимизированы модели иммерсивных деревьев.
  • Добавлена новая модель для отображения маркера текущего местоположения.
  • Добавлены MarkerOptions.iconAnimationMode и Marker.iconAnimationMode для возможности задания режима анимации в маркерах. Режим может быть обычным или зацикленным.
  • В DGis.initialize добавлен параметр platformHttpClient для задания пользовательской реализации сетевого клиента. Для переопределения сетевого клиента нужно сделать реализацию интерфейса HttpClient.
  • Исправлена работа метода SimpleClusterObject.setIcon при первом вызове.
  • Исправлена работа кластеризации через MapObjectManager.withClustering, если передать дробные значения minZoom и maxZoom.
  • Обновлен логотип 2GIS в копирайте на снапшотах карты.
  • В NavigationView при отображении полного маршрута отображается только оставшаяся часть маршрута.
  • По умолчанию отключено кэширование тайлов FreeRoam при навигации для уменьшения запросов к бэкендам.
  • Теперь при формировании запроса в справочник через SearchQueryBuilder для определения локали всегда берется первое значение из метода LocaleManager.locales, если не удалось определить локаль по области поиска.
  • Теперь при формировании запроса в справочник через SearchQueryBuilder для определения локали не используется текущая геопозиция пользователя, а берется первое значение из метода LocaleManager.locales, если в SearchQueryBuilder явно не задана область для поиска.
  • Исправлена ошибка, возникающая при обращении к полям SimpleClusterObject при формировании кластера в реализации метода SimpleClusterRenderer.renderCluster.
  • Добавлены два метода SearchQueryBuilder.fromRubricIds и SearchQueryBuilder.fromQueryTextAndRubricIds для создания поисковых запросов с фильтрацией по идентификаторам рубрик.
  • Добавлено новое поле DirectoryObject.tradeLicense с информацией о лицензии организации.
  • Поддержана работа справочника с новым форматом ключей.
  • Исправлено падение при изменении доступности GPS при использовании DefaultLocationSource.
  • Исправлен расчет оставшегося рабочего времени организации в Directory.workStatus при офлайн поиске.
  • Контрол TUGC в режиме FreeRoam доступен только при добавлении RoadEventSource на карту.
  • Поддержана работа справочника с новым форматом ключей.
  • Исправлено падение при изменении доступности GPS при использовании DefaultLocationSource.
  • Появилась возможность задавать исключаемые области через ExcludedArea при поиске маршрутов.
  • Исправлено потенциальное падение при добавлении маркера на карту с подписью через Marker.

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

  • Необходимо заново выгрузить стили.
  • Методы DgisSource.createOnlineDgisSource и DgisSource.createOfflineDgisSource удалены. Вместо них нужно использовать DgisSource.createDgisSource с дополнительным параметром DgisSourceWorkingMode - режим работы карты. Сейчас доступно четыре режима работы: ONLINE, OFFLINE, HYBRID_ONLINE_FIRST и HYBRID_OFFLINE_FIRST.
  • FollowController теперь возвращает StyleZoom, а не Zoom.
  • FollowValue.ZOOM переименован в FollowValue.STYLE_ZOOM.
  • ZoomFollowController переименован в StyleZoomFollowController.
  • ZoomToTiltRelation переименован в StyleZoomToTiltRelation.
  • SpeedRangeToZoom переименован в SpeedRangeToStyleZoom.
  • Метод Projection.screenToMap теперь вместо исключения возвращает пустое значение, если точка находится за пределами карты.
  • Методы BaseCamera.setPadding и BaseCamera.setPositionPoint удалены. Enum CameraPositionPointChangeBehaviour также удален. Поля BaseCamera.padding и BaseCamera.positionPoint теперь являются сеттерами.
  • Методы Camera.animatedMoveStarted и Camera.animatedMoveFinished удалены. Вместо них можно использовать канал Camera.stateChannel.
  • Каналы IndoorControlModel.levelNames и IndoorControlModel.activeLevelIndex переименованы в IndoorControlModel.levelNamesChannel и IndoorControlModel.activeLevelIndexChannel соответственно. Метод IndoorControlModel.onLevelClicked удален. Метод IndoorControlModel.isMarkedLevel переименован в IndoorControlModel.isLevelMarked.

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

  • Изменены названия в ZoomFollowSettings, чтобы лучше соответствовать назначению.
  • Метод Model.applyBetterRoute удален. Вместо него появился метод Model.betterRouteResponse и enum BetterRouteResponse для работы с альтернативными маршрутами.
  • Удалено значение State.FREE_ROAM. Теперь для определения, что навигатор в режиме Free Roam, нужно смотреть на значение RouteInfo.routeBuildOptions - оно должно быть пустым.
  • Добавлена возможность устанавливать Lottie-анимацию у маркера через Marker.icon. Добавлен метод imageFromLottieJSON. Метод imageFromAsset поддерживает JSON-файл с Lottie-анимацией.
  • В SearchResult добавлено поле dynamicFilters - динамические фильтры, которые можно дополнительно применить для поисковой выдачи.
  • В DirectoryFilter добавлено поле dynamic для передачи динамических фильтров.
  • Добавлен метод BaseCamera.maxTiltRestriction для задания и получения функции зависимости максимального угла наклона камеры от стилевого zoom-уровня.
  • Добавлена возможность создать MapObjectManager с генерализацией объектов через MapObjectManager.withGeneralization.
  • Добавлен метод Projection.screenToMapClipped, который возвращает ближайшую точку карты к проекции указанной точки экрана.
  • В режиме навигатора теперь отображаются альтернативные маршруты, которые могут быть предложены как маршрут лучше. Model.betterRouteChannel — канал для оповещений о появлении альтернативного маршрута. Model.betterRouteResponse — метод для подтверждения альтернативного маршрута. Маршруты настраиваются с помощью NavigationManager.alternativeRoutesProviderSettings.
  • Добавлен метод Voice.playWelcome для воспроизведения образца голоса в навигаторе.
  • В RoutePointKind добавлено больше типов для идентификации точечных объектов на маршруте.
  • Появилась возможность задавать исключаемые области при поиске маршрутов через ExcludedArea.
  • Методы DgisSource.createOnlineDgisSource и DgisSource.createOfflineDgisSource удалены. Вместо них нужно использовать DgisSource.createDgisSource с дополнительным параметром DgisSourceWorkingMode - режим работы карты. Сейчас доступно четыре режима работы: ONLINE, OFFLINE, HYBRID_ONLINE_FIRST и HYBRID_OFFLINE_FIRST.
  • FollowController теперь возвращает StyleZoom, а не Zoom.
  • FollowValue.ZOOM переименован в FollowValue.STYLE_ZOOM.
  • ZoomFollowController переименован в StyleZoomFollowController.
  • ZoomToTiltRelation переименован в StyleZoomToTiltRelation.
  • SpeedRangeToZoom переименован в SpeedRangeToStyleZoom.
  • Метод Projection.screenToMap теперь вместо исключения возвращает пустое значение, если точка находится за пределами карты.
  • Методы BaseCamera.setPadding и BaseCamera.setPositionPoint удалены. Enum CameraPositionPointChangeBehaviour также удален. Поля BaseCamera.padding и BaseCamera.positionPoint теперь являются сеттерами.
  • Методы Camera.animatedMoveStarted и Camera.animatedMoveFinished удалены. Вместо них можно использовать канал Camera.stateChannel.
  • Каналы IndoorControlModel.levelNames и IndoorControlModel.activeLevelIndex переименованы в IndoorControlModel.levelNamesChannel и IndoorControlModel.activeLevelIndexChannel соответственно. Метод IndoorControlModel.onLevelClicked удален. Метод IndoorControlModel.isMarkedLevel переименован в IndoorControlModel.isLevelMarked.
  • Изменены названия в ZoomFollowSettings, чтобы лучше соответствовать назначению.
  • Метод Model.applyBetterRoute удален. Вместо него добавлен метод Model.betterRouteResponse и enum BetterRouteResponse для работы с альтернативными маршрутами.
  • Удалено значение State.FREE_ROAM. Теперь для определения, что навигатор в режиме Free Roam, нужно смотреть на значение RouteInfo.routeBuildOptions - оно должно быть пустым.
  • Уменьшен размер Full сборки за счет уменьшения зависимости Offline справочника от других модулей.
  • Исправлены утечки памяти при разрушении карты с активным перелётом.
  • Оптимизировали использование одного источника данных DgisSource, добавленного в 2 и более объектов Map.
  • Исправили работу канала Map.dataLoadingStateChannel, который теперь учитывает любую работу с картой (добавление объектов, изменение темы, добавление источников данных и т.д.).
  • В случаях, когда точка позиции камеры расположена ближе к нижнему краю экрана, значение максимального угла наклона камеры может быть уменьшено.
  • Теперь маршрут не будет отображаться на карте в режиме навигации до появления позиции на нем.
  • Исправлен возврат в режим слежения при работе навигатора по умолчанию.
  • Добавлена поддержка иконки автобус + знак "Въезд запрещен" в баблах полосности.
  • Установлены цвета для градиента линии неактивного маршрута.
  • Исправили падение, когда в ключе указаны ограничения по регионам, у которых нет офлайн-данных.
  • Исправлено потенциальное падение при вращении карты.
  • Исправлено потенциальное падение при анимации появления маркеров с SVG изображением.
  • В метод DgisSource.setHighlighted теперь можно передавать идентификаторы входов в здание для их выделения/снятия выделения.
  • Исправлено отображение маркеров с SVG изображением.
  • У слоёв Parking lots with unknown price, Parking for persons with disabilities, Parking for residents, Parking for taxi, Free parking и Covered parking поменялся размер иконки.
  • В ночной теме в каталоге POI icons у слоёв Airport, Railway station, Bus terminal и Port поменялся цвет подписи.
  • Изменения для выделенного состояния:
    • Цвета заливки и обводки: каталог Flat buildings.
    • Цвета заливки верхней плоскости, стены и обводки: каталог Building 3D.
    • Иконка: слои Entrances, under buildings, Entrances, over buildings, Small gates, Boom gates, Parking lots with unknown price, Parking for persons with disabilities, Parking for residents, Parking for taxi, Free parking, Covered parking.
    • Иконка: каталоги Sights (кроме слоя Park в ночной теме), POI icons (только в дневной теме), Transport landmarks (только в дневной теме), Public transport stops icons (кроме слоёв Railway station point и Stop point).
    • Размер иконки: каталоги Parking lots bubbles (слои Paid parking, Parking lots with unknown price, Parking for residents, Parking for persons with disabilities, Parking for taxi, Free parking), POI icons (только в ночной теме), Transport landmarks (только в ночной теме), слой Park каталога Sights (только в ночной теме).
    • Иконка и цвет подписи: каталог Metro stations icons (кроме слоёв MCD 1, MCD 2), Metro exits icons (кроме слоёв MCD 1, MCD 2).
    • Размер иконки и цвет подписи: каталог Metro stations icons (слои MCD 1, MCD 2), Metro exits icons (слои MCD 1, MCD 2).
    • Цвет заливки и ширина линии: каталог Roads в дневной теме (кроме Walkways, Intercity, background, Federal, background).
    • Цвет заливки: каталог Roads в ночной теме, каталог Roads в дневной теме (слой Walkways).
  • Добавился слой Entrances, arrows только с выделенным состоянием.
  • Исправлено падение при уничтожении объекта Context.
  • Исправлено падение, когда не удалось закэшировать тайлы карты.
  • В метод calcPosition добавлен параметр size - размер карты.
  • Исправлена ошибка, при которой настройка HttpOptions.timeout никак не влияла на таймаут запросов через OnlineSearchManager/SmartSearchManager.
  • Удалено появление OpenStreetMap в копирайте.
  • Исправлено падение при навигации в случае, если голосовой инструкции нет в пакете данных.
  • Исправлено определение локали при формировании запросов через OnlineSearchManager.
  • Исправлена проблема, при которой после завершения навигации оставался периодический перелет к текущему местоположению, если камера находилась в состоянии покоя.
  • Добавлена пешая навигация в здании. Включается, когда маршрут построен с учетом этажей (с флагом PedestrianRouteSearchOptions.useIndoor) при входе в здание. UI навигатора меняется - отображается контрол переключения этажей с пометками, через какие этажи проходит маршрут, в нижней панели отображается номер этажа точки назначения. В NavigationManager добавлен IndoorDetector для определения нахождения пользователя в помещении в режиме навигации.
  • Добавлена возможность поиска и отображения пешеходных маршрутов в зданиях с этажными планами.
    • При поиске должно быть включено PedestrianRouteSearchOptions.useIndoor (по умолчанию включено).
    • Маршрут в здании отображается пунктиром на активном этаже, а при включенном RouteMapObjectDisplayFlag.inactiveFloors - на всех этажах.
    • На переходах между этажами отображаются иконки с инструкциями, их видимостью управляет RouteMapObjectDisplayFlag.indoorInstructions.
    • Получить информацию об этажах, через которые проходит маршрут, можно с помощью Route.levels.
  • Добавлен класс BaseCamera для хранения основных настроек камеры. Класс Camera является наследником BaseCamera. В BaseCamera также добавлен метод clone для копирования камеры.
  • Добавлены перегрузки для методов zoomOutToFit и calcPosition, принимающие вместо геометрий массив объектов карты SimpleMapObject.
  • Добавлен метод быстрого получения базовой информации о маршрутах (время в пути, длина и др.) без их построения - TrafficRouter.findBriefRouteInfos.
  • Добавлен поиск проезда на самокатах. Для этого необходимо задать ScooterRouteSearchOptions в TrafficRouter.findRoute.
  • Добавлена информация об уровне высот на маршруте - Route.altitudes.
  • Добавлена информация о запретах перемещения по маршруту - Route.truckRestrictedAreas, Route.vehicleRestrictedAreas.
  • Добавлена возможность "съедать" маршрут с любого конца - RouteMapObject.passedDistanceVisualization.
  • Добавлен метод для одновременного задания нескольких отображаемых маршрутов RouteMapObject.replaceAllObjects.
  • Добавлены настройки отображения баблов на маршруте RouteMapObject.calloutLabelFlags, RouteMapObject.calloutLabelDisplayMode.
  • Появилась возможность не скрывать некоторые элементы маршрута по мере его "съедания" - RouteMapObject.permanentDisplayFlags.
  • Добавлен класс для управления слежением карты за маркером геопозиции в навигаторе - NavigationFollowController.
  • Добавлена возможность получить бабл маршрута через Map.getRenderedObject, возвращаемый объект имеет тип RouteInfoCalloutMapObject.
  • Улучшена работа SmartSearchManager - теперь при любых исключениях в OnlineSearchManager происходит переключение на OfflineSearchManager.
  • Появилась возможность задавать идентификатор для запросов в WebAPI для On-Premise ключей.
  • Обновлен логотип 2GIS в копирайте на карте.
  • В DefaultLocationSource добавлено свойство lastPosition - последнее известное местоположение пользователя.
  • Реализованы методы MapView.addObjectTappedCallback, MapView.addObjectLongTouchCallback, MapView.removeObjectTappedCallback, MapView.removeLongTouchCallback для добавления и удаления MapObjectTappedCallback - обработчиков тапа и долгого нажатия на карту.
  • Изменена сигнатура методов zoomOutToFit и calcPosition. zoomOutToFit теперь принимает только камеру и геометрию. В calcPosition теперь помимо камеры и геометрии можно передать активную область, угол наклона и поворота карты, поэтому теперь необязательно предварительно настраивать камеру для расчета позиции.
  • Удален RoutePosition - избыточный класс, вместо него используется RoutePoint.
  • Удалено Model.cameraProgressChannel, вместо него необходимо использовать класс CameraNotifier.
  • Traffic.durations теперь имеет тип MillisecondsRouteAttribute вместо SecondsRouteLongAttribute и большую точность значений.
  • Route.obstacles теперь имеет тип ObstacleInfoRouteAttribute и помимо типа препятствия содержит дополнительную информацию.
  • Конструктор ZoomFollowController теперь принимает параметром Map.
  • В MapView был удален метод showOsmCopyright.
  • Увеличена точность отображения оставшегося времени в пути в навигаторе.
  • В случае пустого результата OfflineSearchManager не кидает исключение, а возвращает пустой список.
  • Более корректное вычисление точки расхождения между основным маршрутом и маршрутом лучше.
  • Исправлено определение локали в поисковых запросах. Теперь регион определяется через область интереса или текущее местоположение пользователя.
  • Добавлена проверка на добавление пользовательских маркеров с пустым изображением.
  • Исправлена проблема, при которой маршрут лучше исчезал вместе с панелью выбора маршрута по истечению таймаута.
  • У пешего маршрута (группа Pedestrian route line) и объектов на маршруте (Point A, Point B, Route joints, Intermediate route points в группе Dynamic objects) добавлена логика отображения на этажах.
  • Добавлены инструкции навигации в здании - группа Indoor instructions.
  • Cлой "Point A" теперь не отображается в режиме навигации.
  • Выключено отображение слоёв "Region border" и "Regions".
  • Установлены цвета для градиента линии неактивного маршрута.
  • Исправлен селектор для платных парковок.
  • Слои "Intermediate route points", "Route joints", "Point A", "Point B" теперь сразу после слоя "Location precision radius".

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

  • Изменена сигнатура методов zoomOutToFit и calcPosition. zoomOutToFit теперь принимает только камеру и геометрию. В calcPosition теперь помимо камеры и геометрии можно передать активную область, угол наклона и поворота карты, поэтому теперь необязательно предварительно настраивать камеру для расчета позиции.
  • Конструктор ZoomFollowController теперь принимает параметром Map.
  • В MapView был удален метод showOsmCopyright.

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

  • Удален RoutePosition - избыточный класс, вместо него используется RoutePoint.
  • Удалено Model.cameraProgressChannel, вместо него необходимо использовать класс CameraNotifier.
  • Traffic.durations теперь имеет тип MillisecondsRouteAttribute вместо SecondsRouteLongAttribute и большую точность значений.
  • Route.obstacles теперь имеет тип ObstacleInfoRouteAttribute и помимо типа препятствия содержит дополнительную информацию.