Мобильное ГИС приложение NextGIS Mobile
по адресу http://gis-lab.info/qa/nextgis-mobile.html
Мобильная ГИС NextGIS Mobile — это ПО для операционной системы Android, которое позволяет работать с геоданными «в поле».
Создано в | - открытое ПО ГИС и реализация проектов |
Назначение программы
Мобильная ГИС NextGIS Mobile представляет собой программное обеспечение с открытым исходным кодом (лицензия GPL) для операционной системы Android. NextGIS Mobile может функционировать на смартфонах и планшетах, которые управляются этой операционной системой.
NextGIS Mobile позволяет:
- отображать карту и компас;
- выполнять навигацию по карте (увеличение, уменьшение, перемещение);
- вводить полевые данные (записываются координаты точки с возможностью накопления статистики для более точного определения местоположения; описание из предопределенных категорий или произвольное; фотографии; ориентировка и дистанция до объекта, относительно точки; записывать примечание);
- отображать вводимые точечные данные на карте;
- записывать треки;
- отображать координаты, скорость, высоту устройства на карте;
- накапливать и передавать в фоновом режиме по сети Интернет (при наличии подключения) на сервер хранения данные о местоположении устройства.
Получение и установка
Программа разработана NextGIS и доступна на сайте компании.
Установить через Google Play
Исходный код программы размещен в репозитории на GitHub.
Условия выполнения программы
Для выполнения программы необходимо устройство под управлением операционной системы Android версии 2.3 и выше. Желательно, что бы устройство было оснащено следующим оборудованием:
- датчик GPS и/или ГЛОНАСС;
- цифровой компас;
- модуль сотовой связи;
- тыловая фотокамера.
Если какое либо оборудование из перечисленного отсутствует в устройстве, то связанные функции будут не доступны.
Программа не предъявляет специфических системных требований, однако, количество оперативной памяти и памяти для хранения данных может ограничивать размер загружаемых карт.
Выполнение программы
Программа устанавливается на устройство при помощи пакетного файла nextgismobile.apk. Для установки из пакетного файла необходимо в настройках устройства разрешить установку программ из неизвестных источников («настройки/безопасность/неизвестные источники»). После установки программы возможность установки из неизвестных источников можно деактивировать.
Для запуска программы используется ярлык, автоматически создаваемый при ее установке (рис. 1).
Порядок загрузки, запуска и завершения программы
После установки программы ее можно использовать. Однако, рекомендуется провести ряд подготовительных операций:
- подготовить и загрузить на устройство файл категорий и подкатегорий для ввода точек;
- кэш тайлов карт для работы без доступа к сети Интернет.
Файл категорий и подкатегорий
Файл категорий и подкатегорий служит для формирования диалога ввода точек. На первой вкладке диалога (см. рис. 2) пользователю предлагается ввести описание вводимой точки.
Для повышения оперативности ввода точки и исключения печати на экранной клавиатуре используются выпадающие списки (категорий и подкатегорий). Значения в списке получаются из файла категорий и подкатегорий. При выборе в списке какой либо категории, в списке подкатегорий буду заполнены соответствующие этой категории значения и установлена первая подкатегория. После этого пользователь сможет выбрать необходимую подкатегорию.
При первом запуске в папке с данными программы будет сформирован шаблон файла категорий и подкатегорий.
Файл располагается в папке с программой (обычно по следующему пути: 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).
Сформированные при помощи модуля QTiles архивы с кэшем тайлов следует загрузить на устройство в папку osmdroid, которая обычно располагается в корне карточки памяти (SDCard) или в корне файловой системы устройства. Архивам можно присвоить любые названия. При выборе масштаба тайлов не рекомендуется ставить максимальный масштаб более 19 — карта не поддерживает зуммирование на большие уровни, а лишние тайлы занимают место в памяти устройства и приводят к задержкам при чтении содержимого архива.
Для ускорения работы программы рекомендуется держать в папке osmdroid только те архивы кэша тайлов, которые необходимы в текущий момент. Остальные архивы можно положить в отдельную папку и переносить в папку osmdroid по мере необходимости, а также возвращать обратно архивы, надобность в которых отпала.
Кроме того, можно загрузить тайловый кэш, не выполняя архивирование в директорию osmdroid/tiles. Это может значительно ускорить отрисовку карты. Однако, при подключении к сети Интернет, тайлы могут быть перезаписаны тайлами, полученными из OpenStreetMap.
Описание функций
Главный экран программы представлен на рисунке 4.
На рисунке цифрами обозначено:
- Меню выбора экранов. Включает в себя пункты: "Карта" и "Компас".
- Карта.
- Кнопки увеличения и уменьшения карты.
- Кнопка меню.
- Кнопка центрирования карты в координатах, полученных от провайдера данных местоположения (GPS, Wi-Fi или по базовым станциям).
- Кнопка включения/отключения показа окна информации (скорость, координаты и высота).
- Кнопка включения/отключения записи GPS трека.
- Кнопка ввода точки.
- Кружок ошибки определения координат.
- Местоположение устройства на карте.
Кнопка меню показывается только на тех устройства, на которых нет аппаратной кнопки. В состав меню входят следующие пункты:
- Настройки
- О программе.
Экран компаса представлен на рисунке 5.
На рисунке цифрами обозначено:
- Кнопка возврата к предыдущему экрану. Работает аналогично аппаратной (или программной) кнопке возврата.
- Кнопка меню.
- Циферблат компаса. Можно вращать для удобства определения азимута на цель.
- Азимут направления (зависит от ориентации устройства).
- Стрелка С-Ю.
- Индикатор "горизонтального" расположения устройства для более точного получения направления на стороны света.
Ввод точек представляет собой пошаговый мастер (см. рис. 6 - 9). В диалоге можно перейти к любому шагу или сразу же нажать на кнопку ввода.
На рисунке 6 представлен экран ввода описания точки.
На рисунке цифрами обозначено:
- Открытый список категорий.
- Перечень вкладок с экранами. Переход между вкладками можно выполнять нажатием на заголовок вкладки или перелистыванием.
- Кнопка ввода точки. Кнопка присутствует на всех экранах. При ее нажатии данные записываются в файл.
- Кнопка отмены. При нажатии на кнопку закрывается диалог.
- Кнопка меню.
- Категория "custom" для ввода пользовательской информации.
После экрана ввода описания, следует экран ввода ориентировки. Если нет возможности подойти к точке, то можно указать ориентировку на нее. Для этого необходимо повернуть циферблат компаса, что бы красная стрелка указывала на необходимый объект и указать расстояние до него.
Экран ввода ориентировки представлен на рисунке 7.
На рисунке цифрами обозначено:
- Азимут направления на объект.
- Циферблат для указания направления.
- Поле ввода расстояния.
Каждой вводимой точки могут быть сопоставлены одна или несколько фотографий. Для съемки и ввода фотографий служит экран ввода фотографий (см. рис. 8).
На рисунке цифрами обозначено:
- Кнопка для съемки фотографии. В стандартном приложении съемки фотографий нужно нажать кнопку ввода полученной фотографии для того, чтобы она появилась в списке 2.
- Список выполненных фотографий. Все фотографии сохраняются в папке с данными программы, в подпапке Pictures (например, путь может быть таким: Android/data/com.nextgis.mobile/files/Pictures).
Последний экран (см. рис. 9) служит для ввода примечания, а также отображает краткую сводку.
После ввода точки в папке с данными программы будет создан файл points.csv, куда будут записаны данные. Если файл уже создан, то данные будут записаны в конец файла.
Файл points.csv имеет следующие поля (колонки):
- date_time – дата и время
- lat – широта
- lon – долгота
- acc – точность (данные о точности получаются либо из операционной системы, либо рассчитываются самостоятельно, в зависимости от настроек)
- error_est – способ определения ошибки местоположения
- h – высота
- dir – направление движения в момент съемки координат
- src – источник позиционной информации (GPS, ,базовые станции, WiFi)
- speed – скорость движения
- gps_t – время GPS
- cat – категория
- subcut – подкатегория
- az – азимут указанный при помощи компаса
- len – расстояние указанное на экране ввода ориентировки
- desc – описание
- photos – массив имен фотографий
- photos_az – массив азимутов, соответствующих фотографиям
Для записи треков служит кнопка 7 (см. рис. 4). При нажатии кнопки стартует отдельный сервис записи. Программа может быть свернута в фон и запись не прервется.
Для контроля за состоянием записи треков в строке статуса операционной системы выводится иконка (см. рис. 10). При ее нажатии программа активируется.
Запись трека ведется в стандартном формате GPX. Треки сохраняются при повторном нажатии на кнопку записи. При этом создается файл с расширение gpx в подпапке GPX папки с данными программы (например, Android/data/com.nextgis.mobile/files/gpx).
На рисунках 11 и 12 представлены экраны настроек и сведений о программе соответственно.
Настройки
Настройки программы имеют следующий состав:
- Основные установки:
- идентификатор пользователя – идентификатор, который сопровождает данные о местоположении устройства, передаваемые на сервер;
- сервер хранения – путь до скрипта записи данных местоположения устройства;
- запускать службу при старте системы – запускает фоновые службы отслеживания местоположения и отправки координат при старте системы.
- Точность снятия координат:
- отметка уточненного снятия координат – если стоит отметка, включается режим накопления координат и усреднения местоположения точки;
- количество измерений GPS координат – количество координат, которые надо накопить для усреднения местоположения точки;
- радиус погрешности – способ расчета погрешности (CE50, CE90, CE95 и CE98).
- Установки местоположения:
- формат ввода координат (ГГ-ММ-СС.СС, ГГ-ММ.ММ или ГГ.ГГГГ);
- вибрация при касании компаса;
- не выключать экран, когда активен компас;
- показывать истинный полюс;
- показывать магнитный полюс.
- Установки передачи данных:
- минимальное время между посылками местоположения – большая частота посылок местоположения может разряжать батарею устройства;
- выводить из режима сна для посылки местоположения – в операционной системе имеется планировщик, который пробуждает устройства для выполнения типовых операций (проверка почты, синхронизация и т. п.). Если будет активирована данная настройка, то устройство будет пробуждаться чаще, что может быстрее разряжать батарею устройства;
- запуск/остановка службы передачи местоположения.
- Установки трекера:
- минимальное расстояние, на котором будут фиксироваться точки трека;
- минимальное время, через которое будут фиксироваться точки трека;
- запуск/остановка службы трекера – при активировании будут записываться координаты для фоновой передачи на сервер хранения.
Ниже приведен пример простого 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. | Ошибка определения координат | Всплывающее сообщение, если не удалось определить координаты по всем провайдерам местоположения. В основном возникает при попытке поставить точку до того как получены координаты местоположения. |