Александр Картавцев
продакт-лид 2GIS Kit

Новое в 2GIS Kit

Продолжаем качать API&SDK Платформы для наших b2b- и b2g-клиентов. В этом выпуске — новые релизы в Mobile SDK, API для навигации и карт.
Navi API
Для нашего Ishochrone API мы сделали важную доработку: стали лучше учитывать границы воды. Раньше при построении изохрон мы возвращали полигон достижимости с объёмными водными зонами, по которым, очевидно, ни автомобиль, ни пешеход двигаться не могут. Изохроны используются ещё и в Про — клиентам такие чудеса на водной глади не помогут.

Переписали алгоритмы — получилась пушка:

Двигайте слайдеры, чтобы сравнить, как изменились зоны достижимости после обновления Isochrone API. Cлева в каждой паре скриншотов — до обновления, справа — после, с учётом береговой линии

Ещё добавили возможность управлять детальностью отрисовки изохрон, чтобы пользователь мог избегать сильных «зубьев».
Также это позволило ускорить работу алгоритма вместе с увеличением детализации:
285 мс
170 мс
скорость с новым алгоритмом с высокой детализацией
старый алгоритм
Скорость ответа 30 rps, 95-й процентиль
Ещё из нового: добавили в TSP API и в асинхронный метод Distance Matrix API возможность построения маршрутов на грузовиках.
MapGL JS API
Как и в веб-версии 2ГИС, все объёмные объекты на карте начали отбрасывать тень. За счёт этого добавилась глубина — картинка стала ещё реалистичнее.

Настраивать освещение можно в редакторе стилей. Подробнее — в документации

Раньше 2ГИС обрезал карту по 180-м меридианам западной и восточной долготы. Теперь карта стала бесшовной и позволяет осуществлять навигацию без этих ограничений. Если пользователю по каким-то причинам такое поведение не нравится, он может его выключить — в документации мы показали как именно.
Добавили несколько плюшек. Теперь если нужно скрыть или показать какие-то слои, не перезагружая при этом стили или карту целиком, можно воспользоваться новыми методами showLayers и hideLayers. Это позволяет гибче управлять набором отображаемых слоёв.

И обновили плагин для девелоперов с поэтажными планами. Теперь плагин не использует сторонние библиотеки для отрисовки моделей, а рисует модели с помощью оригинального 3D-движка 2ГИС — это облегчает саму библиотеку, а в будущем позволит добавлять новые визуальные эффекты. Например, те же тени или другие эффекты, которые мы добавляем в наш движок.

Как перейти со старой версии плагина на новую, можно узнать в этом разделе документации

Mobile SDK
Сейчас активно работаем над новой мажорной версией Mobile SDK, а в июле вышла альфа 12-й версии. Встречаем ключевые фичи.

Выпустили FlutterSDK версии 12.0.0-alpha.8. Пока готова только Android-часть, iOS находится в разработке. FlutterSDK позволяет подключить наши сервисы во Flutter-фреймворк пользовательского приложения. Все API SDK теперь на Dart, все UI компоненты — на Flutter. Пакеты опубликованы во Flutter pub:

Новое мобильное приложение CityLens с использованием нашего Mobile SDK будет собираться на Flutter. Это позволяет нам экономить ресурсы разработки.

Также команда добавила возможность задавать Map.graphicsPreset для установки режима графики. Доступные режимы: упрощённый (без тяжёлых графических эффектов), стандартный (баланс потребления ресурсов и графических эффектов) и иммерсивный (с полными возможностями движка).

Ещё добавили возможность ограничивать область видимости карты в рамках GeoRect. Метод Map.viewportRestriction позволяет задать область GeoRect, в рамках которой будет двигаться и перемещаться карта. Любые перемещения или перелёты карты вне этой области просто будут невозможны.

В createRasterTileDataSource сделали поддержку WMS для отображения растровых тайлов. Этим стандартом активно пользуются клиенты, у которых есть наборы данных в этом формате. Недавно мы добавляли такой режим в MapGL JS API, теперь — в Mobile SDK.

Карта 2ГИС в Mobile SDK (1), вместе с OpenStreetMap (2) и карта дорог OSM без подложки 2ГИС (3)

Ещё добавили кастомизацию UI-контролов под iOS. Теперь можно в коде задавать шрифты всех текстов, цвета различных компонентов, темы и прочее. Это позволяет нашим клиентам адаптировать готовые интерфейсы под стиль своего мобильного приложения, не переписывая всю логику взаимодействия интерфейсов с нуля. Скоро ждём такое же под Android.
Нажимая кнопку «Комментировать», вы принимаете условия Лицензионного соглашения и даёте ООО «ДубльГИС» согласие на обработку персональных данных на условиях и в целях, определённых «Политикой конфиденциальности».