Поиск фреймворков для создания Android-приложения с пользовательской картой для офлайн-работы с ГИС

Вопрос или проблема

Мне нужно создать приложение для Android, которое будет работать офлайн с пользовательской картой, способной отображать растровые и векторные слои, используя данные из локального хранилища устройства. Также необходимы функции рисования, редактирования, удаления и измерения геометрий. Желательно работать с проекциями, отличными от WGS 84, так как все данные находятся в EPSG:3346.

Я использовал OpenLayers для веб-ориентированной пользовательской карты, так что, думаю, я мог бы сказать, что ищу что-то вроде OpenLayers, но для Android.

Большинство необходимых функций можно получить, используя приложение Avenza Maps. На уровне подписки Pro можно загружать собственные растровые слои, а также шейп-файлы. Можно рисовать и измерять. Не уверен, можно ли редактировать или удалять геометрии.
На базовом (бесплатном) уровне можно добавлять до трех растровых карт и неограниченное количество векторных слоев в формате KML.

Ответ или решение

Создание Android-приложения для оффлайн-работы с пользовательской картой — это задача, требующая использования подходящих фреймворков и библиотек, особенно если вы хотите реализовать функционал работы с растровыми и векторными слоями, а также обеспечивать возможность рисования, редактирования и измерения геометрий. Учитывая, что вся ваша геодезическая информация представлена в системе координат EPSG:3346, а не в стандартной WGS 84, необходимо найти решение, которое поддерживает работу с различными системами координат.

Возможные решения для разработки Android приложения

  1. Mapsforge

    • Описание: Это библиотека с открытым исходным кодом, предназначенная для рендеринга карт на Android устройствах. Она поддерживает оффлайн-рендеринг и работу с векторными данными, что позволяет вам загружать и отображать пользовательские карты прямо с устройства.
    • Геометрии: Mapsforge позволяет рисовать и обрабатывать пользовательские данные на карте.
    • Поддержка сторонних проекций: Для использования EPSG:3346 может потребоваться дополнительная настройка, но библиотека имеет гибкие настройки для расписания проекций.
  2. OSMDroid

    • Описание: OSMDroid предоставляет возможности для загрузки и отображения OpenStreetMap карт оффлайн, а также позволяет интегрировать их с другими источниками данных.
    • Функционал: Можно интегрировать растровые и векторные слои через дополнительную обработку данных во время импорта через KML или другие форматы.
    • Поддержка: Коррекция системы координат может потребовать доработки при импорте данных в нужный формат.
  3. Mapbox SDK

    • Описание: Mapbox предоставляет мощную SDK для Android с поддержкой оффлайн-карт. Это коммерческое решение, предлагающее широкий спектр возможностей, в том числе работа с кастомными проекциями и поддержка растровых и векторных данных.
    • Функционал: Вы можете создать функционал редактирования и измерения геометрий, используя кастомный рендеринг и плагины Mapbox.
    • Проекции: Поддержка кастомных проекций, потенциально подходящих для EPSG:3346, реализуется через кастомизацию стиля карты.

Внедрение и доработка

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

  • Растровые и векторные слои: Обеспечьте поддержку нужных форматов карт и слоев.
  • Инструменты для геометрий: Реализуйте инструменты для рисования, редактирования и удаления геометрий, интегрируя их с API фреймворка.
  • Проекции и геодезия: Убедитесь в правильной обработке систем координат через трансформацию данных к целевой проекции.

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

Оцените материал
Добавить комментарий

Капча загружается...