12.5. Добавление слоев¶
В программе имеется возможность создания новых пустых векторных слоев, а также загрузки векторных и растровых слоев из локального хранилища Android, каталога QuickMapServices, облачного сервиса nextgis.com или серверной Веб ГИС NextGIS Web. Подложку можно добавить с помощью соответствующего сервиса (см. ниже).
Поддерживаются следующие форматы данных:
тайловый кэш XYZ/TMS в ZIP-архиве;
тайловый кэш в формате *.ngrc;
настраиваемые формы в формате *.ngfp.
12.5.1. Создание слоя¶
Для того, чтобы создать пустой векторный слой, необходимо выполнить следующую последовательность шагов:
На панели инструментов дерева слоев (Рис. 12.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 12.4., п.4), далее выбрать пункт диалога «Создать слой» (см. Рис. 12.14.)
В открывшемся окне необходимо заполнить поля стандартной формы создания нового векторного слоя (см. Рис. 12.15.)
При создании векторного слоя необходимо задать следующие параметры:
Имя слоя - название слоя, которое будет отображаться в дереве слоев.
Тип геометрии - выбор геометрии объектов слоя (точка, линия, полигон, мультиточка, мультилиния, мультиполигон).
Поля - список полей, содержащих атрибуты слоя.
Можно добавить к новому векторному сколько угодно полей. Для этого нужно нажать на кнопку «+» рядом с кнопкой «Поля». При этом откроется диалог создания нового поля (см. Рис. 12.16.)
Открывшийся диалог содержит следующие для заполнения поля:
Имя поля - название поля.
Примечание
Имя поля может быть введено только на английском языке (буквы и цифры!) и без пробелов. Также имя поля не должно совпадать со служебными словами SQL.
Тип поля - выбор типа поля (строка, целочисленное 32 бит, целочисленное 64 бит, вещественное, дата и время, дата, время)
12.5.2. GeoJSON¶
NextGIS Mobile позволяет создать векторный слой путем загрузки существующего файла GeoJSON. Для этого необходимо выполнить следующую последовательность шагов:
На панели инструментов дерева слоев (Рис. 12.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 12.4., п.4), далее выбрать пункт диалога «Открыть локальный» (см. Рис. 12.14.).
В открывшемся окне выбора сохраненных файлов на диске мобильного устройства выбрать необходимый для загрузки файл формата GeoJSON (см. Рис. 12.17.) (Файл должен иметь расширение .geojson; он также может находиться внутри архива с расширением .geojson.zip, при этом файл должен быть в корне, а не в подпапках этого архива):
После выбора файла откроется диалог настройки параметров создаваемого слоя, в котором можно оставить существующее или задать новое имя слоя (см. Рис. 12.18.):
При нажатии на кнопку «Создать» начнется процесс загрузки данных и создания нового слоя.
Примечание
В случае загрузки в программу файла формата GeoJSON создаваемый слой в результате загрузки геоданных такого типа будет всегда векторным!
Результат создания слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев (см. Рис. 12.19.):
Требования к формату GeoJSON
Система координат геометрий может быть только WGS 84 (EPSG:4326) или Web Mercator (EPSG:3857). Если на вход будет подан файл в другой системе координат, то будет выведено сообщение о том, что такая система координат не поддерживается.
Все геометрии в файле должны быть одного типа. Если во входном файле содержатся геометрии разного типа, то будут загружены записи, у которых тип геометрии совпадает с первой записью (геометрия первой записи файла определяет тип геометрии слоя).
Текстовые строки должны быть кодированы в формате UTF-8.
Примечание
Подробнее о формате GeoJSON можно прочитать в его спецификации. GeoJSON основывается на формате JSON (см. RFC 4627).
При редактирования векторного слоя, созданного на базе файла GeoJSON, доступна только стандартная форма редактирования атрибутов. В отличие от пользовательской формы (см. Пользовательские формы) стандартная форма может содержать только три типа полей:
Текстовое поле для ввода текста и цифр.
Диалог ввода даты и времени.
Кнопка добавления фотографиий.
Пример стандартной формы редактирования атрибутов слоя представлен на Рис. 12.20.:
Цифрами обозначены: 1 - кнопка «Назад», 2 - кнопка «Применить изменения», 3 - кнопка «Добавить фото».
После создания слоя над ним можно выполнять стандартные операции редактирования, такие как Добавить, Изменить или Удалить. Подробнее редактирование векторного слоя, созданного на базе файла GeoJSON, описано в разделе Редактирование слоев.
12.5.3. Пользовательские формы¶
NextGIS Mobile позволяет создавать векторный слой путем импорта существущего файла формата NGFP.
Файл формата NGFP создается в настольном приложении NextGIS FormBuilder и представляет собой файл формата GeoJSON с дополнительной информацией (JSON), упакованный в zip-архив c расширением *.ngfp.
Особенностью редактирования слоя на базе файла формата NGFP является заполнение не стандартной, а пользовательской формы редактирования атрибутов. Пользовательская форма специальным образом оптимизирована для ввода данных и может содержать особые элементы для более удобного ввода данных, такие как: выбор из выпадающего списка, связанные списки, радио-кнопки и т.д. (см. Рис. 12.21.).
Цифрами указаны: 1 - кнопка «Назад»; 2 - кнопка «Применить изменения»; 3 - настройки; 4 - текстовое поле для ввода букв и цифр; 5 - выпадающий список; 6 - время и дата; 7 - радио-кнопки.
Для того, чтобы загрузить в программу файл формата NGFP, необходимо выполнить следующую последовательность шагов:
На панели инструментов дерева слоев (Рис. 12.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 12.4., п.4), далее выбрать пункт диалога «Открыть локальный» (см. Рис. 12.14.).
В открывшемся окне выбора сохраненных файлов на диске мобильного устройства выбрать необходимый для загрузки файл формата NGFP (см. Рис. 12.22.).
После выбора файла откроется диалог настройки параметров создаваемого слоя, в котором можно задать имя слоя (см. Рис. 12.23.):
При нажатии на кнопку «Создать» начнется процесс загрузки данных и создания нового слоя (см. Рис. 12.19.). Результат создания слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев.
После создания слоя над ним можно выполнять стандартные операции редактирования, такие как Добавить, Изменить или Удалить. Подробнее редактирование векторного слоя, созданного на базе файла NGFP, описано в разделе Редактирование слоев.
12.5.4. Тайловый кэш (XYZ/TMS)¶
NextGIS Mobile позволяет создавать растровый слой путем импорта тайлового кэша.
Тайловый кэш представляет собой zip-архив c папками и тайлами, нарезанными и сохраненными в соответствии с определенной схемой (например, folder_z/folder_x/y.png). Папки уровня Z могут находиться в корне архива или в папке в корне архива (название папки может быть любым, но папка должна быть одна). Более глубокая вложенность папок уровня Z не допускается.
Тайловый кэш может быть получен при помощи модуля расширения NextGIS QGIS - QTiles. Полученный в результате работы модуля архив можно загрузить на устройство в любую доступную папку.
Для того, чтобы загрузить в программу zip-архив с тайловым кэшем, необходимо выполнить следующую последовательность шагов:
На панели инструментов дерева слоев (Рис. 12.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 12.4., п.4), далее выбрать пункт диалога «Открыть локальный» (см. Рис. 12.14.).
В открывшемся окне выбора сохраненных файлов на диске мобильного устройства выбрать необходимый для загрузки zip-архив:
После выбора zip-архива откроется диалог настройки параметров создаваемого слоя (см. Рис. 12.26.):
Здесь можно выбрать тип тайлового слоя (схему нарезки тайлов) - XYZ (OSM) или TMS (OSGeo) (см. Рис. 12.27.), и размер кэша (см. Рис. 12.28.):
При нажатии на кнопку «Создать» начнется процесс обработки данных и создания нового растрового слоя (см. Рис. 12.29.).
Результат создания слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев:
12.5.5. Тайловый кэш (NGRC)¶
NextGIS Mobile также позволяет создавать растровый слой путем импорта тайлового кэша в формате NGRC. Файлы NGRC могут быть получены из геоданных в практически любом формате, используя модуль QTiles для NextGIS QGIS.
Для того чтобы загрузить в программу тайловый кэш в формате NGRC, необходимо выполнить следующую последовательность шагов:
На панели инструментов дерева слоев (Рис. 12.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 12.4., п.4), далее выбрать пункт диалога «Открыть локальный» (см. Рис. 12.14.).
В открывшемся окне выбора сохраненных файлов на диске мобильного устройства выбрать необходимый для загрузки файл в формате *.ngrc:
При нажатии на кнопку «Создать» начнется процесс обработки и создания нового растрового слоя. Результат создания слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев:
12.5.6. Добавление геосервиса¶
NextGIS Mobile позволяет создавать растровые слои из внешних геосервисов. Это позволяет, например, добавить подложку.
Предупреждение
Для создания слоев из внешних геосервисов необходимо подключение к сети Интернет.
Создание растрового слоя из тайлового сервиса из каталога QuickMapServices¶
Для создания растрового слоя из тайлового сервиса, содержащегося в каталоге QuickMapServices, необходимо выполнить следующие шаги:
На панели инструментов дерева слоев (Рис. 12.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 12.4., п.4), далее выбрать пункт диалога «Добавить геосервис» (см. Рис. 12.14.). В результате будет открыт диалог добавления геосервисов (см. Рис. 12.33.):
Выбор геосервиса из списка осуществляется путем проставления метки/галочки напротив названия геосервиса. После выбора необходимого геосервиса следует нажать кнопку «Добавить», в результате на основе выбранного гесервиса будет создан новый растровый слой.
Результат создания нового растрового слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев.
Создание растрового слоя из частного тайлового сервиса¶
Если вы хотите создать растровый слой из тайлового сервиса, не содержащегося в каталоге QuickMapServices, необходимо выполнить следующие шаги:
На панели инструментов дерева слоев (Рис. 12.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 12.4., п.4), далее выбрать пункт диалога «Добавить геосервис» (см. Рис. 12.14.). В результате будет открыт диалог добавления геосервисов (см. Рис. 12.33.)
Нажать на кнопку «Новый» в диалоговом окне «Добавить геосервис» (см. Рис. 12.33.). Это приведет к открытию диалога добавления слоя TMS, как показано на Рис. 12.34.:
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 потоков.
Также можно уточнить тип тайлового слоя (XYZ (OSM) или TMS (OSGeo)), размер кэша TMS (без кэша, 1, 2 или 3 экрана) и параметры аутентификации пользователя (имя пользователя и пароль) в случае, если это требуется для доступа к тайлам.
Примечание
В настоящее время поддерживается только Basic access authentication.
Нажать «Создать» для создания нового растрового слоя на базе этого сервиса TMS. Результат создания нового растрового слоя можно проверить в дереве слоев. В случае удачного создания слоя новый слой будет располагаться первым в дереве слоев.
Кэширование данных тайлового сервиса¶
С растровыми слоями, созданными из внешних геосервисов, можно работать и при отсутствии подключения к сети Интернет. Для этого необходимо сначала загрузить тайлы для интересующей области:
Следует убедиться, что растровый слой, который потребуется для работы оффлайн, добавлен в Дерево слоев и включен для отображения на карте. Затем необходимо открыть охват карты, для которого нужно скачать тайлы.
На панели инструментов дерева слоев (Рис. 12.3., п.1) слелует найти растровый слой и нажать кнопку вызова контекстного меню слоя (Рис. 12.4., п.5).
Нажать кнопку «Загрузить тайлы», как показано ниже на Рис. 12.35..
Далее откроется окно с настройками загрузки тайлов (см. Рис. 12.36.), где нужно задать необходимый диапазон зумов и нажать кнопку «Начать».
Примечание
Чем меньше уровень выбранного зума для загрузки тайлов, тем меньшее количество тайлов попадают в интересующую нас область и тем быстрее происходит загрузка всего изображения. На панели статуса устройства Android можно отслеживать прогресс загрузки. Уведомления для приложения NextGIS Mobile должны быть активированы в системных настройках.
Предупреждение
Если список загружаемых тайлов для заданного диапазона зумов превышает 6000, то будут загружены только первые 6000 тайлов. Остальные тайлы не будут загружаться из-за ограничений на переполнение памяти.
12.5.7. Добавление геоданных из Веб ГИС¶
NextGIS Mobile позволяет загружать геоданные из Веб ГИС, созданной на облачном сервере nextgis.com или размещенной на своём сервере.
Подробнее о загрузке геоданных в Веб ГИС можно ознакомиться в следующих разделах документации Веб-ГИС. Например, загрузить можно Растровый слой или Векторный слой.
Для того чтобы загрузить в NextGIS Mobile геоданные из Веб ГИС, необходимо выполнить следующую последовательность шагов:
На панели инструментов дерева слоев (Рис. 12.3., п.1) нажать на кнопку «Добавить геоданные» (Рис. 12.4., п.4). В открывшемся диалоге выбрать пункт меню «Добавить из Веб ГИС» (см. Рис. 12.37.):
2. В открывшемся окне выбрать пункт Добавить Веб ГИС и нажать кнопку Добавить (см. Рис. 12.38.):
В открывшемся окне ввести адрес вашей Веб ГИС и пароль, назначенный для входов в вашу Веб ГИС через сайт nextgis.com. По окончании заполнения формы необходимо нажать кнопку Войти (см. Рис. 12.39.):
Если вы добавляете данные из Веб ГИС размещенной на своём сервере, то предварительно нужно изменить сервер авторизации: https://docs.nextgis.ru/docs_ngmobile/source/auth.html#ngidop
4. По окончании подключения Веб ГИС откроется окно с перечнем доступных Веб ГИС. Выберите вашу (см. Рис. 12.40.):
5. Далее откроется окно диалога выбора слоя для импорта геоданных из вашей Веб ГИС в NextGIS Mobile (см. Рис. 12.41.):
Если у слоя в Веб ГИС создан стиль, то появляется возможность выбрать для импорта помимо векторных данных еще и растр. Если данные импортируются на мобильное устройство в виде векторный данных, то такие данные скачиваются на мобильное устройство и могут быть доступны для использования при отсутствии Интернета. Если данные импортируются на мобильное устройство в виде растра при наличии в Веб ГИС созданного стиля у слоя на сервере, то такие данные могут быть доступны только при наличии сервера для отрисовывания картинки. Таким образом, векторный слой можно добавить/импортировать в виде вектора либо в виде растра. Для этого следует поставить галочку в пустом окошке под названием необходимого слоя в правой части экрана (см. Рис. 12.42.):
На верхней панели инструментов в правом углу имеется иконка в виде папки с плюсом. При нажатии на эту иконку откроется диалог для создания новой группы данных в вашей Веб ГИС. В поле диалога следует задать имя для новой группы и нажать на кнопку ОК. В случае удачного создания и сохранения новой папки, название новой папки появится в окне содержимого вашей Веб ГИС (см. Рис. 12.43.):
6. После выбора слоя для импорта из Веб ГИС в NextGIS Mobile следует нажать на кнопку Добавить внизу экрана. После этого начнется процесс импорта из Веб ГИС в NextGIS Mobile. Наличие или отсутствие слоя можно проверить в дереве слоев. В случае удачной процедуры обработки и импортирования слоя, новый слой располагается первым в дереве слоев.