Мобильное ГИС приложение NextGIS Mobile

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница является черновиком статьи.


Мобильная ГИС NextGIS Mobile - ПО для операционной системы Android позволяет работать с геоданными в поле.

Назначение программы

Мобильная ГИС NextGIS Mobile представляет собой программное обеспечение с открытым исходным кодом (лицензия GPL) для операционной системы Android. NextGIS Mobile может функционировать на смартфонах и планшетах, которые управляются этой операционной системой.

NextGIS Mobile позволяет:

  • отображать карту и компас
  • выполнять навигацию по карте (увеличение, уменьшение, перемещение)
  • вводить полевые данные (записываются координаты точки, с возможностью накопления статистики для более точного определения местоположения, описание из предопределенных категорий или произвольное, фотографии, ориентировка и дистанция до объекта, относительно точки, записывать примечание)
  • отображать вводимые точечные данные на карте
  • записывать треки
  • отображать координаты, скорость, высоту устройства на карте
  • накапливать и передавать в фоновом режиме по сети Интернет (при наличии подключения) на сервер хранения данные о местоположении устройства
Nextgis.png Создание открытого ПО ГИС и реализация проектов

Получение и установка

Программа доступна на сайте компании NextGIS.

Исходный код программы размещен в репозитории.

Условия выполнения программы

Для выполнения программы необходимо устройство под управлением операционной системы Android версии 2.3 и выше. Желательно, что бы устройство было оснащено следующим оборудованием:

  • датчик GPS и/или ГЛОНАСС
  • цифровой компас
  • модуль сотовой связи
  • тыловая фотокамера

Если какое либо оборудование отсутствует на устройстве, то связанные функции будут не доступны.

Программа не предъявляет специфических системных требований, однако, количество оперативной памяти и памяти для хранения данных может ограничивать размер загружаемых карт.

Выполнение программы

Программа устанавливается на устройство при помощи пакетного файла nextgismobile.apk. Для установки из пакетного файла необходимо в настройках устройства разрешить установку программ из неизвестных источников (настройки/безопасность/неизвестные источники). После установки программы, возможность установки из неизвестных источников можно деактивировать.

Для запуска программы используется ярлык, автоматически создаваемый при ее установки (рис. 1).

Рис. 1. Ярлыки приложений (красным пунктиром выделен ярлык NextGIS Mobile).

Порядок загрузки, запуска и завершения программы

После установки программы ее можно использовать. Однако, рекомендуется провести ряд подготовительных операций:

  • подготовить и загрузить на устройство файл категорий и подкатегорий для ввода точек
  • кэш тайлов карт для работы без доступа к сети Интернет

Файл категорий и подкатегорий

Файл категорий и подкатегорий служит для формирования диалога ввода точек. На первой вкладке диалога (см. рис. 2) пользователю предлагается ввести описание вводимой точки.

Рис. 2. Диалог ввода точки (вкладка описание). 1 – категория, 2 – подкатегория, 3 – поле ввода пользовательских данных.

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

При первом запуске в папке с данными программы будет сформирован шаблон файла категорий и подкатегорий.

Файл располагается в папке с программой (обычно по следующему пути: Android/data/com.nextgis.mobile/files/categories.xml). Файл может быть скачан с устройства и отредактирован. Переименование файла и изменение его кодировки не допускается. После изменений, файл необходимо скопировать обратно на устройство в папку с данными программы (Android/data/com.nextgis.mobile/files).

Файл categories.xml имеет следующую структуру:

<?xml version="1.0" encoding="utf-8"?>
<categories>
<category name="animals">
<subcategory name="marsupials"/>
<subcategory name="carnivores"/>
...
</category>
<category name="plants">
<subcategory name="Aconitum"/>
<subcategory name="Datura"/>
...
</category>
<!-- add button to add custom subcategory -->
<category name="custom"/>
</categories>

Файл включает в себя стандартный заголовок XML (<?xml version="1.0" encoding="utf-8"?>), далее следуют тэг набора категорий (<categories> … </categories>), внутри тэга набора категорий идут тэги отдельных категорий (<category name="animals"> … </category>), внутри тэга категорий перечисляются подкатегории (<subcategory name="Aconitum"/>). При наличии тэга <category name="custom"/> появляется возможность вводить пользовательские данные в отдельное поле ввода (см. рис. 2 п. 3), иначе поле деактивировано.

Для задания необходимых значений, которые будут выводится в списках 1 и 2 диалога ввода точки (см. рис. 2) используется атрибут name="Aconitum". В кавычках указывается необходимое значение, которое появится в соответствующий списках.

Подготовка карт для работы без доступа к сети Интернет

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

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

Для формирования архивов рекомендуется использовать настольную ГИС NextGIS QGIS совместно с модулем расширения QTiles (см. рис. 3).

Рис. 3. Диалог конфигурирования экспорта тайлов из состава модуля QTiles.

Сформированные при помощи модуля QTiles архивы с кэшем тайлов следует загрузить на устройство в папку osmdroid, которая обычно располагается в корне карточки памяти (SDCard) или в корне файловой системы устройства. Архивам можно присвоить любые названия. При выборе масштаба тайлов не рекомендуется ставить максимальный масштаб более 19 – карта не поддерживает зуммирование на большие уровни, а лишние тайлы занимают место в памяти устройства и приводят к задержкам при чтении содержимого архива.

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

Кроме того, можно загрузить тайловый кэш не выполняя архивирование в директорию osmdroid/tiles. Это может значительно ускорить отрисовку карты. Однако, при подключении к сети Интернет, тайлы могут быть перезаписаны тайлами, полученными из OpenStreetMap.

Описание функций

Главный экран программы представлен на рисунке 4.

Рис. 4. Главный экран программы.

На рисунке цифрами обозначено:

  1. Меню выбора экранов. Включает в себя пункты: "Карта" и "Компас".
  2. Карта.
  3. Кнопки увеличения и уменьшения карты.
  4. Кнопка меню.
  5. Кнопка центрирования карты в координатах, полученных от провайдера данных местоположения (GPS, Wi-Fi или по базовым станциям).
  6. Кнопка включения/отключения показа окна информации (скорость, координаты и высота).
  7. Кнопка включения/отключения записи GPS трека.
  8. Кнопка ввода точки.
  9. Кружок ошибки определения координат.
  10. Местоположение устройства на карте.

Кнопка меню показывается только на тех устройства, на которых нет аппаратной кнопки. В состав меню входят следующие пункты:

  • Настройки
  • О программе.

Экран компаса представлен на рисунке 5.

Рис. 5. Экран компаса.

На рисунке цифрами обозначено:

  1. Кнопка возврата к предыдущему экрану. Работает аналогично аппаратной (или программной) кнопке возврат.
  2. Кнопка меню.
  3. Циферблат компаса. Можно вращать для удобства определения азимута на цель.
  4. Азимут направления (зависит от ориентации устройства).
  5. Стрелка С-Ю.
  6. Индикатор "горизонтального" расположения устройства для более точного получения направления на стороны света.

Ввод точек представляет собой пошаговый мастер (см. рис. 6 - 9). В диалоге можно перейти к любому шагу или сразу же нажать на кнопку ввода.

На рисунке 6 представлен экран ввода описания точки.

Рис. 6. Экран ввода описания точки.

На рисунке цифрами обозначено:

  1. Открыты список категорий.
  2. Перечень вкладок с экранами. Переход между вкладками можно выполнять нажатием на заголовок вкладки или перелистыванием.
  3. Кнопка ввода точки. Кнопка присутствует на всех экранах. При ее нажатии данные записываются в файл.
  4. Кнопка отмены. При нажатии на кнопку закрывается диалог.
  5. Кнопка меню.
  6. Категория "custom" для ввода пользовательской информации.

После экрана ввода описания, следует экран ввода ориентировки. Если нет возможности подойти к точке, то можно указать ориентировку на нее. Для этого необходимо повернуть циферблат компаса, что бы красная стрелка указывала на необходимый объект и указать расстояние до него.

Экран ввода ориентировки представлен на рисунке 7.

Рис. 7. Экран ввода ориентировки.

На рисунке цифрами обозначено:

  1. Азимут направления на объект.
  2. Циферблат для указания направления.
  3. Поле ввода расстояния.

Для каждой вводимой точки может быть сопоставлено одна или несколько фотографий. Для съемки и ввода фотографий служит экран ввода фотографий (см. рис. 8).

Рис. 8. Экран ввода фотографий.

На рисунке цифрами обозначено:

  1. Кнопка для съемки фотографии. В стандартном приложении съемки фотографий нужно нажать кнопку ввода полученной фотографии, для того что бы она появилась в списке 2.
  2. Список выполненных фотографий. Все фотографии сохраняются в папке с данными программы, в подпапке Pictures (например, путь может быть таким: Android/data/com.nextgis.mobile/files/Pictures).

Последний экран (см. рис. 9) служит для ввода примечания, а также отображает краткую сводку.

Рис. 9. Экран ввода примечания.

После ввода точки в папке сданными программы будет создан файл points.csv, куда будут записаны данные. Если файл уже создан, то данные будут записаны в конец файла.

Файл points.csv имеет следующие поля (колонки):

  1. date_time – дата и время.
  2. lat – широта.
  3. lon – долгота.
  4. acc – точность (данные о точности получаются либо из операционной системы или рассчитываются самостоятельно, в зависимости от настроек).
  5. error_est – способ определения ошибки местоположения.
  6. h – высота.
  7. dir – направление движения в момент съемки координат.
  8. src – источник позиционной информации (GPS, ,базовые станции, WiFi).
  9. speed – скорость движения.
  10. gps_t – время GPS.
  11. cat – категория.
  12. subcut – подкатегория.
  13. az – азимут указанный при помощи компаса.
  14. len – расстояние указанное на экране ввода ориентировки.
  15. desc – описание.
  16. photos – массив имен фотографий.
  17. photos_az – массив азимутов соответствующих фотографиям.

Для записи треков служит кнопка 7 см. рис. 4. При нажатии кнопки стартует отдельный сервис записи. Программа может быть свернута в фон и запись не прервется.

Для контроля за состоянием записи треков в строке статуса операционной системы выводится иконка (см. рис. 10). При ее нажатии программа активируется.

Рис. 10. Иконка записи трека в строке статуса.

Запись трека ведется в стандартном формате GPX. Треки сохраняются при повторном нажатии на кнопку записи. При этом создается файл с расширение gpx в подпапке GPX папки сданными программы (например, Android/data/com.nextgis.mobile/files/gpx).

На рисунках 11 и 12 представлены экраны настроек и сведений о программе соответственно.

Рис. 11. Экран настроек.
Рис. 12. Экран сведений о программе.

Настройки

Настройки программы имеют следующий состав:

  1. Основные установки:
    • идентификатор пользователя – идентификатор, который сопровождает данные о местоположении устройства, передаваемые на сервер;
    • сервер хранения – путь до скрипта записи данных местоположения устройства;
    • запускать службу при старте системы – запускает фоновые службы отслеживания местоположения и отправки координат при старте системы.
  2. Точность снятия координат:
    • отметка уточненного снятие координат – если стоит отметка включается режим накопления координат и усреднения местоположения точки;
    • количество измерений GPS координат – количество координат которые надо накопить для усреднения местоположения точки;
    • радиус погрешности – способ расчета погрешности (CE50, CE90, CE95 и CE98).
  3. Установки местоположения:
    • формат ввода координат (ГГ-ММ-СС.СС, ГГ-ММ.ММ или ГГ.ГГГГ);
    • вибрация при касании компаса;
    • не выключать экран когда активен компас;
    • показывать истинный полюс;
    • показывать магнитный полюс.
  4. Установки передачи данных:
    • минимальное время между посылками местоположения – большая частота посылок местоположения может разряжать батарею устройства;
    • выводить из режима сна для посылки местоположения – в операционной системе имеется планировщик, который пробуждает устройства для выполнения типовых операций (проверка почты, синхронизация и т. п.). Если будет активирована данная настройка, то устройства будет пробуждаться чаще, что может быстрее разряжать батарею устройства;
    • запуск/останов службы передачи местоположения.
  5. Установки трекера:
    • минимальное расстояние на котором будут фиксироваться точки трека;
    • минимальное время через которое будут фиксироваться точки трека;
    • запуск/останов службы трекера – при активирован будут записываться координаты для фоновой передачи на сервер хранения.

Ниже приведен пример простого скрипта PHP для записи информации о местоположении на сервере хранения.

<?php
$uid = $_GET["uid"];
$acc = $_GET["acc"];
$alt = $_GET["alt"];
$dir = $_GET["dir"];
$lat = $_GET["lat"];
$lon = $_GET["lon"];
$prov = $_GET["prov"];
$speed = $_GET["speed"];
$time = $_GET["time"];
$time_utc = $_GET["time_utc"];
$str = $uid.";".$acc.";".$alt.";".$dir.";".$lat.";".$lon.";".$prov.";".$speed.";".$time.";".$time_utc.";\n";

$fhandle = fopen($uid.".csv",'a+');

fwrite($fhandle, $str);

fclose($fhandle);

?>

Сообщения пользователю

№ п/п
Сообщение
Описание
1. Служба трекера запущена Всплывающее сообщение при старте службы записи местоположения для фоновой передачи.
2. Служба трекера остановлена Всплывающее сообщение при остановке службы записи местоположения для фоновой передачи.
3. Служба передачи местоположения запущена Всплывающее сообщение при старте службы передачи местоположения в фоновом режиме.
4. Служба передачи местоположения остановлена Всплывающее сообщение при остановке службы передачи местоположения в фоновом режиме.
5. Ошибка определения координат Всплывающее сообщение, если не удалось определить координаты по всем провайдерам местоположения. В основном возникает при попытке поставить точку до того как получены координаты местоположения.

Ссылки