10.5. Добавление слоев

В программе имеется возможность создания новых пустых векторных слоев, а также загрузки векторных и растровых слоев из локального хранилища Android, каталога QuickMapServices, облачного сервиса nextgis.com или серверной Веб ГИС NextGIS Web.

Поддерживаются следующие форматы данных:

  • GeoJSON;

  • тайловый кэш XYZ/TMS в ZIP-архиве;

  • тайловый кэш в формате *.ngrc;

  • настраиваемые формы в формате *.ngfp.

10.5.1. Создание слоя

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

  1. На панели инструментов дерева слоев (Рис. 10.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 10.4., п.4), далее выбрать пункт диалога «Создать слой» (см. Рис. 10.13.)

../../_images/ngmobile_the_menu_button_Add_data.png

Рис. 10.13. Диалог «Добавить геоданные»

  1. В открывшемся окне необходимо заполнить поля стандартной формы создания нового векторного слоя (см. Рис. 10.14.)

../../_images/ngmobile_input_form_attributes_new_layer.png

Рис. 10.14. Форма создания нового векторного слоя

При создании векторного слоя необходимо задать следующие параметры:

  1. Имя слоя - название слоя, которое будет отображаться в дереве слоев.

  2. Тип геометрии - выбор геометрии объектов слоя (точка, линия, полигон, мультиточка, мультилиния, мультиполигон).

  3. Поля - список полей, содержащих атрибуты слоя.

Можно добавить к новому векторному сколько угодно полей. Для этого нужно нажать на кнопку «+» рядом с кнопкой «Поля». При этом откроется диалог создания нового поля (см. Рис. 10.15.)

../../_images/dialogue_create_new_field_new.png

Рис. 10.15. Диалог создания нового поля

Открывшийся диалог содержит следующие для заполнения поля:

  1. Имя поля - название поля.

Примечание

Имя поля может быть введено только на английском языке (буквы и цифры!) и без пробелов. Также имя поля не должно совпадать со служебными словами SQL.

  1. Тип поля - выбор типа поля (строка, целочисленное, вещественное, дата и время, дата, время)

10.5.2. GeoJSON

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

  1. На панели инструментов дерева слоев (Рис. 10.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 10.4., п.4), далее выбрать пункт диалога «Открыть локальный» (см. Рис. 10.13.).

  2. В открывшемся окне выбора сохраненных файлов на диске мобильного устройства выбрать необходимый для загрузки файл формата GeoJSON (см. Рис. 10.16.) (Файл должен иметь расширение .geojson; он также может находиться внутри архива с расширением .geojson.zip, при этом файл должен быть в корне, а не в подпапках этого архива):

../../_images/saved_files_on_the_drive_unit.png

Рис. 10.16. Окно с сохраненными файлами на диске мобильного устройства

  1. После выбора файла откроется диалог настройки параметров создаваемого слоя, в котором можно оставить существующее или задать новое имя слоя (см. Рис. 10.17.):

../../_images/ngmobile_layer_settings_geo.png

Рис. 10.17. Диалог настройки параметров создаваемого слоя.

  1. При нажатии на кнопку «Создать» начнется процесс загрузки данных и создания нового слоя.

Примечание

В случае загрузки в программу файла формата GeoJSON создаваемый слой в результате загрузки геоданных такого типа будет всегда векторным!

Результат создания слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев (см. Рис. 10.18.):

../../_images/tree_layers_geo.png

Рис. 10.18. Дерево слоев

Требования к формату GeoJSON

  • Система координат геометрий может быть только WGS 84 (EPSG:4326) или Web Mercator (EPSG:3857). Если на вход будет подан файл в другой системе координат, то будет выведено сообщение о том, что такая система координат не поддерживается.

  • Все геометрии в файле должны быть одного типа. Если во входном файле содержатся геометрии разного типа, то будут загружены записи, у которых тип геометрии совпадает с первой записью (геометрия первой записи файла определяет тип геометрии слоя).

  • Текстовые строки должны быть кодированы в формате UTF-8.

Примечание

Подробнее о формате GeoJSON можно прочитать в его спецификации. GeoJSON основывается на формате JSON (см. RFC 4627).

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

  1. Текстовое поле для ввода текста и цифр.

  2. Диалог ввода даты и времени.

  3. Кнопка добавления фотографиий.

Пример стандартной формы редактирования атрибутов слоя представлен на Рис. 10.19.:

../../_images/standard_form_layer_attributes.png

Рис. 10.19. Стандартная форма редактирования атрибутов слоя

Цифрами обозначены: 1 - кнопка «Назад», 2 - кнопка «Применить изменения», 3 - кнопка «Добавить фото».

После создания слоя над ним можно выполнять стандартные операции редактирования, такие как Добавить, Изменить или Удалить. Подробнее редактирование векторного слоя, созданного на базе файла GeoJSON, описано в разделе Редактирование слоев.

10.5.3. Пользовательские формы

NextGIS Mobile позволяет создавать векторный слой путем импорта существущего файла формата NGFP.

Файл формата NGFP создается в настольном приложении NextGIS FormBuilder и представляет собой файл формата GeoJSON с дополнительной информацией (JSON), упакованный в zip-архив c расширением *.ngfp.

Особенностью редактирования слоя на базе файла формата NGFP является заполнение не стандартной, а пользовательской формы редактирования атрибутов. Пользовательская форма специальным образом оптимизирована для ввода данных и может содержать особые элементы для более удобного ввода данных, такие как: выбор из выпадающего списка, связанные списки, радио-кнопки и т.д. (см. Рис. 10.20.).

../../_images/non-standard_form.png

Рис. 10.20. Пользовательская форма редактирования атрибутов слоя

Цифрами указаны: 1 - кнопка «Назад»; 2 - кнопка «Применить изменения»; 3 - настройки; 4 - текстовое поле для ввода букв и цифр; 5 - выпадающий список; 6 - время и дата; 7 - радио-кнопки.

Для того, чтобы загрузить в программу файл формата NGFP, необходимо выполнить следующую последовательность шагов:

  1. На панели инструментов дерева слоев (Рис. 10.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 10.4., п.4), далее выбрать пункт диалога «Открыть локальный» (см. Рис. 10.13.).

  2. В открывшемся окне выбора сохраненных файлов на диске мобильного устройства выбрать необходимый для загрузки файл формата NGFP (см. Рис. 10.21.).

../../_images/saved_files_on_the_drive_unit.png

Рис. 10.21. Выбор файла для загрузки

  1. После выбора файла откроется диалог настройки параметров создаваемого слоя, в котором можно задать имя слоя (см. Рис. 10.22.):

../../_images/settind_layer_form.png

Рис. 10.22. Диалог настройки параметров создаваемого слоя

  1. При нажатии на кнопку «Создать» начнется процесс загрузки данных и создания нового слоя (см. Рис. 10.18.). Результат создания слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев.

../../_images/tree_layers_ngfp_rus.png

Рис. 10.23. Дерево слоев

После создания слоя над ним можно выполнять стандартные операции редактирования, такие как Добавить, Изменить или Удалить. Подробнее редактирование векторного слоя, созданного на базе файла NGFP, описано в разделе Редактирование слоев.

10.5.4. Тайловый кэш (XYZ/TMS)

NextGIS Mobile позволяет создавать растровый слой путем импорта тайлового кэша.

Тайловый кэш представляет собой zip-архив c папками и тайлами, нарезанными и сохраненными в соответствии с определенной схемой (например, folder_z/folder_x/y.png). Папки уровня Z могут находиться в корне архива или в папке в корне архива (название папки может быть любым, но папка должна быть одна). Более глубокая вложенность папок уровня Z не допускается.

Тайловый кэш может быть получен при помощи модуля расширения NextGIS QGIS - QTiles. Полученный в результате работы модуля архив можно загрузить на устройство в любую доступную папку.

Для того, чтобы загрузить в программу zip-архив с тайловым кэшем, необходимо выполнить следующую последовательность шагов:

  1. На панели инструментов дерева слоев (Рис. 10.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 10.4., п.4), далее выбрать пункт диалога «Открыть локальный» (см. Рис. 10.13.).

  2. В открывшемся окне выбора сохраненных файлов на диске мобильного устройства выбрать необходимый для загрузки zip-архив:

../../_images/ngmobile_files_on_the_drive_unit_tms.png

Рис. 10.24. Окно с файлами на диске мобильного устройства

  1. После выбора zip-архива откроется диалог настройки параметров создаваемого слоя (см. Рис. 10.25.):

../../_images/layer_setting_tms.png

Рис. 10.25. Диалог настройки параметров тайлового слоя

Здесь можно выбрать тип тайлового слоя (схему нарезки тайлов) - XYZ (OSM) или TMS (OSGeo) (см. Рис. 10.26.), и размер кэша (см. Рис. 10.27.):

../../_images/layer_setting_tms_2.png

Рис. 10.26. Настройка типа тайлового слоя

../../_images/layer_setting_tms_3.png

Рис. 10.27. Настройка размера кэша тайлов TMS

  1. При нажатии на кнопку «Создать» начнется процесс обработки данных и создания нового растрового слоя (см. Рис. 10.28.).

../../_images/processing_and_creation_layer_tms.png

Рис. 10.28. Окно обработки данных и создания слоя

Результат создания слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев:

../../_images/ngmobile_tree_layers_tms.png

Рис. 10.29. Дерево слоев

10.5.5. Тайловый кэш (NGRC)

NextGIS Mobile также позволяет создавать растровый слой путем импорта тайлового кэша в формате NGRC. Файлы NGRC могут быть получены из геоданных в практически любом формате, используя модуль QTiles для NextGIS QGIS.

Для того чтобы загрузить в программу тайловый кэш в формате NGRC, необходимо выполнить следующую последовательность шагов:

  1. На панели инструментов дерева слоев (Рис. 10.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 10.4., п.4), далее выбрать пункт диалога «Открыть локальный» (см. Рис. 10.13.).

  2. В открывшемся окне выбора сохраненных файлов на диске мобильного устройства выбрать необходимый для загрузки файл в формате *.ngrc:

../../_images/ngmobile_files_on_the_drive_unit_tms.png

Рис. 10.30. Окно с файлами на диске мобильного устройства

  1. При нажатии на кнопку «Создать» начнется процесс обработки и создания нового растрового слоя. Результат создания слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев:

../../_images/ngmobile_tree_layers_tms.png

Рис. 10.31. Дерево слоев

10.5.6. Добавление геосервиса

NextGIS Mobile позволяет создавать растровые слои из внешних геосервисов.

Предупреждение

Для создания слоев из внешних геосервисов необходимо подключение к сети Интернет.

Создание растрового слоя из тайлового сервиса из каталога QuickMapServices

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

  1. На панели инструментов дерева слоев (Рис. 10.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 10.4., п.4), далее выбрать пункт диалога «Добавить геосервис» (см. Рис. 10.13.). В результате будет открыт диалог добавления геосервисов (см. Рис. 10.32.):

../../_images/ngmobile_add_geoservice.png

Рис. 10.32. Диалог добавления геосервисов

Выбор геосервиса из списка осуществляется путем проставления метки/галочки напротив названия геосервиса. После выбора необходимого геосервиса следует нажать кнопку «Добавить», в результате на основе выбранного гесервиса будет создан новый растровый слой.

Результат создания нового растрового слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев.

Создание растрового слоя из частного тайлового сервиса

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

  1. На панели инструментов дерева слоев (Рис. 10.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 10.4., п.4), далее выбрать пункт диалога «Добавить геосервис» (см. Рис. 10.13.). В результате будет открыт диалог добавления геосервисов (см. Рис. 10.32.)

  2. Нажать на кнопку «Новый» в диалоговом окне «Добавить геосервис» (см. Рис. 10.32.). Это приведет к открытию диалога добавления слоя TMS, как показано на Рис. 10.33.:

../../_images/ngmobile_new_geoservice.png

Рис. 10.33. Диалог добавления сервиса TMS

3. Указать Имя слоя и Адрес (URL) слоя. При формировании адреса слоя необходимо указать место в адресе значений X (номер тайла по горизонтали), Y (номер тайла по вертикали) и Z (уровень зума). Для этого в строке адреса на месте цифры, соответствующей Х, необходимо поставить подстановочный код {x}, для Y - {y}, для Z - {z}. Дополнительно в строке адреса можно указать поддомены (например, для поддоменов a.tileopenstreetmap.org, b.tileopenstreetmap.org, c.tileopenstreetmap.org адрес будет выглядеть так: {a,b,c}.tile.openstreetmap.org).

Примечание

NextGIS Mobile запрашивает тайлы с каждого адреса (поддомена) в два потока. Таким образом для адреса формата {a,b,c}.tile.openstreetmap.org приложение будет скачивать тайлы в 6 потоков.

  1. Также можно уточнить тип тайлового слоя (XYZ (OSM) или TMS (OSGeo)), размер кэша TMS (без кэша, 1, 2 или 3 экрана) и параметры аутентификации пользователя (имя пользователя и пароль) в случае, если это требуется для доступа к тайлам.

Примечание

В настоящее время поддерживается только Basic access authentication.

  1. Нажать «Создать» для создания нового растрового слоя на базе этого сервиса TMS. Результат создания нового растрового слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев.

Кэширование данных тайлового сервиса

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

  1. Следует убедиться, что растровый слой, который потребуется для работы оффлайн, добавлен в Дерево слоев и включен для отображения на карте. Затем необходимо открыть охват карты, для которого нужно скачать тайлы.

  2. На панели инструментов дерева слоев (Рис. 10.3., п.1) слелует найти растровый слой и нажать кнопку вызова контекстного меню слоя (Рис. 10.4., п.5).

  3. Нажать кнопку «Загрузить тайлы», как показано ниже на Рис. 10.34..

../../_images/download_tiles.png

Рис. 10.34. Кнопка «Загрузить тайлы»

  1. Далее откроется окно с настройками загрузки тайлов (см. Рис. 10.35.), где нужно задать необходимый диапазон зумов и нажать кнопку «Начать».

../../_images/levels_of_zoom.png

Рис. 10.35. Окно выбора уровня зума для загрузки тайлов

Примечание

Чем меньше уровень выбранного зума для загрузки тайлов, тем меньшее количество тайлов попадают в интересующую нас область и тем быстрее происходит загрузка всего изображения. На панели статуса устройства Android можно отслеживать прогресс загрузки. Уведомления для приложения NextGIS Mobile должны быть активированы в системных настройках.

Предупреждение

Если список загружаемых тайлов для заданного диапазона зумов превышает 6000, то будут загружены только первые 6000 тайлов. Остальные тайлы не будут загружаться из-за ограничений на переполнение памяти.

10.5.7. Добавление геоданных из Веб ГИС

NextGIS Mobile позволяет загружать геоданные из Веб ГИС, созданной на облачном сервере nextgis.com или размещенной на своём сервере.

Подробнее о загрузке геоданных в Веб ГИС можно ознакомиться в следующих разделах документации Веб-ГИС. Например, загрузить можно Растровый слой или Векторный слой.

Для того чтобы загрузить в NextGIS Mobile геоданные из Веб ГИС, необходимо выполнить следующую последовательность шагов:

  1. На панели инструментов дерева слоев (Рис. 10.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 10.4., п.4). В открывшемся диалоге выбрать пункт меню «Добавить из Веб ГИС» (см. Рис. 10.36.):

../../_images/ngmobile_addition_of_NextGIS.png

Рис. 10.36. Добавление из Веб ГИС

2. В открывшемся окне выбрать пункт Добавить Веб ГИС и нажать кнопку Добавить (см. Рис. 10.37.):

../../_images/ngmobile_add_an_account_NextGIS.png

Рис. 10.37. Добавление учетной записи

  1. В открывшемся окне ввести адрес вашей Веб ГИС и пароль, назначенный для входов в вашу Веб ГИС через сайт nextgis.com. По окончании заполнения формы необходимо нажать кнопку Войти (см. Рис. 10.38.):

../../_images/ngmobile_conversation_connection_WebGIS.png

Рис. 10.38. Диалог подключения Веб ГИС

Если вы добавляете данные из Веб ГИС размещенной на своём сервере, то предварительно нужно изменить сервер авторизации: https://docs.nextgis.ru/docs_ngmobile/source/auth.html#ngidop

4. По окончании подключения Веб ГИС откроется окно с перечнем доступных Веб ГИС. Выберите вашу (см. Рис. 10.39.):

../../_images/ngmobile_account_election_Web_GIS.png

Рис. 10.39. Выбор учетной записи Веб ГИС

5. Далее откроется окно диалога выбора слоя для импорта геоданных из вашей Веб ГИС в NextGIS Mobile (см. Рис. 10.40.):

../../_images/ngmobile_layer_selection_dialog_for_importing.png

Рис. 10.40. Окно диалога выбора слоя для импорта геоданных из Веб ГИС.

Если у слоя в Веб ГИС создан стиль, то появляется возможность выбрать для импорта помимо векторных данных еще и растр. Если данные импортируются на мобильное устройство в виде векторный данных, то такие данные скачиваются на мобильное устройство и могут быть доступны для использования при отсутствии Интернета. Если данные импортируются на мобильное устройство в виде растра при наличии в Веб ГИС созданного стиля у слоя на сервере, то такие данные могут быть доступны только при наличии сервера для отрисовывания картинки. Таким образом, векторный слой можно добавить/импортировать в виде вектора либо в виде растра. Для этого следует поставить галочку в пустом окошке под названием необходимого слоя в правой части экрана (см. Рис. 10.41.):

../../_images/ngmobile_layer_type_selection.png

Рис. 10.41. Выбор типа слоя

На верхней панели инструментов в правом углу имеется иконка в виде папки с плюсом. При нажатии на эту иконку откроется диалог для создания новой группы данных в вашей Веб ГИС. В поле диалога следует задать имя для новой группы и нажать на кнопку ОК. В случае удачного создания и сохранения новой папки, название новой папки появится в окне содержимого вашей Веб ГИС (см. Рис. 10.42.):

../../_images/ngmobile_add_a_new_group.png

Рис. 10.42. Создание новой группы

6. После выбора слоя для импорта из Веб ГИС в NextGIS Mobile следует нажать на кнопку Добавить внизу экрана. После этого начнется процесс импорта из Веб ГИС в NextGIS Mobile. Наличие или отсутствие слоя можно проверить в дереве слоев. В случае удачной процедуры обработки и импортирования слоя, новый слой располагается первым в дереве слоев.