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

Миграция с предыдущих мажорных версий SDK

С версий 12.x на 13.x

Для версий Full и Map

  • Повторно выгрузите стили: исправлены ошибки отображения пользовательских и иммерсивных объектов.

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

  • Добавлена группа Traffic v13.0.0 для отображения новых цветов тайлов с пробками.

  • Добавлена группа Car route line v13.0.0 для отображения автомобильных маршрутов на иммерсивных дорогах.

  • Теперь для отслеживания изменений состояний камеры используется единый канал 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().
  • Удалён класс EventsProcessingSettings.

  • Объект Gesture переименован в TransformGesture.

  • Объект ScalingSettings переименован в ScalingRecognizeSettings.

  • Объект RotationSettings переименован в RotationRecognizeSettings.

  • Объект MultiTouchShiftSettings переименован в MultiTouchRecognizeSettings.

  • Объект TiltSettings переименован в TiltRecognizeSettings.

  • GestureManager.scalingSettings, GestureManager.rotationSettings, GestureManager.multitouchShiftSettings и GestureManager.tiltSettings теперь возвращают объекты с типами ScalingGestureSettings, RotationGestureSettings, MultiTouchGestureSettings и TiltGestureSettings соответственно.

  • Класс Color для представления цвета перенесён из пакета ru.dgis.sdk.map.

  • Класс ScreenDistance перенесён из пакета ru.dgis.sdk.map.

  • Класс ScreenPoint перенесён из пакета ru.dgis.sdk.map.

  • Класс ScreenShift перенесён из пакета ru.dgis.sdk.map.

  • Свойство buildingLevels для получения этажных планов удалено из DirectoryObject.

  • Свойство DirectoryObject.buildingInfo теперь опциональное.

  • Свойство BuildingInfo.buildingId теперь обязательное и не может быть пустым.

  • Свойство LevelInfo.id теперь опциональное.

  • Изменён тип свойства PublicTransportDirectoryRouteInfo.color с Int? на Color?.

  • Метод SearchQueryBuilder.setGeoPoint() теперь принимает опциональный тип значения.

  • Метод SearchQueryBuilder.setRadius() теперь принимает опциональный тип значения.

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

  • Удалены функция getRoadMacroGraph и класс RoadMacroGraph. Теперь для построения офлайн-маршрутов между соседними регионами достаточно скачать пакеты нужных регионов.
  • Удалены класс для настройки позиции бабла с полосами на маршруте (LanesCalloutMapPosition и RouteMapObject.lanesCalloutPositions) и свойство в RouteMapObject.
  • Переименован класс UIntRouteLongAttribute в DoubleRouteLongAttribute.
  • Изменён тип свойства Route.trafficLights с VoidRouteAttribute на StringRouteAttribute.
  • Добавлен новый вид транспорта MOTORCYCLE (мотоцикл) в TransportType.
  • Добавлены параметры для настройки уровня масштабирования для стиля в конструктор SpeedRangeToStyleZoom.
  • Добавлены значения для пандусов RAMP_DOWN, RAMP_UP, SMOOTH_RAMP_DOWN и SMOOTH_RAMP_UP в RoadSubtype.
  • Добавлены новые значения позиций и ориентиров в CarInstructionCrossroadLandmark.
  • Добавлены значения цветов DEEP_GREEN и ORANGE в TrafficSpeedColor.
  • Добавлен флаг CROSSING для отображения начала и конца переправы на маршруте в RouteMapObjectDisplayFlag.
  • Добавлен новый тип точки маршрута CROSSING (начало и конец переправы) в RoutePointKind.
  • Добавлены значения для оповещений о событиях BETTER_ROUTE («маршрут лучше») и HUMPS (искусственные дорожные неровности) в SoundCategory.

С версий 10.x на 12.x

Для версий Full и Map

  • Повторно выгрузите стили.
  • Для корректного отображения маркера геопозиции скопируйте соответствующие слои.
  • 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 теперь не происходит подмена источника геопозиции.
  • Добавлено значение GEO_POSITION в EventsProcessingSettings.rotationCenter и EventsProcessingSettings.scalingCenter для установки режима работы жеста относительно геопозиции. Для задания позиции, относительно которой будет работать жест, используйте метод GestureManager.setTargetGeoPoint().
  • Meter перенесён из модуля ru.dgis.sdk.map в ru.dgis.sdk.
  • Удалено значение CameraState.FOLLOW_POSITION. Вместо него ориентируйтесь на значение Camera.behaviour.
  • Добавлены значения для SuggestedType, SuggestorType и ObjectType и теперь соответствуют результатам Places API.
  • Удалён метод createRasterTileDataSource() и добавлен новый источник RasterTileSource с возможностью задания прозрачности растровых тайлов.

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

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

С версий 7.x на 10.x

Для версий Full и Map

  • Повторно выгрузите стили.

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

    • Удалены методы createRawMyLocationController() и createSmoothMyLocationController(). Добавлен конструктор MyLocationController для создания контроллера перемещения маркера геопозиции.
    • Удалены значения FollowBearing.SATELLITE и FollowBearing.MAGNETIC, т. к. теперь не нужно указывать источник направления. Добавлено значение FollowBearing.ON для включения слежения — источник выбирается автоматически.
    • Удалено поле FollowPosition.tilt. Слежение за наклоном теперь нужно включать отдельно. Добавлен параметр tilt в конструктор CameraBehaviour для слежения за наклоном.
    • Удалены значения FollowValue.SATELLITE_BEARING, FollowValue.MAGNETIC_BEARING и FollowValue.ACCURACY. Вместо них добавлено значение FollowValue.BEARING с автоматическим выбором источника.
    • Удалены методы satelliteBearing(), magneticBearing() и accuracy() из интерфейса CustomFollowController. Вместо них добавлен метод CustomFollowController.bearing().
    • Удалены методы setClock(), satelliteBearing(), magneticBearing() и accuracy() из FollowController. Вместо них добавлены методы 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 удалены PackageManager и Package, что уменьшило размер продукта.

  • Удалены поля lightTheme и darkTheme в MapOptions. Для выставления темы используйте класс MapTheme в методах MapOptions.setTheme() и MapView.setTheme().

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

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

С версий 5.x на 7.x

Для версий Full и Map

  • Повторно выгрузите стили.
  • Удалены методы 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().

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

  • Изменены названия в ZoomFollowSettings, чтобы лучше соответствовать назначению.
  • Удалён метод Model.applyBetterRoute(). Вместо него добавлен метод Model.betterRouteResponse() и enum BetterRouteResponse для работы с альтернативными маршрутами.
  • Удалено значение State.FREE_ROAM. Чтобы определить, что навигатор находится в режиме свободной навигации, используйте значение RouteInfo.routeBuildOptions (оно должно быть пустым).

С версий 4.x на 5.x

Для версий Full и Map

  • Изменена сигнатура методов:

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

  • Удалён метод showOsmCopyright() из класса MapView.

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

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

С версий 2.x на 4.x

Для версий Full и Map

  • Обратитесь в службу поддержки 2ГИС для получения нового ключа для использования Mobile SDK. Обязательно укажите appId приложения, для которого будет создан ключ. Полученный файл ключа dgissdk.key нужно добавить в assets.
  • Удалена структура ApiKeys и соответствующий параметр в DGis.initialize.
  • Обновите стили.
  • Переименован класс DirectoryObjectId в DgisObjectId.
  • Удалены функции serialize и deserialize для CameraPosition. Вместо них используйте новый механизм сериализации PackedMapState.
  • Удалены методы SearchQueryBuilder.setLocation() и SuggestQueryBuilder.setLocation(). Теперь значение автоматически берётся из источника геопозиции.
  • Удалён метод PackedSearchQuery.location().
  • Удалены SearchResultMarkerObject и SearchResultMarkerSource для генерализации маркеров поисковой выдачи, т. к. невозможно динамически добавлять или удалять объекты. В качестве альтернативы вы можете реализовать генерализацию маркеров или воспользоваться кластеризацией.
  • При создании MyLocationMapObjectSource по умолчанию используется SmoothMyLocationController вместо RawMyLocationController.

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

  • Удалены списки с информацией о маршруте в RouteInfo: cameras, instructions, laneSigns и т. д. Удалены индексы текущих элементов Model.cameraIndexChannel и Model.instructionIndexChannel. Вместо этого получайте информацию непосредственно из маршрута и текущей позиции. Например, для получения ближайшей камеры используйте Model.route.route.cameras.findNearForward(position).

  • Переименованы параметры поиска маршрута:

    • BicycleRouteSearchOptions.avoidUnderpasses в avoidUnderpassesAndOverpasses;
    • CarRouteSearchOptions.avoidFerry в avoidFerries;
    • TruckRouteSearchOptions actualWeight, maxPermissibleWeight в actualMass, maxPermittedMass.
  • Значение enum RoadType.ROAD разделено на подтипы RoadType.HIGHWAY, RoadType.FEDERAL_ROAD и другие.

  • Заменён метод VoiceSelector.setVoice() на свойство voice.

  • Удалены Model.durationChannel, Model.routeDurationChannel. Вместо них используйте Model.dynamicRouteInfo.traffic.durations.calculateDuration(routePoint).

  • Изменён набор значений в enum RoadSurface.

  • Удалены Model.navigationActiveChannel, NavigationManager.uiSettings. Вместо них для получения активности навигатора используйте новый класс ActivityTracker.

С версий 1.x на 2.x

  • Вместо Arcdegree используйте отдельные типы Bearing, Latitude и Longitude для задания поворота камеры, широты и долготы.

  • Изменён API для работы с пробками:

    • Переименован TrafficScore в TrafficScoreProvider.
    • Переименован TrafficScoreValue в TrafficScore.
    • Удалён TrafficManager.
    • TrafficScoreProvider теперь создаётся через конструктор.
  • Переименован метод LocaleManager.setOverridedLocales() в overrideLocales().

  • Перенесён класс ScreenSize из ru.dgis.map в ru.dgis.common.

  • Вместо свойств HttpOptions.userSslCerts и HttpOptions.disableSystemSslCerts используйте свойство HttpOptions.certificates для задания списка сертификатов.

  • Исправлены и изменены API пользовательских контроллеров камеры. Теперь контроллер может быть только один. Используйте методыCamera.setCustomFollowController() и Camera.removeCustomFollowController() для добавления и удаления контроллеров.