Новые картографические библиотеки для ОС Аврора (Дмитрий Лапшин, OSSDEVCONF-2024)
Материал из 0x1.tv
- Докладчик
- Дмитрий Лапшин
MFW — это набор открытых программных библиотек, инструментов и примеров для решения задач картографии и навигации.
Поводом для его создания послужили запросы от разработчиков прикладного ПО для ОС Аврора на функции, которые не поддержаны в фреймворке Qt. MWF обеспечивает работу с векторными картами, включая маштабирование, вращение, стилизацию, а также геокодирование, навигацию и ведение по маршруту. В докладе представлены доступные функции, архитектура и особенности реализации.
Содержание
Видео
Презентация
Thesis
ОС Аврора — это операционная система для мобильных устройств, разрабатываемая компанией «Открытая мобильная платформа». Важную часть её целевой аудитории составляют корпоративные заказчики. Работа с картами является распространённым запросом для пользователей этого сегмента. Зачастую возникает необходимость внедрить соответствующие функции в ПО, которое разрабатывается для конкретного проекта. Для этого требуется API со стороны ОС и программные библиотеки. Основные требования к таким библиотекам:
- набор API должен покрывать отрисовку карт, управление отображениями карт, прямое и обратное геокодирование, построение и ведение по маршрутам;
- должны поддерживаться векторные карты;
- должна поддерживаться работа как с данными онлайн, так и в офлайн режиме;
- должны поддерживаться актуальные версии ОС Аврора;
- формат поставки библиотек должен позволять использование в составе коммерческих программных продуктов.
ОС Аврора предоставляет API для получения координат устройств и функции для работы с картами на основе Qt Location. Однако, для использования доступны только растровые тайлы, и не обеспечены задачи геокодирования.
Были проанализированы также другие решения, и выявлены их ограничения:
- OSM Scout server: Ограничения: сложная интеграция со сторонними решениями для ОС Аврора, не предоставляет API для работы с тайлами.
- Navitel Ограничения: стороннее решение, не предоставляющее средства интеграции.
- Yandex: Ограничения: отсутствует API для ОС Аврора.
Поскольку доступны варианты обладали существенными ограничениями, было принято решение предоставить новое решение.
Набор библиотек MFW предоставляет следующие основные компоненты:
- MfwMap — основная библиотека.
- В качестве основы компонента отображения векторных карт в ней используется библиотека MapLibre GL Native, для которой реализованы интерфейсы Qt Quick.
- Основные озможности MfwMap:
- подключение карт и API для управления ими, карты легко интегрируются в код пользовательских приложений;
- работа в режиме онлайн/оффлайн;
- векторные (плюсы: компактность и хорошая масштабируемость) и растровые карты;
- геокластеризация;
- аппаратный рендеринг.
- MfwOfflineRouting — библиотека для построения маршрутов. Основные возможности MfwOfflineRouting:
- построение маршрута по двум или нескольким точкам;
- получение необходимой информации для ведения по маршруту;
- обновление ранее полученного объекта маршрута;
- MfwOfflineGeocoding — библиотека для геокодинга. Основные возможности MfwOfflineGeocoding:
- получение адреса по координатам;
- получение координат по адресу;
- автоматическое получение подсказок при наборе адреса.
- MfwExportScripts — docker-образ со скриптами генерации оффлайн инофрмации. Основные возможности MfwExportScripts:
- генерация данных для оффлайн-карт;
- генерация данных для построения маршрутов;
- генерация данных для геокодинга.
В совокупности разработанные компоненты предоставляют необходимые библиотеки, инструменты, документацию, а также примеры как для разработки отдельных картографических решений, так и для включения необходимых функций в состав специализированного ПО. Для удобства включения в состав сторонних приложений MWF предоставляется в виде открытого исходного кода с разрешительными лизцензиями.