2gis map sdk android

Содержание
  1. 2gis map sdk android
  2. Создание карты Чтобы создать карту, добавьте MapView в ваш activity: Для карты можно указать начальные координаты ( cameraTargetLat — широта; cameraTargetLng — долгота) и масштаб ( cameraZoom ). MapView также можно создать программно. В таком случае настройки можно указать в виде объекта MapOptions. Объект карты (Map) можно получить, вызвав метод getMapAsync() : Общие принципы работы Отложенные результаты Некоторые методы SDK (например те, которые обращаются к удалённому серверу) возвращают отложенные результаты (Future). Для работы с ними нужно создать обработчик получения данных и обработчик ошибок. Пример получения объекта из справочника: По умолчанию обработка результатов происходит в UI-потоке. Чтобы это изменить, для onResult и onError можно указать Executor. Подробнее про работу со справочником можно посмотреть в разделе Справочник объектов. Потоки значений Некоторые объекты SDK предоставляют потоки значений, которые можно обработать, используя механизм каналов: на поток можно подписаться, указав функцию-обработчик данных, и отписаться, когда обработка данных больше не требуется. Для работы с потоками значений используется интерфейс Channel. Пример подписки на изменение видимой области карты (поток новых прямоугольных областей): После окончания работы с каналом важно отменить подписку, чтобы избежать утечки памяти. Для этого нужно вызвать метод close() : Источники данных для карты В некоторых случаях для добавления объектов на карту нужно создать специальный объект — источник данных. Источники данных выступают в роли менеджеров объектов: вместо добавления объектов на карту напрямую, на карту добавляется источник данных и вся последующая работа с объектами происходит через него. Источники данных бывают разных типов: движущиеся маркеры, маршруты с отображением текущей загруженности дорог, произвольные геометрические фигуры и т.д. Для каждого типа данных существует свой класс. В общем случае работа с источниками данных выглядит следующим образом: Чтобы удалить созданный источник данных и все связанные с ним объекты, нужно вызвать метод карты removeSource() : Список активных источников данных можно получить, используя свойство map.sources . Добавление объектов Для добавления динамических объектов на карту (маркеров, линий, кругов, многоугольников) нужно создать менеджер объектов (MapObjectManager), указав объект карты. При удалении менеджера объектов удаляются все связанные с ним объекты на карте, поэтому его нужно сохранить в activity. Для добавления объектов используются методы addObject() и addObjects(). Для каждого динамического объекта можно указать поле userData , которое будет хранить произвольные данные, связанные с объектом. Настройки объектов можно менять после их создания. Для удаления объектов используются методы removeObject() и removeObjects(). Чтобы удалить все объекты, можно использовать метод removeAll(). Маркер Чтобы добавить маркер на карту, нужно создать объект Marker, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. В настройках нужно указать координаты маркера (параметр position ). Чтобы изменить иконку маркера, нужно указать объект Image в качестве параметра icon . Создать Image можно с помощью следующих функций: Чтобы изменить точку привязки иконки (выравнивание иконки относительно координат на карте), нужно указать параметр anchor. Дополнительно можно указать текст для маркера и другие настройки (см. MarkerOptions). Линия Чтобы нарисовать на карте линию, нужно создать объект Polyline, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Кроме списка координат для точек линии, в настройках можно указать ширину линии, цвет, пунктир, обводку и другие параметры (см. PolylineOptions). Свойство-расширение .lpx преобразует целое число в объект LogicalPixel. Многоугольник Чтобы нарисовать на карте многоугольник, нужно создать объект Polygon, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Координаты для многоугольника указываются в виде двумерного списка. Первый вложенный список должен содержать координаты основных вершин многоугольника. Остальные вложенные списки не обязательны и могут быть заданы для того, чтобы создать вырез внутри многоугольника (один дополнительный список — один вырез в виде многоугольника). Дополнительно можно указать цвет полигона и параметры обводки (см. PolygonOptions). Кластеризация Для добавления маркеров на карту в режиме кластеризации нужно создать менеджер объектов (MapObjectManager) через MapObjectManager.withClustering(), указав инстанс карты, расстояние между кластерами в логических пикселях, максимальный zoom-уровень формирования кластеров и пользовательскую имплементацию протокола SimpleClusterRenderer. SimpleClusterRenderer используется для кастомизации кластеров в MapObjectManager. Управление камерой Для работы с камерой используется объект Camera, доступный через свойство map.camera . Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  3. Общие принципы работы Отложенные результаты Некоторые методы SDK (например те, которые обращаются к удалённому серверу) возвращают отложенные результаты (Future). Для работы с ними нужно создать обработчик получения данных и обработчик ошибок. Пример получения объекта из справочника: По умолчанию обработка результатов происходит в UI-потоке. Чтобы это изменить, для onResult и onError можно указать Executor. Подробнее про работу со справочником можно посмотреть в разделе Справочник объектов. Потоки значений Некоторые объекты SDK предоставляют потоки значений, которые можно обработать, используя механизм каналов: на поток можно подписаться, указав функцию-обработчик данных, и отписаться, когда обработка данных больше не требуется. Для работы с потоками значений используется интерфейс Channel. Пример подписки на изменение видимой области карты (поток новых прямоугольных областей): После окончания работы с каналом важно отменить подписку, чтобы избежать утечки памяти. Для этого нужно вызвать метод close() : Источники данных для карты В некоторых случаях для добавления объектов на карту нужно создать специальный объект — источник данных. Источники данных выступают в роли менеджеров объектов: вместо добавления объектов на карту напрямую, на карту добавляется источник данных и вся последующая работа с объектами происходит через него. Источники данных бывают разных типов: движущиеся маркеры, маршруты с отображением текущей загруженности дорог, произвольные геометрические фигуры и т.д. Для каждого типа данных существует свой класс. В общем случае работа с источниками данных выглядит следующим образом: Чтобы удалить созданный источник данных и все связанные с ним объекты, нужно вызвать метод карты removeSource() : Список активных источников данных можно получить, используя свойство map.sources . Добавление объектов Для добавления динамических объектов на карту (маркеров, линий, кругов, многоугольников) нужно создать менеджер объектов (MapObjectManager), указав объект карты. При удалении менеджера объектов удаляются все связанные с ним объекты на карте, поэтому его нужно сохранить в activity. Для добавления объектов используются методы addObject() и addObjects(). Для каждого динамического объекта можно указать поле userData , которое будет хранить произвольные данные, связанные с объектом. Настройки объектов можно менять после их создания. Для удаления объектов используются методы removeObject() и removeObjects(). Чтобы удалить все объекты, можно использовать метод removeAll(). Маркер Чтобы добавить маркер на карту, нужно создать объект Marker, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. В настройках нужно указать координаты маркера (параметр position ). Чтобы изменить иконку маркера, нужно указать объект Image в качестве параметра icon . Создать Image можно с помощью следующих функций: Чтобы изменить точку привязки иконки (выравнивание иконки относительно координат на карте), нужно указать параметр anchor. Дополнительно можно указать текст для маркера и другие настройки (см. MarkerOptions). Линия Чтобы нарисовать на карте линию, нужно создать объект Polyline, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Кроме списка координат для точек линии, в настройках можно указать ширину линии, цвет, пунктир, обводку и другие параметры (см. PolylineOptions). Свойство-расширение .lpx преобразует целое число в объект LogicalPixel. Многоугольник Чтобы нарисовать на карте многоугольник, нужно создать объект Polygon, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Координаты для многоугольника указываются в виде двумерного списка. Первый вложенный список должен содержать координаты основных вершин многоугольника. Остальные вложенные списки не обязательны и могут быть заданы для того, чтобы создать вырез внутри многоугольника (один дополнительный список — один вырез в виде многоугольника). Дополнительно можно указать цвет полигона и параметры обводки (см. PolygonOptions). Кластеризация Для добавления маркеров на карту в режиме кластеризации нужно создать менеджер объектов (MapObjectManager) через MapObjectManager.withClustering(), указав инстанс карты, расстояние между кластерами в логических пикселях, максимальный zoom-уровень формирования кластеров и пользовательскую имплементацию протокола SimpleClusterRenderer. SimpleClusterRenderer используется для кастомизации кластеров в MapObjectManager. Управление камерой Для работы с камерой используется объект Camera, доступный через свойство map.camera . Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  4. Отложенные результаты Некоторые методы SDK (например те, которые обращаются к удалённому серверу) возвращают отложенные результаты (Future). Для работы с ними нужно создать обработчик получения данных и обработчик ошибок. Пример получения объекта из справочника: По умолчанию обработка результатов происходит в UI-потоке. Чтобы это изменить, для onResult и onError можно указать Executor. Подробнее про работу со справочником можно посмотреть в разделе Справочник объектов. Потоки значений Некоторые объекты SDK предоставляют потоки значений, которые можно обработать, используя механизм каналов: на поток можно подписаться, указав функцию-обработчик данных, и отписаться, когда обработка данных больше не требуется. Для работы с потоками значений используется интерфейс Channel. Пример подписки на изменение видимой области карты (поток новых прямоугольных областей): После окончания работы с каналом важно отменить подписку, чтобы избежать утечки памяти. Для этого нужно вызвать метод close() : Источники данных для карты В некоторых случаях для добавления объектов на карту нужно создать специальный объект — источник данных. Источники данных выступают в роли менеджеров объектов: вместо добавления объектов на карту напрямую, на карту добавляется источник данных и вся последующая работа с объектами происходит через него. Источники данных бывают разных типов: движущиеся маркеры, маршруты с отображением текущей загруженности дорог, произвольные геометрические фигуры и т.д. Для каждого типа данных существует свой класс. В общем случае работа с источниками данных выглядит следующим образом: Чтобы удалить созданный источник данных и все связанные с ним объекты, нужно вызвать метод карты removeSource() : Список активных источников данных можно получить, используя свойство map.sources . Добавление объектов Для добавления динамических объектов на карту (маркеров, линий, кругов, многоугольников) нужно создать менеджер объектов (MapObjectManager), указав объект карты. При удалении менеджера объектов удаляются все связанные с ним объекты на карте, поэтому его нужно сохранить в activity. Для добавления объектов используются методы addObject() и addObjects(). Для каждого динамического объекта можно указать поле userData , которое будет хранить произвольные данные, связанные с объектом. Настройки объектов можно менять после их создания. Для удаления объектов используются методы removeObject() и removeObjects(). Чтобы удалить все объекты, можно использовать метод removeAll(). Маркер Чтобы добавить маркер на карту, нужно создать объект Marker, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. В настройках нужно указать координаты маркера (параметр position ). Чтобы изменить иконку маркера, нужно указать объект Image в качестве параметра icon . Создать Image можно с помощью следующих функций: Чтобы изменить точку привязки иконки (выравнивание иконки относительно координат на карте), нужно указать параметр anchor. Дополнительно можно указать текст для маркера и другие настройки (см. MarkerOptions). Линия Чтобы нарисовать на карте линию, нужно создать объект Polyline, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Кроме списка координат для точек линии, в настройках можно указать ширину линии, цвет, пунктир, обводку и другие параметры (см. PolylineOptions). Свойство-расширение .lpx преобразует целое число в объект LogicalPixel. Многоугольник Чтобы нарисовать на карте многоугольник, нужно создать объект Polygon, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Координаты для многоугольника указываются в виде двумерного списка. Первый вложенный список должен содержать координаты основных вершин многоугольника. Остальные вложенные списки не обязательны и могут быть заданы для того, чтобы создать вырез внутри многоугольника (один дополнительный список — один вырез в виде многоугольника). Дополнительно можно указать цвет полигона и параметры обводки (см. PolygonOptions). Кластеризация Для добавления маркеров на карту в режиме кластеризации нужно создать менеджер объектов (MapObjectManager) через MapObjectManager.withClustering(), указав инстанс карты, расстояние между кластерами в логических пикселях, максимальный zoom-уровень формирования кластеров и пользовательскую имплементацию протокола SimpleClusterRenderer. SimpleClusterRenderer используется для кастомизации кластеров в MapObjectManager. Управление камерой Для работы с камерой используется объект Camera, доступный через свойство map.camera . Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  5. Потоки значений Некоторые объекты SDK предоставляют потоки значений, которые можно обработать, используя механизм каналов: на поток можно подписаться, указав функцию-обработчик данных, и отписаться, когда обработка данных больше не требуется. Для работы с потоками значений используется интерфейс Channel. Пример подписки на изменение видимой области карты (поток новых прямоугольных областей): После окончания работы с каналом важно отменить подписку, чтобы избежать утечки памяти. Для этого нужно вызвать метод close() : Источники данных для карты В некоторых случаях для добавления объектов на карту нужно создать специальный объект — источник данных. Источники данных выступают в роли менеджеров объектов: вместо добавления объектов на карту напрямую, на карту добавляется источник данных и вся последующая работа с объектами происходит через него. Источники данных бывают разных типов: движущиеся маркеры, маршруты с отображением текущей загруженности дорог, произвольные геометрические фигуры и т.д. Для каждого типа данных существует свой класс. В общем случае работа с источниками данных выглядит следующим образом: Чтобы удалить созданный источник данных и все связанные с ним объекты, нужно вызвать метод карты removeSource() : Список активных источников данных можно получить, используя свойство map.sources . Добавление объектов Для добавления динамических объектов на карту (маркеров, линий, кругов, многоугольников) нужно создать менеджер объектов (MapObjectManager), указав объект карты. При удалении менеджера объектов удаляются все связанные с ним объекты на карте, поэтому его нужно сохранить в activity. Для добавления объектов используются методы addObject() и addObjects(). Для каждого динамического объекта можно указать поле userData , которое будет хранить произвольные данные, связанные с объектом. Настройки объектов можно менять после их создания. Для удаления объектов используются методы removeObject() и removeObjects(). Чтобы удалить все объекты, можно использовать метод removeAll(). Маркер Чтобы добавить маркер на карту, нужно создать объект Marker, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. В настройках нужно указать координаты маркера (параметр position ). Чтобы изменить иконку маркера, нужно указать объект Image в качестве параметра icon . Создать Image можно с помощью следующих функций: Чтобы изменить точку привязки иконки (выравнивание иконки относительно координат на карте), нужно указать параметр anchor. Дополнительно можно указать текст для маркера и другие настройки (см. MarkerOptions). Линия Чтобы нарисовать на карте линию, нужно создать объект Polyline, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Кроме списка координат для точек линии, в настройках можно указать ширину линии, цвет, пунктир, обводку и другие параметры (см. PolylineOptions). Свойство-расширение .lpx преобразует целое число в объект LogicalPixel. Многоугольник Чтобы нарисовать на карте многоугольник, нужно создать объект Polygon, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Координаты для многоугольника указываются в виде двумерного списка. Первый вложенный список должен содержать координаты основных вершин многоугольника. Остальные вложенные списки не обязательны и могут быть заданы для того, чтобы создать вырез внутри многоугольника (один дополнительный список — один вырез в виде многоугольника). Дополнительно можно указать цвет полигона и параметры обводки (см. PolygonOptions). Кластеризация Для добавления маркеров на карту в режиме кластеризации нужно создать менеджер объектов (MapObjectManager) через MapObjectManager.withClustering(), указав инстанс карты, расстояние между кластерами в логических пикселях, максимальный zoom-уровень формирования кластеров и пользовательскую имплементацию протокола SimpleClusterRenderer. SimpleClusterRenderer используется для кастомизации кластеров в MapObjectManager. Управление камерой Для работы с камерой используется объект Camera, доступный через свойство map.camera . Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  6. Источники данных для карты В некоторых случаях для добавления объектов на карту нужно создать специальный объект — источник данных. Источники данных выступают в роли менеджеров объектов: вместо добавления объектов на карту напрямую, на карту добавляется источник данных и вся последующая работа с объектами происходит через него. Источники данных бывают разных типов: движущиеся маркеры, маршруты с отображением текущей загруженности дорог, произвольные геометрические фигуры и т.д. Для каждого типа данных существует свой класс. В общем случае работа с источниками данных выглядит следующим образом: Чтобы удалить созданный источник данных и все связанные с ним объекты, нужно вызвать метод карты removeSource() : Список активных источников данных можно получить, используя свойство map.sources . Добавление объектов Для добавления динамических объектов на карту (маркеров, линий, кругов, многоугольников) нужно создать менеджер объектов (MapObjectManager), указав объект карты. При удалении менеджера объектов удаляются все связанные с ним объекты на карте, поэтому его нужно сохранить в activity. Для добавления объектов используются методы addObject() и addObjects(). Для каждого динамического объекта можно указать поле userData , которое будет хранить произвольные данные, связанные с объектом. Настройки объектов можно менять после их создания. Для удаления объектов используются методы removeObject() и removeObjects(). Чтобы удалить все объекты, можно использовать метод removeAll(). Маркер Чтобы добавить маркер на карту, нужно создать объект Marker, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. В настройках нужно указать координаты маркера (параметр position ). Чтобы изменить иконку маркера, нужно указать объект Image в качестве параметра icon . Создать Image можно с помощью следующих функций: Чтобы изменить точку привязки иконки (выравнивание иконки относительно координат на карте), нужно указать параметр anchor. Дополнительно можно указать текст для маркера и другие настройки (см. MarkerOptions). Линия Чтобы нарисовать на карте линию, нужно создать объект Polyline, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Кроме списка координат для точек линии, в настройках можно указать ширину линии, цвет, пунктир, обводку и другие параметры (см. PolylineOptions). Свойство-расширение .lpx преобразует целое число в объект LogicalPixel. Многоугольник Чтобы нарисовать на карте многоугольник, нужно создать объект Polygon, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Координаты для многоугольника указываются в виде двумерного списка. Первый вложенный список должен содержать координаты основных вершин многоугольника. Остальные вложенные списки не обязательны и могут быть заданы для того, чтобы создать вырез внутри многоугольника (один дополнительный список — один вырез в виде многоугольника). Дополнительно можно указать цвет полигона и параметры обводки (см. PolygonOptions). Кластеризация Для добавления маркеров на карту в режиме кластеризации нужно создать менеджер объектов (MapObjectManager) через MapObjectManager.withClustering(), указав инстанс карты, расстояние между кластерами в логических пикселях, максимальный zoom-уровень формирования кластеров и пользовательскую имплементацию протокола SimpleClusterRenderer. SimpleClusterRenderer используется для кастомизации кластеров в MapObjectManager. Управление камерой Для работы с камерой используется объект Camera, доступный через свойство map.camera . Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  7. Добавление объектов Для добавления динамических объектов на карту (маркеров, линий, кругов, многоугольников) нужно создать менеджер объектов (MapObjectManager), указав объект карты. При удалении менеджера объектов удаляются все связанные с ним объекты на карте, поэтому его нужно сохранить в activity. Для добавления объектов используются методы addObject() и addObjects(). Для каждого динамического объекта можно указать поле userData , которое будет хранить произвольные данные, связанные с объектом. Настройки объектов можно менять после их создания. Для удаления объектов используются методы removeObject() и removeObjects(). Чтобы удалить все объекты, можно использовать метод removeAll(). Маркер Чтобы добавить маркер на карту, нужно создать объект Marker, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. В настройках нужно указать координаты маркера (параметр position ). Чтобы изменить иконку маркера, нужно указать объект Image в качестве параметра icon . Создать Image можно с помощью следующих функций: Чтобы изменить точку привязки иконки (выравнивание иконки относительно координат на карте), нужно указать параметр anchor. Дополнительно можно указать текст для маркера и другие настройки (см. MarkerOptions). Линия Чтобы нарисовать на карте линию, нужно создать объект Polyline, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Кроме списка координат для точек линии, в настройках можно указать ширину линии, цвет, пунктир, обводку и другие параметры (см. PolylineOptions). Свойство-расширение .lpx преобразует целое число в объект LogicalPixel. Многоугольник Чтобы нарисовать на карте многоугольник, нужно создать объект Polygon, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Координаты для многоугольника указываются в виде двумерного списка. Первый вложенный список должен содержать координаты основных вершин многоугольника. Остальные вложенные списки не обязательны и могут быть заданы для того, чтобы создать вырез внутри многоугольника (один дополнительный список — один вырез в виде многоугольника). Дополнительно можно указать цвет полигона и параметры обводки (см. PolygonOptions). Кластеризация Для добавления маркеров на карту в режиме кластеризации нужно создать менеджер объектов (MapObjectManager) через MapObjectManager.withClustering(), указав инстанс карты, расстояние между кластерами в логических пикселях, максимальный zoom-уровень формирования кластеров и пользовательскую имплементацию протокола SimpleClusterRenderer. SimpleClusterRenderer используется для кастомизации кластеров в MapObjectManager. Управление камерой Для работы с камерой используется объект Camera, доступный через свойство map.camera . Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  8. Маркер Чтобы добавить маркер на карту, нужно создать объект Marker, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. В настройках нужно указать координаты маркера (параметр position ). Чтобы изменить иконку маркера, нужно указать объект Image в качестве параметра icon . Создать Image можно с помощью следующих функций: Чтобы изменить точку привязки иконки (выравнивание иконки относительно координат на карте), нужно указать параметр anchor. Дополнительно можно указать текст для маркера и другие настройки (см. MarkerOptions). Линия Чтобы нарисовать на карте линию, нужно создать объект Polyline, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Кроме списка координат для точек линии, в настройках можно указать ширину линии, цвет, пунктир, обводку и другие параметры (см. PolylineOptions). Свойство-расширение .lpx преобразует целое число в объект LogicalPixel. Многоугольник Чтобы нарисовать на карте многоугольник, нужно создать объект Polygon, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Координаты для многоугольника указываются в виде двумерного списка. Первый вложенный список должен содержать координаты основных вершин многоугольника. Остальные вложенные списки не обязательны и могут быть заданы для того, чтобы создать вырез внутри многоугольника (один дополнительный список — один вырез в виде многоугольника). Дополнительно можно указать цвет полигона и параметры обводки (см. PolygonOptions). Кластеризация Для добавления маркеров на карту в режиме кластеризации нужно создать менеджер объектов (MapObjectManager) через MapObjectManager.withClustering(), указав инстанс карты, расстояние между кластерами в логических пикселях, максимальный zoom-уровень формирования кластеров и пользовательскую имплементацию протокола SimpleClusterRenderer. SimpleClusterRenderer используется для кастомизации кластеров в MapObjectManager. Управление камерой Для работы с камерой используется объект Camera, доступный через свойство map.camera . Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  9. Линия Чтобы нарисовать на карте линию, нужно создать объект Polyline, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Кроме списка координат для точек линии, в настройках можно указать ширину линии, цвет, пунктир, обводку и другие параметры (см. PolylineOptions). Свойство-расширение .lpx преобразует целое число в объект LogicalPixel. Многоугольник Чтобы нарисовать на карте многоугольник, нужно создать объект Polygon, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Координаты для многоугольника указываются в виде двумерного списка. Первый вложенный список должен содержать координаты основных вершин многоугольника. Остальные вложенные списки не обязательны и могут быть заданы для того, чтобы создать вырез внутри многоугольника (один дополнительный список — один вырез в виде многоугольника). Дополнительно можно указать цвет полигона и параметры обводки (см. PolygonOptions). Кластеризация Для добавления маркеров на карту в режиме кластеризации нужно создать менеджер объектов (MapObjectManager) через MapObjectManager.withClustering(), указав инстанс карты, расстояние между кластерами в логических пикселях, максимальный zoom-уровень формирования кластеров и пользовательскую имплементацию протокола SimpleClusterRenderer. SimpleClusterRenderer используется для кастомизации кластеров в MapObjectManager. Управление камерой Для работы с камерой используется объект Camera, доступный через свойство map.camera . Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  10. Многоугольник Чтобы нарисовать на карте многоугольник, нужно создать объект Polygon, указав нужные настройки, и передать его в вызов addObject() менеджера объектов. Координаты для многоугольника указываются в виде двумерного списка. Первый вложенный список должен содержать координаты основных вершин многоугольника. Остальные вложенные списки не обязательны и могут быть заданы для того, чтобы создать вырез внутри многоугольника (один дополнительный список — один вырез в виде многоугольника). Дополнительно можно указать цвет полигона и параметры обводки (см. PolygonOptions). Кластеризация Для добавления маркеров на карту в режиме кластеризации нужно создать менеджер объектов (MapObjectManager) через MapObjectManager.withClustering(), указав инстанс карты, расстояние между кластерами в логических пикселях, максимальный zoom-уровень формирования кластеров и пользовательскую имплементацию протокола SimpleClusterRenderer. SimpleClusterRenderer используется для кастомизации кластеров в MapObjectManager. Управление камерой Для работы с камерой используется объект Camera, доступный через свойство map.camera . Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  11. Кластеризация Для добавления маркеров на карту в режиме кластеризации нужно создать менеджер объектов (MapObjectManager) через MapObjectManager.withClustering(), указав инстанс карты, расстояние между кластерами в логических пикселях, максимальный zoom-уровень формирования кластеров и пользовательскую имплементацию протокола SimpleClusterRenderer. SimpleClusterRenderer используется для кастомизации кластеров в MapObjectManager. Управление камерой Для работы с камерой используется объект Camera, доступный через свойство map.camera . Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  12. Управление камерой Для работы с камерой используется объект Camera, доступный через свойство map.camera . Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  13. Перелёт Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта: position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition). time — продолжительность перелёта в секундах (Duration). animationType — тип анимации (CameraAnimationType). Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта. Для указания продолжительности перелёта можно использовать расширение .seconds : Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  14. Получение состояния камеры Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры. Подписаться на изменения состояния камеры можно с помощью свойства stateChannel . Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  15. Получение позиции камеры Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition). Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel . Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  16. Моё местоположение На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  17. Получение объектов по экранным координатам Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo). Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() : Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  18. Справочник объектов Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов: SearchManager.createOnlineManager() — создаёт онлайн-справочник. SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными. SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети. Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject. Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы. Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page. Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest). Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  19. Построение маршрута Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте. Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint). Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource. Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  20. Собственный источник геопозиции В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource. Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource(). Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged(). Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged(). Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy. Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() . Источник Release notes v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  21. Release notes
  22. v1.6.10 Release Date: 25.11.2021 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  23. 🛠 Исправления Теперь создание карты с размером 0x0 валидно. Исправлено падение при работе MyLocationController . v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  24. v2.0.0-beta.8 Release Date: 18.11.2021 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  25. 🌟 Новые возможности Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed . Данные о парковках в справочнике — DirectoryObject.parkingInfo . Данные об отзывах в справочнике — DirectoryObject.reviews . Данные о статусе работы в справочнике — DirectoryObject.workStatus . События в статистике о создании и удалении источников карты. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  26. 🛠 Исправления Зависание при плохом сетевом соединении. Отображение дорожных событий в навигаторе. Убрана задержка старта навигации. Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту. Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus . Поведение в случае изменения размера карты во время перелета. Поведение Camera.padding при маленьком размере карты. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  27. ❗️ Ломающие изменения Метод LocaleManager.setOverridedLocales переименован в overrideLocales . ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  28. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. Release Date: 15.11.2021 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  29. 🛠 Исправления Исправлено зависание при плохом сетевом соединении. Исправлено падение в загрузке тайлов карты. Круг( Circle ) мерцал при перемещении. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  30. ❗️ Прочее Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  31. v2.0.0-beta.7 Release Date: 10.11.2021 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  32. 🌟 Новые возможности Добавлены подписи у маркеров дорожных событий. Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES . Отправляем статистику о параметрах используемых карт — размер, DPI и т.д. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  33. 🛠 Исправления Не озвучивались дорожные события, у которых не указана полоса. Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках. Круг( Circle ) мерцал при перемещении. Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота). v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  34. v2.0.0-beta.6 Release Date: 29.10.2021 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  35. 🛠 Изменения Получение фотографий дорожных событий — RoadEvent.photos . Отображение фотографии в карточке дорожного события RoadEventCard . Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др. Карточка создания дорожного события — AddRoadEventCard . Возможность удалить дорожное событие — RoadEvent.remover . Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions . Улучшено описание дорожных событий-камер. Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны. Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit . Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров. Озвучивание перестроения маршрута в навигаторе. Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная. Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume . Неактивное состояние UI навигатора при отстутсвии GPS. Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при использовании LogSink . Исправлены потенциальные падения в обработке сетевых запросов. Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE . ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  36. ❗️ Ломающие изменения Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common . Release Date: 29.10.2021 Исправлено падение при использовании LogSink . Release Date: 29.10.2021 Исправлены потенциальные падения в обработке сетевых запросов. Release Date: 26.10.2021 Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online . Исправлено падение при работе MyLocationController . v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  37. v2.0.0-beta.5 Release Date: 21.10.2021 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  38. 🛠 Изменения Исправлена ошибка при скачивании территорий. Добавлена возможность обработки клика по дорожному событию на маршруте. Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа. Исправлена ошибка, при которой не отображались камеры при первом построении маршрута. Исправлено падение при работе MyLocationController . Исправлены ошибки при отображении дорожных событий. Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка. Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories . v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  39. v2.0.0-beta.4 Release Date: 14.10.2021 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  40. 🛠 Изменения Исправления в источнике дорожных событий ( RoadEventSource ). Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode . Исправлена работа suggest-ов для некоторых запросов. Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной. Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location . Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия. Дополнительное описание типа дороги — RouteInfo.roadSubtypes . Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ). Задание proxy для сетевых запросов — HttpOptions.proxy . ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  41. ❗️ Ломающие изменения Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController . NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() . Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed . 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  42. 🗺 Изменения в стилях карты У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14. У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния Добавился слой «Территория парковки автосгенеренная для режима парковок». У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок Удалён слой «Парковки». Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные». v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  43. v2.0.0-beta.3 Release Date: 07.10.2021 Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard . Возможность задать пользовательский контроллер слежения камерой — CustomFollowController . Исправлена регрессия: не работало перетаскивание маркеров без текста. Отображение на карте начала и конца платных дорог. Поддержка межрегионального офлайн поиска проезда. Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions . Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds . Исправлено озвучивание дополнительного маневра в навигаторе. Озвучивание аварий и дорожных работ в навигаторе. Голосовое оповещение о промежуточных точках в навигаторе. Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости. Отображение следующего маневра и номера съезда в UI навигатора. Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» . Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д. Изменения в стилях карты: Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события. Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true. Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  44. v2.0.0-beta.2 Release Date: 28.09.2021 Исправлен баг с низкой производительностью карты при большом масштабе. Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению. Добавлено отображение на карте и озвучка новых типов камер. Добавлено свойство Camera.size — размер области просмотра в пикселях. Ломающие изменения в API навигатора: свойство Model.maneuverInstructionIndex переименовано в instructionIndex ; RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ; Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно. Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута. Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов. Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  45. v2.0.0-beta.1.2 Release Date: 23.09.2021 Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность. Обновлен размер логотипа 2GIS на карте. Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты. Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  46. v2.0.0-beta.1 Release Date: 21.09.2021 Существенно ускорено перемещение маркеров без текста. Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться. Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня. Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры. Добавлен контрол компаса — CompassControl . Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl . Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат. Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута. Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings . Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings . Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager . UI навигатора локализован на русский и английский. В UI навигатора добавлены контролы управления картой. Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS. Новый дизайн контролов навигации в режиме Free Roam. Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl . BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние. Миграция с v1.x Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude . Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). Release Date: 07.09.2021 Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Доработана отрисовка перекрытий на дороге поверх пробок. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  47. v2.0.0-alpha.8 Release Date: 03.09.2021 Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки). Исправлено отображение пробок на карте при максимальных значениях zoom-уровня. Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое. Переделан расчет зоны действия камеры на маршруте. Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации. В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled . Доработана отрисовка перекрытий на дороге поверх пробок. Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions . Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions . Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition . Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore . Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией). v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  48. v2.0.0-alpha.7 Release Date: 26.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Контрол о проезде зоны действия камеры — CameraControl Исправлено зависание в TrafficSource Исправления в притяжке к маршруту в режиме Free Roam Исправлено падение при создании большого количества маркеров с установленной userData Release Date: 25.08.2021 Поправили конфиг ProGuard для корректной сборки Release Date: 24.08.2021 Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты. Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер. Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition . Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом: У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен . У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен . Release Date: 17.08.2021 Исправлено падение в NetworkConnectionManager . v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  49. v2.0.0-alpha.6 Release Date: 13.08.2021 Добавлена возможность настройки пешеходной озвучки маршрута при навигации. В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить. Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . Release Date: 12.08.2021 Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager . Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1). Исправлено некорректное поведение при клике в кластер при отображении кластеризации. Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной. Убрано исключение при повторных удалениях подписок к каналам Channel . v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  50. v2.0.0-alpha.5 Release Date: 06.08.2021 Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение. В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня. Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе. Release Date: 05.08.2021 В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker . С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера. Исправлена утечка памяти при удалении карты. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  51. v2.0.0-alpha.4 Release Date: 28.07.2021 В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом. В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры. Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный. Release Date: 28.07.2021 Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  52. v2.0.0-alpha.3 Release Date: 23.07.2021 Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно. Исправлена ошибка, когда через MapObjectManager добавляется на карту маркер до полной загрузки изображения. Обновлен логотип 2ГИС + СБЕР на карте. Оптимизация создания/удаления MapTextureView . Исправлена ошибка, при которой карта не обновлялась, когда удалялись маркера при кластеризации через MapObjectManager . Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна. Обновлены общие стили: В редактор перенесены: A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ). B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ). C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ). D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ). E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ). F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ). Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль. Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях. Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях. В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити . В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол . Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  53. v2.0.0-alpha.2 Release Date: 13.07.2021 Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager Скачивание offline-территорий — TerritoryManager Управление этажными планами — Map.indoorManager Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags Получение изображений полосности — getLanesControlImages Обновление маркера местоположения в навигаторе при сходе с маршрута Обновленный copyright на карте Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком Release Date: 09.07.2021 🎉 Первый публичный релиз! 🎉 Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions Уменьшен размер map-сборки — убрали работу с offline справочником и картой UI контрол пробок — TrafficControl Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry Оптимизация работы с сетевыми соединениями v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  54. v0.16.1 Release Date: 07.06.2021 Обновлены стандартные стили карты — исправлены размеры надписей и иконок v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  55. v0.16.0 Release Date: 03.06.2021 Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд. Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint) Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile) Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе Скрыты классы предназначенные для внутреннего использования Исправлено отображение карты при нулевом z-уровне v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  56. v0.15.1 Release Date: 27.05.2021 Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  57. v0.15.0 Release Date: 25.05.2021 Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation Проверка пересечения геометрий — Geometry.hasIntersection Возможность задать пользовательский обработчик логирования — LogOptions.customSink Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др. Изменён порядок параметров в calcPosition и zoomOutToFit DataCollectStatus переименован в PersonalDataCollectionConsent Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными Исправление в кешировании тайлов карты v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  58. v0.14.0 Release Date: 05.05.2021 Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты. Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  59. v0.13.0 Release Date: 30.04.2021 Исправлено промаргивание карты черным цветом при ее создании Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing Возможность задать positionPoint в функциях calcPosition и zoomOutToFit Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
  60. v0.12.1 Release Date: 23.04.2021 исправлен учет масштаба карты минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2 убрано вытеснение маркеров друг другом исправление в обработке статистики Release Date: 22.04.2021 возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData) исправлены падения при оптимизации кода с помощью ProGuard исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR) на изображении карты( MapView.takeSnapshot ) отображается копирайт возможность задать собственную траекторию перемещения камеры — Camera.move(moveController) свойство padding перемещено из Map в Camera возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour) при поиске( SearchManager ) учитывается местоположение пользователя свойство GeometryMapObject.originalGeometry переименовано в geometry удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any ускорено получение результата срабатывания Future и Channel удалены устаревшие методы Future и Channel Release Date: 14.04.2021 возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name) управление и получение информации о http-кэше — HttpCacheManager дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др. информация о полосах движения маршрута — RouteInfo.laneSigns возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint возможность задать скорость движения в симуляции навигации — SimulationSettings.speed убрана тонкая черная граница у объектов карты, когда она не задана исправлено падение при удалении карты на эмуляторах исправлено падение при задании LocationSource Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns Release Date: 07.04.2021 добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку параметр interactive для отключения возможности взаимодействия пользователя с картой добавили renderMode. Теперь можно отрисовывать карту в TextureView добавили полилинию с градиентом Ломающее изменение: обновили класс GeoRect removeSource больше не бросает исключение. Даже если источник не был добавлен на карту Release Date: 24.03.2021 добавили возможность рисовать пунктирную линию opacity для Marker функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ) для работы с атрибутами карты добавлен новый тип AttributeValue showApiVersionInCopyrightView для отображения версии SDK в copyright исправлено падение при вызове getMapAsync из не приатаченного View из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager Release Date: 17.03.2021 Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions Padding на карте для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию добавили источник для растровых тайлов(см. createRasterTileDataSource) поддержали атрибут theme для стилей карты выгруженных из редактора методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures) Release Date: 04.03.2021 высокоуровневый API для динамических объектов карты(см. MapObjectManager) методы visibleArea, visibleRect для получения видимой области карты источник TrafficSource для отображения пробочных тайлов на карте получение геометрии из TrafficRoute исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения Release Date: 15.02.2021 разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ ) карта и контролы теперь доступны и в темной теме добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения методы для вычисления позиции камеры и Zoom Level по заданной геометрии источник для данных с кластеризацией добавили возможность задать координату с высотой для маркера для динамических объектов на карте, добавили возможность определить пользовательские данные поддержали создание маркера с текстом, без иконки Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров. Release Date: 04.02.2021 исправлен баг с ключами API(проявлялось как 403 от сервера тайлов) звуковое оповещение о превышении скорости в навигаторе получение пробочного балла в TrafficManager landscape Ui в навигаторе Release Date: 26.01.2021 приглушение других звуков при проигрывании инструкций навигатора редизайн Ui навигатора исправление ошибок Release Date: 20.01.2021 Release Date: 19.01.2021 ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize фикс слоя для маркеров добавлен GestureManager добавили возможность отменять Future изменили работу с Any типами (см. пример) Release Date: 22.12.2020 режим слежения за маркером местоположения поддержка offline данных в downloads директории воспроизведение голосовых инструкций с учетом скорости на маршруте searchById в модуле справочника добавили свойство renderView у объекта MapView Release Date: 15.12.2020 голосовые инструкции в навигаторе во время ведения по маршруту поддержали жест наклона карты Release Date: 09.12.2020 добавлен новый DgisSource. Для работы c объектами 2GIS Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource в RouteParams добавлена поддержка промежуточных точек Release Date: 03.12.2020 уменьшили размер библиотеки UI контролы карты и навигатора баблики с дополнительной информацией по найденному маршруту Release Date: 24.11.2020 добавили возможность делать подпись к маркерам для объектов справочника доступны дополнительные атрибуты Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов уменьшили размер зашитых в библиотеку данных Release Date: 17.11.2020 данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных отображение поисковой выдачи с генерализацией как в мобильном 2GIS работа с FollowManager. Позволяет следить за точкой на карте для карты Online Data Source выбирается по умолчанию научили наш 3d engine работать с SVG в стриме событий навигатора добавилась координата следующего маневра Release Date: 09.11.2020 поддержка drag для объектов карты в RouteEditor теперь можно выбирать маршрут по клику в него «съедание» маршрута при запуске навигатора исправления в расчете ETA Release Date: 02.11.2020 Release Date: 27.10.2020 исправлен баг c ClassLoader при использовании sharedUserId в найденном маршруте можно получить расстояние в метрах через route.length добавлен обработчик для уменьшения потребления памяти в MapView добавлена работа с TouchEventsObserver Release Date: 20.10.2020 отображение маркера текущего местоположения добавили использование API key починили работу https изменен интерфейс NavigationManager Release Date: 08.10.2020 Release Date: 22.09.2020 добавление кастомных геометрий Release Date: 15.09.2020 Release Date: 08.09.2020 online карта изменения в API для инициализации SDK гибридный справочник(online + offline) Источник
Читайте также:  Что сегодня творится с андроидом

2gis map sdk android

Для работы с SDK нужно вызвать метод initialize() объекта DGis, указав контекст приложения и набор ключей доступа (объект ApiKeys).

В SDK используется два ключа: map (основной ключ SDK) и directory (ключ доступа к дополнительным API: справочнику объектов и маршрутизатору).

Дополнительно можно указать настройки журналирования (LogOptions) и настройки HTTP-клиента (HttpOptions), такие как кеширование.

Создание карты

Чтобы создать карту, добавьте MapView в ваш activity:

Для карты можно указать начальные координаты ( cameraTargetLat — широта; cameraTargetLng — долгота) и масштаб ( cameraZoom ).

MapView также можно создать программно. В таком случае настройки можно указать в виде объекта MapOptions.

Объект карты (Map) можно получить, вызвав метод getMapAsync() :

Общие принципы работы

Отложенные результаты

Некоторые методы SDK (например те, которые обращаются к удалённому серверу) возвращают отложенные результаты (Future). Для работы с ними нужно создать обработчик получения данных и обработчик ошибок.

Пример получения объекта из справочника:

По умолчанию обработка результатов происходит в UI-потоке. Чтобы это изменить, для onResult и onError можно указать Executor.

Подробнее про работу со справочником можно посмотреть в разделе Справочник объектов.

Потоки значений

Некоторые объекты SDK предоставляют потоки значений, которые можно обработать, используя механизм каналов: на поток можно подписаться, указав функцию-обработчик данных, и отписаться, когда обработка данных больше не требуется. Для работы с потоками значений используется интерфейс Channel.

Пример подписки на изменение видимой области карты (поток новых прямоугольных областей):

После окончания работы с каналом важно отменить подписку, чтобы избежать утечки памяти. Для этого нужно вызвать метод close() :

Источники данных для карты

В некоторых случаях для добавления объектов на карту нужно создать специальный объект — источник данных. Источники данных выступают в роли менеджеров объектов: вместо добавления объектов на карту напрямую, на карту добавляется источник данных и вся последующая работа с объектами происходит через него.

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

В общем случае работа с источниками данных выглядит следующим образом:

Чтобы удалить созданный источник данных и все связанные с ним объекты, нужно вызвать метод карты removeSource() :

Список активных источников данных можно получить, используя свойство map.sources .

Добавление объектов

Для добавления динамических объектов на карту (маркеров, линий, кругов, многоугольников) нужно создать менеджер объектов (MapObjectManager), указав объект карты. При удалении менеджера объектов удаляются все связанные с ним объекты на карте, поэтому его нужно сохранить в activity.

Для добавления объектов используются методы addObject() и addObjects(). Для каждого динамического объекта можно указать поле userData , которое будет хранить произвольные данные, связанные с объектом. Настройки объектов можно менять после их создания.

Для удаления объектов используются методы removeObject() и removeObjects(). Чтобы удалить все объекты, можно использовать метод removeAll().

Маркер

Чтобы добавить маркер на карту, нужно создать объект Marker, указав нужные настройки, и передать его в вызов addObject() менеджера объектов.

В настройках нужно указать координаты маркера (параметр position ).

Чтобы изменить иконку маркера, нужно указать объект Image в качестве параметра icon . Создать Image можно с помощью следующих функций:

Чтобы изменить точку привязки иконки (выравнивание иконки относительно координат на карте), нужно указать параметр anchor.

Дополнительно можно указать текст для маркера и другие настройки (см. MarkerOptions).

Линия

Чтобы нарисовать на карте линию, нужно создать объект Polyline, указав нужные настройки, и передать его в вызов addObject() менеджера объектов.

Кроме списка координат для точек линии, в настройках можно указать ширину линии, цвет, пунктир, обводку и другие параметры (см. PolylineOptions).

Свойство-расширение .lpx преобразует целое число в объект LogicalPixel.

Многоугольник

Чтобы нарисовать на карте многоугольник, нужно создать объект Polygon, указав нужные настройки, и передать его в вызов addObject() менеджера объектов.

Координаты для многоугольника указываются в виде двумерного списка. Первый вложенный список должен содержать координаты основных вершин многоугольника. Остальные вложенные списки не обязательны и могут быть заданы для того, чтобы создать вырез внутри многоугольника (один дополнительный список — один вырез в виде многоугольника).

Дополнительно можно указать цвет полигона и параметры обводки (см. PolygonOptions).

Кластеризация

Для добавления маркеров на карту в режиме кластеризации нужно создать менеджер объектов (MapObjectManager) через MapObjectManager.withClustering(), указав инстанс карты, расстояние между кластерами в логических пикселях, максимальный zoom-уровень формирования кластеров и пользовательскую имплементацию протокола SimpleClusterRenderer. SimpleClusterRenderer используется для кастомизации кластеров в MapObjectManager.

Управление камерой

Для работы с камерой используется объект Camera, доступный через свойство map.camera .

Перелёт

Чтобы запустить анимацию перелёта камеры, нужно вызвать метод move() и указать параметры перелёта:

  • position — конечная позиция камеры (координаты и уровень приближения). Дополнительно можно указать наклон и поворот камеры (см. CameraPosition).
  • time — продолжительность перелёта в секундах (Duration).
  • animationType — тип анимации (CameraAnimationType).

Функция move() возвращает объект Future, который можно использовать, чтобы обработать событие завершения перелёта.

Для указания продолжительности перелёта можно использовать расширение .seconds :

Для более точного контроля над анимацией перелёта можно использовать контроллер перелёта, который будет определять позицию камеры в каждый конкретный момент времени. Для этого нужно реализовать интерфейс CameraMoveController и передать созданный объект в метод move() вместо параметров перелёта.

Получение состояния камеры

Текущее состояние камеры (находится ли камера в полёте) можно получить, используя свойство state . См. CameraState для списка возможных состояний камеры.

Подписаться на изменения состояния камеры можно с помощью свойства stateChannel .

Получение позиции камеры

Текущую позицию камеры можно получить, используя свойство position (см. объект CameraPosition).

Подписаться на изменения позиции камеры (и угла наклона/поворота) можно с помощью свойства positionChannel .

Моё местоположение

На карту можно добавить специальный маркер, который будет отражать текущее местоположение устройства. Для этого нужно добавить на карту источник данных MyLocationMapObjectSource.

Получение объектов по экранным координатам

Информацию об объектах на карте можно получить, используя пиксельные координаты. Для этого нужно вызвать метод карты getRenderedObjects(), указав координаты в пикселях и радиус в экранных миллиметрах. Метод вернет отложенный результат, содержащий информацию обо всех найденных объектах в указанном радиусе на видимой области карты (список RenderedObjectInfo).

Пример функции, которая принимает координаты нажатия на экран и передаёт их в метод getRenderedObjects() :

Справочник объектов

Для поиска объектов в справочнике нужно создать объект SearchManager, вызвав один из следующих методов:

  • SearchManager.createOnlineManager() — создаёт онлайн-справочник.
  • SearchManager.createOfflineManager() — создаёт офлайн-справочник, работающий только с предзагруженными данными.
  • SearchManager.createSmartManager() — создаёт комбинированный справочник, работающий с онлайн-данными при наличии сети и с предзагруженными данными при отсутствии сети.

Если идентификатор (ID) объекта известен, то для получения информации о нём нужно вызвать метод searchById(). Метод вернёт отложенный результат DirectoryObject.

Если ID объекта не известен, то можно создать поисковый запрос (объект SearchQuery) с помощью SearchQueryBuilder и передать его в метод search(). Вызов вернёт отложенный результат SearchResult, содержащий список найденных объектов (DirectoryObject), разделенный на страницы.

Чтобы получить следующую страницу результатов поиска, нужно вызвать метод страницы fetchNextPage(), который вернёт отложенный результат Page.

Также с помощью справочника можно получать подсказки при текстовом поиске объектов (см. Suggest API для демонстрации). Для этого нужно создать объект SuggestQuery с помощью SuggestQueryBuilder и передать его в метод suggest(). Вызов вернёт отложенный результат SuggestResult, содержащий список подсказок (Suggest).

Построение маршрута

Для того, чтобы проложить маршрут на карте, нужно создать два объекта: TrafficRouter для поиска оптимального маршрута и источник данных RouteMapObjectSource для отображения маршрута на карте.

Чтобы найти маршрут между двумя точками, нужно вызвать метод findRoute(), передав координаты точек в виде объектов RouteSearchPoint. Дополнительно можно указать параметры маршрута (RouteOptions), а также список промежуточных точек маршрута (список RouteSearchPoint).

Вызов вернёт отложенный результат со списком объектов TrafficRoute. Чтобы отобразить найденный маршрут на карте, нужно на основе этих объектов создать объекты RouteMapObject и добавить их в источник данных RouteMapObjectSource.

Вместо пары TrafficRouter и RouteMapObjectSource для построения маршрута можно использовать RouteEditor и RouteEditorSource. В таком случае не нужно обрабатывать список TrafficRoute, достаточно передать координаты маршрута в виде объекта RouteParams в метод setRouteParams() и маршрут отобразится автоматически.

Собственный источник геопозиции

В рамках SDK можно использовать произвольный источник геопозиции. Для этого нужно реализовать интерфейс LocationSource.

Чтобы зарегистрировать созданный источник в SDK, нужно вызвать функцию registerPlatformLocationSource().

Основная точка входа в интерфейс — функция activate() . Когда SDK потребуется геопозиция, в эту функцию будет передан объект LocationChangeListener. После этого, чтобы сообщить текущую геопозицию, нужно передать в него массив объектов Location (от более старой позиции к более новой), используя метод onLocationChanged().

Чтобы сообщить изменение доступности источника, можно вызвать метод onAvailabilityChanged().

Дополнительно можно менять логику определения геопозиции в зависимости от требуемой точности. Требуемая точность передаётся в функцию setDesiredAccuracy() в виде объекта DesiredAccuracy.

Когда источник геопозиции больше не требуется, будет вызвана функция deactivate() .

Источник

Release notes

v1.6.10

Release Date: 25.11.2021

🛠 Исправления
  • Теперь создание карты с размером 0x0 валидно.
  • Исправлено падение при работе MyLocationController .

v2.0.0-beta.8

Release Date: 18.11.2021

🌟 Новые возможности
  • Добавлены сбор и отправка данных о пробках во время навигации. По умолчанию включено, выключить можно с помощью TrafficCollector.trafficCollectingAllowed .
  • Данные о парковках в справочнике — DirectoryObject.parkingInfo .
  • Данные об отзывах в справочнике — DirectoryObject.reviews .
  • Данные о статусе работы в справочнике — DirectoryObject.workStatus .
  • События в статистике о создании и удалении источников карты.

🛠 Исправления
  • Зависание при плохом сетевом соединении.
  • Отображение дорожных событий в навигаторе.
  • Убрана задержка старта навигации.
  • Неправильное значение Model.state при переключении с режима free-roam на движение по маршруту.
  • Неправильный статус обновления макрографа — RoadMacroGraph.info.updateStatus .
  • Поведение в случае изменения размера карты во время перелета.
  • Поведение Camera.padding при маленьком размере карты.

❗️ Ломающие изменения
  • Метод LocaleManager.setOverridedLocales переименован в overrideLocales .

❗️ Прочее
  • Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев.

Release Date: 15.11.2021

🛠 Исправления
  • Исправлено зависание при плохом сетевом соединении.
  • Исправлено падение в загрузке тайлов карты.
  • Круг( Circle ) мерцал при перемещении.

❗️ Прочее
  • Требуется перевыгрузить стили из редактора. Исправляет отображение железных дорог, а также исправляет падение в одном из сценариев.

v2.0.0-beta.7

Release Date: 10.11.2021

🌟 Новые возможности
  • Добавлены подписи у маркеров дорожных событий.
  • Возможность включения/выключения озвучки инструкций, препятствий и подтипа дороги — SoundCategory.INSTRUCTIONS , SoundCategory.OBSTACLES , SoundCategory.ROAD_SUBTYPES .
  • Отправляем статистику о параметрах используемых карт — размер, DPI и т.д.

🛠 Исправления
  • Не озвучивались дорожные события, у которых не указана полоса.
  • Не позволяем масштабировать карту двойным нажатием, когда масштабирование отключено в настройках.
  • Круг( Circle ) мерцал при перемещении.
  • Убрана озвучка лежачих полицейских (она и раньше не работала — нет таких звуков, вместо них была пустота).

v2.0.0-beta.6

Release Date: 29.10.2021

🛠 Изменения
  • Получение фотографий дорожных событий — RoadEvent.photos .
  • Отображение фотографии в карточке дорожного события RoadEventCard .
  • Возможность создания дорожных событий — RoadEventManager с методами createAccident , createCamera и др.
  • Карточка создания дорожного события — AddRoadEventCard .
  • Возможность удалить дорожное событие — RoadEvent.remover .
  • Возможность совершать действия с дорожными событиями (подтвердить, опровергнуть, лайкнуть и т.д.) — RoadEvent.availableActions .
  • Улучшено описание дорожных событий-камер.
  • Исправлено отображение иконок двусторонних перекрытий — раньше отображалось лишь с одной стороны.
  • Возможность задать размер карты у функций вычисления позиции камеры — параметр size у calcPosition и zoomOutToFit .
  • Настройки маршрута RouteMapObjectSource.routeSourceSettings , NavigationManager.routeSourceSettings , с помощью которых можно задать параметры отображения стрелок маневров.
  • Озвучивание перестроения маршрута в навигаторе.
  • Исправлено озвучивание сгруппированных камер — озвучивается лишь самая приоритетная.
  • Настройка громкости озвучки в навигаторе — NavigationManager.soundNotificationSettings.notificationVolume .
  • Неактивное состояние UI навигатора при отстутсвии GPS.
  • Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online .
  • Исправлено падение при использовании LogSink .
  • Исправлены потенциальные падения в обработке сетевых запросов.
  • Подробное логирование информации о сетевых запросах при уровне LogLevel.VERBOSE .

❗️ Ломающие изменения
  • Класс ScreenSize перенесён из ru.dgis.map в ru.dgis.common .

Release Date: 29.10.2021

  • Исправлено падение при использовании LogSink .

Release Date: 29.10.2021

  • Исправлены потенциальные падения в обработке сетевых запросов.

Release Date: 26.10.2021

  • Исправлена ошибка при отправке статистики, при которой было мало событий MapSource с типом 2gis.online .
  • Исправлено падение при работе MyLocationController .

v2.0.0-beta.5

Release Date: 21.10.2021

🛠 Изменения
  • Исправлена ошибка при скачивании территорий.
  • Добавлена возможность обработки клика по дорожному событию на маршруте.
  • Поддержана отрисовка камер в режиме FreeRoam при использовании офлайн источника дорожного графа.
  • Исправлена ошибка, при которой не отображались камеры при первом построении маршрута.
  • Исправлено падение при работе MyLocationController .
  • Исправлены ошибки при отображении дорожных событий.
  • Исправлена ошибка, при которой не отображались иконки камеры контроля перекрестка.
  • Добавлена возможность отключать озвучку по типу через NavigationManager.soundNotificationSettings.enabledSoundCategories .

v2.0.0-beta.4

Release Date: 14.10.2021

🛠 Изменения
  • Исправления в источнике дорожных событий ( RoadEventSource ).
  • Аттрибут dgis_renderMode у MapView для задания MapOptions.renderMode .
  • Исправлена работа suggest-ов для некоторых запросов.
  • Повторный поиск маршрута в навигаторе, если предыдущая попытка была неуспешной.
  • Возможность получить из модели навигатора текущую геопозицию, с которой работает навигатор — Model.location .
  • Исправление в озвучивании камер в навигаторе — теперь сообщается расстояние до камеры, а не до начала ее действия.
  • Дополнительное описание типа дороги — RouteInfo.roadSubtypes .
  • Дабавлены значения по умолчанию для параметров поиска маршрута на грузовом транспорте ( TruckRouteSearchOptions ).
  • Задание proxy для сетевых запросов — HttpOptions.proxy .

❗️ Ломающие изменения
  • Исправления и изменение API пользовательских контроллеров камеры — теперь контроллер может быть лишь один, добавляется/удаляется методами Camera.setCustomFollowController / Camera.removeCustomFollowController .
  • NavigationView не создает маркер геопозиции на карте ( MyLocationMapObjectSource ), это нужно делать в пользовательском коде. Для перемещения маркера навигатора в создание источника необходимо добавить контроллер позиции, например, через createSmoothMyLocationController() .
  • Model.routeInfo переименовано в Model.route , Model.currentRoutePosition в Model.routePosition , вместо Model.badLocation теперь противоположное Model.locationAvailable , вместо Model.currentSpeedChannel теперь Model.locationChannel.groundSpeed .

🗺 Изменения в стилях карты
  • У слоёв «Камера контроля скорости» в каталогах «Слой транспортных событий в режиме ведения», «Слой транспортных событий», «Транспортные события на маршруте в режиме ведения» и «Транспортные события на маршруте» поменялся масштаб отображения на 13-14.
  • У слоёв «Территория парковки» и «Территория парковки для режима парковок» задан цвет для выделенного состояния
  • Добавился слой «Территория парковки автосгенеренная для режима парковок».
  • У слоёв в каталоге «Пузырьки парковок» приоритет иконки поднят до 1, чтобы они вытесняли обычные значки парковок
  • Удалён слой «Парковки».
  • Добавились слои «Парковки с неизвестной ценой», «Парковки для инвалидов», «Парковки для резидентов», «Парковки такси», «Парковки бесплатные».

v2.0.0-beta.3

Release Date: 07.10.2021

  • Отображение дорожных событий на карте (не привязанных к конкретному маршруту) — RoadEventSource , RoadEvent , RoadEventCard .
  • Возможность задать пользовательский контроллер слежения камерой — CustomFollowController .
  • Исправлена регрессия: не работало перетаскивание маркеров без текста.
  • Отображение на карте начала и конца платных дорог.
  • Поддержка межрегионального офлайн поиска проезда.
  • Поддержка такси как отдельного вида транспорта — TaxiRouteSearchOptions .
  • Поддержка пропусков для грузового транспорта — TruckRouteSearchOptions.passId , TrafficRoute.truckPassZoneIds .
  • Исправлено озвучивание дополнительного маневра в навигаторе.
  • Озвучивание аварий и дорожных работ в навигаторе.
  • Голосовое оповещение о промежуточных точках в навигаторе.
  • Исправление в притяжке к дорожному графу в навигаторе при нулевой скорости.
  • Отображение следующего маневра и номера съезда в UI навигатора.
  • Возможность настроить цвета стандартного UI навигатора, для этого нужно задать у NavigationView тему, отнаследованную от «DGisTheme.Navigation» .
  • Ломающие изменения в API навигатора. Информация о маршруте — RoadTypeInfo , TransportTypeInfo , RoadSurfaceInfo , SpeedLimitInfo , RoadNameInfo , TollInfo — теперь расположена в RouteInfo в виде списков, текущее зачение можно получить из них, обратившись по соответствующему индексу в navigation.Model — Model.roadTypeIndex , Model.transportTypeIndex и т.д.
  • Изменения в стилях карты:
    • Ломающее изменение. В каталогах «Транспортные события на маршруте в режиме ведения” и «Транспортные события на маршруте” появились новые слои. Добавьте их в свои стили, чтобы продолжали отображаться камеры на маршруте, а также появились новые события.
    • Добавились каталоги со слоями «Слой транспортных событий в режиме ведения” и «Слой транспортных событий” для нового слоя дорожных событий
    • Добавился каталог слоёв «Пузырьки парковок», а также слои «зона запрета парковки для включенного слоя парковки” и «Территория парковки для режима парковок». Эти данные отображаются только в случае, когда у карты задан атрибут parkingOn со значением true.
    • Слой «Территория парковки». теперь отображается, когда у карты атрибут parkingOn отсутствует или выставлен в false.

v2.0.0-beta.2

Release Date: 28.09.2021

  • Исправлен баг с низкой производительностью карты при большом масштабе.
  • Исправлена гонка в RouteMapObject , что могло приводить к его неправильному отображению.
  • Добавлено отображение на карте и озвучка новых типов камер.
  • Добавлено свойство Camera.size — размер области просмотра в пикселях.
  • Ломающие изменения в API навигатора:
    • свойство Model.maneuverInstructionIndex переименовано в instructionIndex ;
    • RoadRule перемещен из dgis.sdk.navigation в dgis.sdk.routing ;
    • Для получения информации о инструкциях навигатора служит RouteInfo.instructions , получить название маневра из которых можно с помощью функции getInstructionManeuver
  • Исправлено слежение за геопозицией при использовании навигатора с несколькими картами одновременно.
  • Убран лишний переход Model в состояние State.DISABLED при перепоиске маршрута.
  • Ломающее изменение. Вместо свойств HttpOptions.userSslCerts , HttpOptions.disableSystemSslCerts теперь свойство HttpOptions.certificates , позволяющее задать список сертификатов.

Release Date: 23.09.2021

  • Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность.
  • Обновлен размер логотипа 2GIS на карте.
  • Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты.

v2.0.0-beta.1.2

Release Date: 23.09.2021

  • Исправлены проблемы, которые возникли после доработки перемещения маркеров без текста — медленно работали статичные маркеры без текста и для маркеров без текста не устанавливалась прозрачность.
  • Обновлен размер логотипа 2GIS на карте.
  • Исправлена проблема, когда при задании угла наклона при создании карты, угол наклона сбрасывался при любом изменении карты.

Release Date: 21.09.2021

  • Существенно ускорено перемещение маркеров без текста.
    Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться.
  • Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня.
  • Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры.
  • Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат.

v2.0.0-beta.1

Release Date: 21.09.2021

  • Существенно ускорено перемещение маркеров без текста.
    Важно: необходимо переэкспортировать стиль из редактора стилей, без этого маркеры не будут отображаться.
  • Изменена логика кластеризации — в качестве центра кластера берется центр масс подкластеров предыдущего уровня.
  • Исправлена ошибка, когда в режиме кластеризации при удалении маркера удалялись соседние близко расположенные маркеры.
  • Добавлен контрол компаса — CompassControl .
  • Добавлен контрол позволящий управлять padding-ом карты из верстки — MapPaddingControl .
  • Исправлена работа SuggestQueryBuilder.setSuggestorType — ранее эта опция не влияла на результат.
  • Добавлены свойства TrafficRoute.startPoint , TrafficRoute.finishPoint — начальная и конечная точка маршрута.
  • Добавлены настройки управления масштабированием в навигаторе — NavigationManager.zoomFollowSettings .
  • Добавлены настройки обновления пробочных данных в навигаторе — NavigationManager.trafficSettings .
  • Ломающее изменение. NavigationView теперь не создает NavigationManager , его нужно задавать снаружи через свойство navigationManager .
  • UI навигатора локализован на русский и английский.
  • В UI навигатора добавлены контролы управления картой.
  • Добавлена нотификация в UI о состоянии навигатора — перепоиск, отсутствие сигнала GPS.
  • Новый дизайн контролов навигации в режиме Free Roam.
  • Переключение между временем прибытия и временем до прибытия в RemainingRouteInfoControl .
  • BetterRoutePromptControl при отсутствии с ним взаимодействия переходит в свернутое состояние.

Миграция с v1.x

  • Вместо Arcdegree , который использовался для задания поворота камеры, широты, долготы, теперь отдельные типы — Bearing , Latitude , Longitude .
  • Изменен API для работы с пробками: TrafficScore переименован в TrafficScoreProvider , TrafficScoreValue в TrafficScore , TrafficManager удален — TrafficScoreProvider создается через конструктор.
  • Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией).

Release Date: 07.09.2021

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

v2.0.0-alpha.8

Release Date: 03.09.2021

  • Навигатор автоматически меняет zoom-уровень карты в зависимости от скорости (пока что без возможности настройки).
  • Исправлено отображение пробок на карте при максимальных значениях zoom-уровня.
  • Исправлена проблема смены иконки у маркера через Marker.icon , при которой до появления нового загруженного изображения отрисовывалась пустая иконка. Теперь до загрузки нового изображения отображается старое.
  • Переделан расчет зоны действия камеры на маршруте.
  • Сделано исправление ошибки, при которой слежение за позицией включается не сразу при старте навигации.
  • В базовых UI контрола навигатора поддержаны различные режимы работы навигатора, такие как RouteSearch , Finished , Disabled .
  • Доработана отрисовка перекрытий на дороге поверх пробок.
  • Ломающее изменение. Класс RouteSearchOptions был заменён на variant, который может содержать один из конкретных классов — CarRouteSearchOptions , PedestrianRouteSearchOptions , BicycleRouteSearchOptions , PublicTransportRouteSearchOptions или TruckRouteSearchOptions .
  • Ломающее изменение. Был удален enum RoutingType . Вместо него стоит использовать RouteSearchOptions .
  • Ломающее изменение. У класса NavigationManager.uiModel удален канал distanceCountersChannel . Вместо него теперь нужно использовать currentRoutePositionChannel для расчета оставшегося расстояния до ближайшего маневра или до конца маршрута. Классы DistanceCounters и HumpPoint были удалены. Добавлен класс IntermediatePoint , описывающий промежуточную точку на маршруте. Информацию о текущей позиции на маршруте содержит новый класс RoutePosition .
  • Ломающее изменение. Удален класс TrafficManager . Класс TrafficScore переименован в TrafficScoreProvider и становится основным классом для работы с пробками. Класс TrafficScoreValue переименован в TrafficScore .
  • Ломающее изменение. Поменялись базовые стили. В редакторе стилей на вкладке Динамические объекты у объекта Радиус точности геопозиции должен использоваться подслой s_dvg_accuracy_circle (если есть ещё 2 — это нормально, они оставлены для совместимости с первой версией).

v2.0.0-alpha.7

Release Date: 26.08.2021

  • Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты.
  • Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер.
  • Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition .
  • Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом:
    1. У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен .
    2. У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен .
  • Контрол о проезде зоны действия камеры — CameraControl
  • Исправлено зависание в TrafficSource
  • Исправления в притяжке к маршруту в режиме Free Roam
  • Исправлено падение при создании большого количества маркеров с установленной userData

Release Date: 25.08.2021

  • Поправили конфиг ProGuard для корректной сборки

Release Date: 24.08.2021

  • Исправлена проблема, при которой MapObjectManager.removeObject не отрабатывал, если параллельно у удаляемого объекта изменять атрибуты.
  • Доработана кластеризация, формируемая через MapObjectManager.withClustering . Теперь при удалении маркеров из MapObjectManager позиция кластеров корректируется в случае, если был удален кластерообразующий маркер.
  • Теперь CameraPositionPoint учитывается при расчете позиции камеры CameraPosition с помощью функции calcPosition .
  • Ломающее изменение. Доработано отображение маркера текущего местоположения — теперь иконку с направлением можно рисовать всегда, независимо от режима навигации. В случае использования кастомных стилей, в редакторе стилей нужно поправить динамические объекты текущего местоположения следующим образом:
    1. У Маркер на авто и Маркер на авто, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Включен .
    2. У Маркер с направлением , Маркер без направления и Маркер без направления, устаревшая позиция в пункте Видимость перевести тумблер Режим навигатора и выбрать пункт Выключен .

Release Date: 17.08.2021

  • Исправлено падение в NetworkConnectionManager .

v2.0.0-alpha.6

Release Date: 13.08.2021

  • Добавлена возможность настройки пешеходной озвучки маршрута при навигации.
  • В NavigationManager.uiModel добавлен канал navigationActiveChannel , который возвращает два состояния — active и inactive . Второе состояние выставляется, когда пользователь закончил движение на автомобиле, и навигатор можно выключить.
  • Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager .
  • Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1).
  • Исправлено некорректное поведение при клике в кластер при отображении кластеризации.
  • Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной.
  • Убрано исключение при повторных удалениях подписок к каналам Channel .

Release Date: 12.08.2021

  • Исправлено падение при параллельном изменении позиции маркера и переинициализации MapObjectManager .
  • Исправлена ошибка, при которой переставала работать кластеризация при малых значениях zoom-уровня (0 или 1).
  • Исправлено некорректное поведение при клике в кластер при отображении кластеризации.
  • Исправлена ошибка, при которой карта в неинтерактивном режиме все равно оставалась кликабельной.
  • Убрано исключение при повторных удалениях подписок к каналам Channel .

v2.0.0-alpha.5

Release Date: 06.08.2021

  • Исправлена проблема в навигаторе, при которой в режиме навигации происходили продолжительные фризы, а маркер позиции имел некорректное направление и смещался в случайное положение.
  • В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker .
  • С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера.
  • Исправлена утечка памяти при удалении карты.
  • Исправлена проблема, при которой невозможно было выбрать маршрут при максимальных значениях zoom-уровня.
  • Убрали подвисание слежения за текущей позицией при смене длительности анимации в навигаторе.

Release Date: 05.08.2021

  • В MapObjectManager появился метод clusteringObjects(сameraPosition) для получения объектов кластеризации для заданной позиции камеры. Метод возвращает как кластеры SimpleClusterObject , так и маркеры Marker .
  • С помощью объекта SimpleClusterObject теперь можно изменять атрибуты кластера также, как и атрибуты маркеров Marker , за исключением позиции кластера.
  • Исправлена утечка памяти при удалении карты.

v2.0.0-alpha.4

Release Date: 28.07.2021

  • В классе RouteMapObject добавлен канал calloutPositionChannel с позицией баблика над маршрутом.
  • В структуру Camera , которую возвращает NavigationManager , добавлено поле range — информация о радиусе действия камеры.
  • Была разделена озвучка навигатора в зависимости от типа маршрута — пешеходный/велосипедный/автомобильный.

Release Date: 28.07.2021

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

Обновлен логотип 2ГИС + СБЕР на карте.

Оптимизация создания/удаления MapTextureView .

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

Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна.

Обновлены общие стили:

В редактор перенесены:

A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ).

B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ).

C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ).

D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ).

E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ).

F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ).

Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль.

Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях.

Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях.

В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити .

В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол .

Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях.

v2.0.0-alpha.3

Release Date: 23.07.2021

Исправлена проблема с ведением по длинному маршруту: обновление маркера геопозиции и всей карты происходило рывками. Теперь обновление карты происходит плавно.

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

Обновлен логотип 2ГИС + СБЕР на карте.

Оптимизация создания/удаления MapTextureView .

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

Теперь события в MapEventProcessor не обрабатываются, если карта не интерактивна.

Обновлены общие стили:

В редактор перенесены:

A. Стрелки манёвров (Линия маршрута на авто => 4 слоя Стрелки манёвров* ).

B. Начальная, конечная, промежуточная точка маршрута, а также точка соединения разных частей маршрутов (слои Точка Б , Точка А , Соединительные точки , Промежуточные точки в каталоге Динамические объекты ).

C. Маркеры поисковой выдачи (слои Поисковой маркер выделение , Поисковой маркер , Генерализованный маркер в каталоге Динамические объекты ).

D. Объекты на маршруте (слои в каталогах TUGC на маршруте в режиме ведения и TUGC на маршруте ).

E. Пешеходные части маршрутов (слои в каталогах Линия пешего маршрута в ведении и Линия пешего маршрута ).

F. Маркер геопозиции для пешеходного режима (слои Маркер с направлением , Маркер без направления , Устаревший маркер без направления в каталоге Динамические объекты ).

Теперь эти объекты настраиваются из редактора и не отображаются безусловно поверх всего. Слои нужно скопировать в свои стили и расположить в аналогичном порядке, чтобы все объекты отображались с новой версией SDK корректно. Для копирования слоя можно выделить нужные слои, нажать Ctrl+C/Cmd+C и открыть в том же окне другой стиль.

Удалён слой Маркер пешком . Его также нужно удалить в собственных стилях.

Изменены слои для отображения подъездов (слои Подъезды над домами и Подъезды под домами ). Теперь данные задаются не через JSON, а выбраны правильные слои во вкладке Данные . Также в ночной теме у подъездов под домами убран шрифт, чтобы они отображались без подписей. Нужно внести аналогичные изменения в собственных стилях.

В ночную тему в каталог Подписи гео объектов добавлены слои Подписи горных хребтов и Подписи платформ , а в каталог Достопримечательности — слой Граффити .

В дневную тему в каталог Достопримечательности добавлены слои Ёлочный базар , Полиция , Душевая кабина , Танцпол .

Изменены слои в каталоге Дороги , требуется их обновить в собственных стилях.

v2.0.0-alpha.2

Release Date: 13.07.2021

  • Поиск пешеходных маршрутов — RoutingType.PEDESTRIAN , RouteInfo.pedestrianObstacles
  • Поиск маршрутов на общественном транспорте — RoutingType.PUBLIC , TrafficRoute.publicTransport
  • Возможность выбора голоса навигатора — NavigationManager.voiceSelector , VoiceManager
  • Скачивание offline-территорий — TerritoryManager
  • Управление этажными планами — Map.indoorManager
  • Получение и установка уровня отрисовки объектов карты — SimpleMapObject.zIndex
  • Возможность указать, какие части маршрута отображаются на карте — RouteMapObject.displayFlags
  • Получение изображений полосности — getLanesControlImages
  • Обновление маркера местоположения в навигаторе при сходе с маршрута
  • Обновленный copyright на карте
  • Ломающее изменение: В RouteInfo вместо длины маршрута теперь маршрут( TrafficRoute ) целиком

Release Date: 09.07.2021

🎉 Первый публичный релиз! 🎉

  • Ломающее изменение: Изменено разбиение по пакетам — удален ru.dgis.sdk.context , его содержимое расположено в ru.dgis.sdk
  • Кластеризация для Marker -ов — MapObjectManager.withClustering , SimpleClusterRenderer , SimpleClusterOptions
  • Уменьшен размер map-сборки — убрали работу с offline справочником и картой
  • UI контрол пробок — TrafficControl
  • Задание частоты обновления карты в режиме энергосбережения — MapOptions.powerSavingMaxFps
  • Задание расположения надписи относительно маркера — TextStyle.textPlacement , TextStyle.textOffset
  • Возможность задать обработчик при нажатии на копирайт — MapView.setUriOpener
  • Ломающее изменение: Функция toMapGeometry(trafficRoute, routePoint) переименована в remainingRouteGeometry
  • Оптимизация работы с сетевыми соединениями

v0.16.1

Release Date: 07.06.2021

  • Обновлены стандартные стили карты — исправлены размеры надписей и иконок

v0.16.0

Release Date: 03.06.2021

  • Возможность задания порядка отображения объектов карты — MarkerOptions.zIndex , PolygonOptions.zIndex , и тд.
  • Возможность отключения анимации появления/исчезновения маркеров MarkerOptions.animatedAppearance
  • Учет локалей при отображении карты и поиске, возможность задания локалей, отличных от системных — LocaleManager.setOverridedLocales
  • Возможность определения геометрии оставшейся части маршрута — toMapGeometry(trafficRoute, currentRoutePoint)
  • Ломающее изменение: Вместо MapOptions.style теперь MapOptions.styleFile , что позволяет задать стиль синхронно. Методы StyleBuilder.loadStyleFromXxx заменены на StyleBuilder.loadStyle(styleFile)
  • Ломающее изменение: Удален устаревший класс MarkerBuilder , вместо него нужно использовать Marker , MapObjectManager
  • Ломающее изменение: Изменена размерность LogicalPixel — теперь они совпадают с dp (в дюйме 160 логических пикселей). Это приводит к изменению размеров объектов карты, нужно заново настроить стили, зато карта в приложении выглядит так же, как в редакторе
  • Скрыты классы предназначенные для внутреннего использования
  • Исправлено отображение карты при нулевом z-уровне

v0.15.1

Release Date: 27.05.2021

  • Исправлена обработка долгого нажатия на карту — TouchEventsObserver.onLongTouch

v0.15.0

Release Date: 25.05.2021

  • Возможность задания угла наклона камеры в зависимости от масштаба — ZoomToTiltRelation , Camera.zoomToTiltRelation
  • Проверка пересечения геометрий — Geometry.hasIntersection
  • Возможность задать пользовательский обработчик логирования — LogOptions.customSink
  • Возможность задать пользовательский обработчик жестов — MapGestureRecognitionEngine , MapView.useCustomGestureRecognitionEngine
  • Режим масштабирования карты теперь задается через GestureManager.setSettingsAboutMapPositionPoint и влияет на все жесты
  • Признак, что первый элемент поисковой выдачи пригоден для непосредственного использования — SearchResult.autoUseFirstResult
  • Изменение интерфейса MapObjectManager — конструкторы Marker , Polygon и тд. вместо MapObjectManager.createMarker/createPolygon , методы MapObjectManager.addObject/addObjects/removeObject и др.
  • Изменён порядок параметров в calcPosition и zoomOutToFit
  • DataCollectStatus переименован в PersonalDataCollectionConsent
  • Упрощена инициализация SDK из Java — некоторые параметры DGis.initialize стали опциональными
  • Исправление в кешировании тайлов карты

v0.14.0

Release Date: 05.05.2021

  • Исправлена ошибка при добавлении маркера — по умолчанию, он направлен вверх экрана независимо от поворота карты.
  • Ломающее изменение. Изначальный поворот маркера ( MarkerOptions.iconMapDirection ) и поворот существующего маркера ( Marker.iconMapDirection ) теперь optional.

v0.13.0

Release Date: 30.04.2021

  • Исправлено промаргивание карты черным цветом при ее создании
  • Возможность задать поворот маркера MarkerOptions.iconMapDirection , Marker.iconMapDirection
  • В копирайте на карте по умолчанию не отображается версия SDK, чтобы включить нужно задать MapView.showApiVersionInCopyrightView = true
  • Информация о положении камер в навигаторе — Camera.geoPoint, Camera.bearing
  • Возможность задать positionPoint в функциях calcPosition и zoomOutToFit
  • Функции для создания объектов заменены на конструкторы createMapObjectManager -> MapObjectManager , Geometry.createPoint -> PointGeometry и т.д.

v0.12.1

Release Date: 23.04.2021

  • исправлен учет масштаба карты
  • минимальный масштаб ( CameraZoomRestrictions.minZoom ) теперь по умолчанию — 2
  • убрано вытеснение маркеров друг другом
  • исправление в обработке статистики

Release Date: 22.04.2021

  • возможность использования SVG изображений для маркеров — imageFromAsset(context, «some.svg»), imageFromSvg(context, svgData)
  • исправлены падения при оптимизации кода с помощью ProGuard
  • исправлен учет видимости полилинии PolylineOptions.visible, Polyline.isVisible
  • добавили сбор анонимной статистики использования, по умолчанию включено (параметр dataCollectStatus в DGis.initialize ), отключать рекомендуется только в случае явного выбора пользователем(например, отказ GDPR)
  • на изображении карты( MapView.takeSnapshot ) отображается копирайт
  • возможность задать собственную траекторию перемещения камеры — Camera.move(moveController)
  • свойство padding перемещено из Map в Camera
  • возможность задать поведение камеры при изменении padding — Camera.setPadding(padding, positionPointChangeBehaviour)
  • при поиске( SearchManager ) учитывается местоположение пользователя
  • свойство GeometryMapObject.originalGeometry переименовано в geometry
  • удалено свойство GeometryMapObject.shift вместо него нужно использовать установку geometry
  • Исправлены типы параметров registerPlatformLocationSource , registerPlatformMagneticSource — LocationSource , MagneticHeadingSource вместо Any
  • ускорено получение результата срабатывания Future и Channel
  • удалены устаревшие методы Future и Channel

Release Date: 14.04.2021

  • возможность задать произвольную тему карты — MapOptions.lightTheme , MapOptions.darkTheme , Map.setTheme(light, dark) , Map.setTheme(name)
  • управление и получение информации о http-кэше — HttpCacheManager
  • дополнительные конструкторы data-типов — GeoPoint(lat: Double, lon: Double) , Color(r, g, b, a) и др.
  • информация о полосах движения маршрута — RouteInfo.laneSigns
  • возможность вращать/масштабировать карту относительно ее центра(а не центра жеста) — RotationSettings.rotateAboutMapPositionPoint , ScalingSettings.scalingAboutMapPositionPoint
  • возможность задать скорость движения в симуляции навигации — SimulationSettings.speed
  • убрана тонкая черная граница у объектов карты, когда она не задана
  • исправлено падение при удалении карты на эмуляторах
  • исправлено падение при задании LocationSource
  • Ломающиее изменение: TextStyle.fontSize , TextStyle.strokeWidth имеют тип LogicalPixel , а не Float
  • Ломающиее изменение: вместо navigation.Model.laneSign теперь navigation.Model.laneSignIndex , а LaneSign можно получить по этому индексу из RouteInfo.laneSigns

Release Date: 07.04.2021

  • добавили метод takeSnapshot для получения последнего отрисованного кадра в картинку
  • параметр interactive для отключения возможности взаимодействия пользователя с картой
  • добавили renderMode. Теперь можно отрисовывать карту в TextureView
  • добавили полилинию с градиентом
  • Ломающее изменение: обновили класс GeoRect
  • removeSource больше не бросает исключение. Даже если источник не был добавлен на карту

Release Date: 24.03.2021

  • добавили возможность рисовать пунктирную линию
  • opacity для Marker
  • функции конверторы для работы со Style Zoom(projectionZToStyleZ, styleZToProjectionZ)
  • для работы с атрибутами карты добавлен новый тип AttributeValue
  • showApiVersionInCopyrightView для отображения версии SDK в copyright
  • исправлено падение при вызове getMapAsync из не приатаченного View
  • из DgisMapObject больше нельзя получить Future на объект справочника. Для этого нужно использовать SearchManager

Release Date: 17.03.2021

  • Ломающее изменение: мы изменили формат работы с подписками на изменения свойств. Раньше такие поля как camera.position имели тип StatefulChannel . Для того чтобы получать уведомления об изменениях данных в Channel нужно вызвать camera.position.connect() , а получить текущее значение можно через camera.position.value . Такой API вызывал вопросы, поэтому в новой версии camera.position (и другие свойства StatefulChannel ) это просто getter/setter. А для подписки на изменение нужно использовать camera.positionChannel
  • добавили кэш для тайлов на карте. По умолчанию кэш включен, и максимальный размер хранилища 300Мб. Его можно отключить или изменить его размер в настройках HttpOptions
  • Padding на карте
  • для объектов Polygon/Polyline добавилась возможность изменить текущую геометрию
  • добавили источник для растровых тайлов(см. createRasterTileDataSource)
  • поддержали атрибут theme для стилей карты выгруженных из редактора
  • методы для создания иконки маркера imageFromAsset/imageFromCanvas/imageFromResource переместили в пакет ru.dgis.sdk.map
  • сконвертировали методы в property в случаях когда такая форма более логична(напр. enabledGestures)

Release Date: 04.03.2021

  • высокоуровневый API для динамических объектов карты(см. MapObjectManager)
  • методы visibleArea, visibleRect для получения видимой области карты
  • источник TrafficSource для отображения пробочных тайлов на карте
  • получение геометрии из TrafficRoute
  • исправления в сигнатурах функций. Большинство методов теперь возвращает non-nullable значения

Release Date: 15.02.2021

  • разделили SDK на 2 артефакта. sdk-map — версия для тех кому нужна только карта и справочник. sdk-full — более полная, содержит в себе навигатор. В build.gradle необходимо указать нужную версию(напр. implementation ‘ru.dgis.sdk:sdk-map:0.6.0’ )
  • карта и контролы теперь доступны и в темной теме
  • добавили уровень логирования. По умолчанию SDK пишет только Warning и более критичные сообщения
  • методы для вычисления позиции камеры и Zoom Level по заданной геометрии
  • источник для данных с кластеризацией
  • добавили возможность задать координату с высотой для маркера
  • для динамических объектов на карте, добавили возможность определить пользовательские данные
  • поддержали создание маркера с текстом, без иконки
  • Ломающее изменение: иконку маркера необходимо указывать через объект стилей. Формирование стиля маркера с иконкой может занимать значительное время т.к. для этого может понадобится растеризация/сжатие изображения. Мы настоятельно рекомендуем делать это в фоновом потоке и переиспользовать MarkerStyle для однотипных маркеров.

Release Date: 04.02.2021

  • исправлен баг с ключами API(проявлялось как 403 от сервера тайлов)
  • звуковое оповещение о превышении скорости в навигаторе
  • получение пробочного балла в TrafficManager
  • landscape Ui в навигаторе

Release Date: 26.01.2021

  • приглушение других звуков при проигрывании инструкций навигатора
  • редизайн Ui навигатора
  • исправление ошибок

Release Date: 20.01.2021

Release Date: 19.01.2021

  • ViewportPoint переименован в ScreenPoint, ViewportSize ->ScreenSize
  • фикс слоя для маркеров
  • добавлен GestureManager
  • добавили возможность отменять Future
  • изменили работу с Any типами (см. пример)

Release Date: 22.12.2020

  • режим слежения за маркером местоположения
  • поддержка offline данных в downloads директории
  • воспроизведение голосовых инструкций с учетом скорости на маршруте
  • searchById в модуле справочника
  • добавили свойство renderView у объекта MapView

Release Date: 15.12.2020

  • голосовые инструкции в навигаторе во время ведения по маршруту
  • поддержали жест наклона карты

Release Date: 09.12.2020

  • добавлен новый DgisSource. Для работы c объектами 2GIS
  • Ломающее изменение: DgisSourceCreator был удален. Вместо него стоит использовать статические методы DgisSource
  • в RouteParams добавлена поддержка промежуточных точек

Release Date: 03.12.2020

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

Release Date: 24.11.2020

  • добавили возможность делать подпись к маркерам
  • для объектов справочника доступны дополнительные атрибуты
  • Ломающее изменение: необходимо отказаться от методов tryCastTo* в пользу обычного приведения типов
  • уменьшили размер зашитых в библиотеку данных

Release Date: 17.11.2020

  • данные, необходимые для инициализации SDK, теперь зашиты в пакет. Больше нет необходимости в предустановленных данных
  • отображение поисковой выдачи с генерализацией как в мобильном 2GIS
  • работа с FollowManager. Позволяет следить за точкой на карте
  • для карты Online Data Source выбирается по умолчанию
  • научили наш 3d engine работать с SVG
  • в стриме событий навигатора добавилась координата следующего маневра

Release Date: 09.11.2020

  • поддержка drag для объектов карты
  • в RouteEditor теперь можно выбирать маршрут по клику в него
  • «съедание» маршрута при запуске навигатора
  • исправления в расчете ETA

Release Date: 02.11.2020

Release Date: 27.10.2020

  • исправлен баг c ClassLoader при использовании sharedUserId
  • в найденном маршруте можно получить расстояние в метрах через route.length
  • добавлен обработчик для уменьшения потребления памяти
  • в MapView добавлена работа с TouchEventsObserver

Release Date: 20.10.2020

  • отображение маркера текущего местоположения
  • добавили использование API key
  • починили работу https
  • изменен интерфейс NavigationManager

Release Date: 08.10.2020

Release Date: 22.09.2020

  • добавление кастомных геометрий

Release Date: 15.09.2020

Release Date: 08.09.2020

  • online карта
  • изменения в API для инициализации SDK
  • гибридный справочник(online + offline)

Источник

Оцените статью