23.1. Работа стека NextGIS с форматом sxf

23.1.1. Введение

В этой инструкции мы возьмём геоданные в формате sxf, загрузим их в NextGIS Web, настроим их стиль отображения и отобразим их на веб-карте. Для работы потребуется:

  1. Набор данных в формате sxf - скачайте выгрузку из Openstreetmap на странице http://www.gisinfo.ru/price/price_map.htm

  2. NextGIS QGIS.

  3. Доступ к инстансу NextGIS Web - у вас должен быть его URL, логин и пароль.

23.1.2. Подготовка sxf к загрузке

Скачайте на странице http://www.gisinfo.ru/price/price_map.htm выгрузку данных OpenStreetMap на любой интересующий вас регион.

../../_images/sxfDownloadSample.png

Распакуйте их в каталог. Поскольку NextGIS Web сейчас поддерживает импорт только из форматов ESRI Shapefile и geojson, то нам нужно сконвертировать sxf в geojson.

Запустите NextGIS QGIS.

Нажмите Слой ‣ Добавить слой ‣ Добавить векторный слой.

../../_images/sxfQGISOpenLayerDialog.png

На экране появится диалог выбора слоёв из файла sxf. В этом примере мы загрузим слой железных дорог (Railway) и землепользования (landuse).

../../_images/sxfQGISOpenSXFLayers.png

Сохраните эти два слоя в формате geojson. Для этого, выделите слой landuse в списке слоёв и нажмите Нажмите Слой ‣ Сохранить как.

../../_images/sxfQGISSaveLayerMenu.png

В диалоге сохранения задайте следующие настройки:

  1. Формат - geojson.

  2. Система координат - EPSG:4326. Если её не будет в предложенном списке (такое бывает при первом запуске программы), то нажмите на кнопку рядом, и в окне поиска введите «4326».

  3. Кодировка - если вы работаете под ОС Windows, то выставьте UTF-8. Если вы работаете под ОС GNU/Linux, то оставьте в нём System, по умолчанию.

../../_images/sxfQGISSaveDialog.png

Рис. 23.1. Окно экспорта слоя.

../../_images/sxfQGISSearchProjection.png

Рис. 23.2. Окно поиска проекции.

Сохраните слои как landuse.geojson и railway.geojson.

Особенность формата SXF - типы дорог там записаны числами.

Эти числа - дробного типа.

В картостиле дробные числа нельзя сравнивать оператором «=».

Для того, чтобы написать логичный картостиль, нужно преобразовать числа в целочисленный тип.

Эту операцию можно сделать разными способами: в NextGIS QGIS используя калькулятор полей и создание новых слоёв, либо в текстовом редакторе удалить из geojson автозаменой все включения «.000000».

23.1.3. Загрузка в NextGIS Web

Откройте в браузере имеющийся у вас адрес инстанса, введите логин и пароль. Вы попадёте в админку. При желании вы можете создать в ней каталог («группу ресурсов»), чтобы работать с тестовыми данными в ней. Затем нажмите Векторный слой.

../../_images/sxfNGWMainPage.png

Рис. 23.3. Главная страница админки.

Задайте название «Землепользование». Перейдите на вкладку Векторный слой, нажмите на кнопку Выбрать, и загрузите файл landuse.geojson, затем нажмите на кнопку Создать.

../../_images/sxfNGWLayerUpload1.png
../../_images/sxfNGWLayerUpload2.png

23.1.4. Стилизация слоя в NextGIS Web

Сейчас вы загрузили слой в NGW. Для показа на веб-карте или раздачи по WMS к нему нужно добавить стиль.

Зайдите в NextGIS QGIS.

Зайдите в свойства слоя Landuse, который вы экспортировали. Настройте его стиль - с классификацией по полю SC_20013.

../../_images/sxfQGISLayerStyleSettings.png

Найдите снизу окна настроек слоя кнопку Стиль ‣ Сохранить стиль ‣ Файлы стилей QGIS. У вас сохранится стиль в формате qml.

../../_images/sxfQGISSaveQML.png

Вернитесь в браузер. Сейчас вы находитесь в админке внутри слоя (если занудно - в окне свойств слоя), поэтому нажмите Стиль Mapserver.

Задайте стилю имя «Землепользование». Перейдите на вкладку Mapserver.

Нажмите кнопку Import QGIS style (над текстовым полем). Выберите файл qml. После подтверждения, нажмите на кнопку Создать.

23.1.5. Показ слоя на веб-карте в NextGIS Web

Перейдите в список ресурсов и нажмите Веб-карта. Задайте название и перейдите на вкладку Слои. Нажмите на кнопку Добавить слой и выберите в списке ресурсов слои тех слоёв, что вы создали.

Нажмите на кнопку Создать.

Нажмите на кнопку Просмотр.

После этого шага в экране браузера появится веб-карта. Включите слой.