Стоит только начать работать с геоинформационными системами (ГИС), как приходит понимание их незаменимости в работе любого руководителя или сотрудника организации, имеющего дело с географически распределенными данными.
Год назад передо мною возникла задача нанести на карту для совместной работы несколько сот объектов, раскиданных по муниципальному району. Поэтому изначально искал веб-сервис, позволяющий отобразить мои данные на карте в Интернет, но позже изменил подход – оказалось, что полезные возможности от визуализации данных на карте возрастают на порядок, если использовать веб-сервисы совместно с десктопными решениями.
Тогда я наше время для некоторого углубления в предмет и изучения рынка, проанализировал различные платные и бесплатные ГИС, и выяснил, что знакомые геодезисты и специалисты, работающие в сфере градостроительной деятельности, предпочитают ГИС «ИнГЕО» (тот же AutoCAD, только заточенный под создание информационной системы обеспечения градостроительной деятельности). Другая часть ГИС-пользователей устанавливает на свои компьютеры MapInfo.
Но тут оказалось, что менее искушенные товарищи радуются бесплатному (Open Source) решению QGIS, которое с их слов закрывает нужды широкого круга специалистов, от руководителей экономической безопасности и директоров строительных компаний до геодезистов. Причем, закрывает не хуже по отношении к названным выше коммерческим ГИС, чем LibreOffice нужды пользователей Microsoft Word — вопрос исключительно в привычке.
Так QGIS стал для меня персональным открытием года. И если сначала с недоверием отнесся к утверждению своего знакомого, что QGIS быстро вытесняет дорогостоящие профессиональные ГИС, то теперь полагаю, что такое утверждение имеет право на жизнь.
На скриншоте ниже показан пример данных, обработанных нами в QGIS и выложенных на бесплатный облачный веб-сервис NextGIS.com для совместной работы. С NextGIS.com мы познакомимся ниже.
Со временем информация в ГИС накапливается, появляется возможность одним нажатием кнопки отображать комбинации слоев карт с казавшейся когда-то несвязанной тематикой и делать открытия, которые ранее не были очевидными.
Приятные сюрпризы от изучения QGIS и NextGIS продолжаются по сей день. Пришло время поделиться опытом.
Геоинформационная система QGIS
> Ссылка на проект
QGIS – это свободная бесплатная десктопная географическая информационная система с открытым кодом. С ее помощью можно создавать, редактировать, визуализировать, анализировать и публиковать геопространственную информацию в Windows, Mac, Linux, BSD (а вскоре и на Android). Система хорошо документирована на русском языке, плюс у нее обширное русскоязычное сообщество пользователей и разработчиков.
Функциональность QGIS определяется большим количеством устанавливаемых расширений, загружаемых через меню «Управление модулями». Можно найти модули под самые разнообразные задачи, от геокодинга, до упрощения геометрии, интеграции с картографическими веб-сервисами и 3D-моделирования ландшафта.
Задача настоящей статьи – дать общее представление о возможностях QGIS. Как то или иное исполнить на практике – предлагаю гуглить и сразу пробовать по ходу статьи. Интерфейс приложения дружественен и понятен новичку, особенно если иметь представление об общих принципах работы ГИС которым во многом посвящена эта статья.
Файл проекта и файлы слоев QGIS
Основные объекты, с которыми пользователь работает в ГИС – это слои. Обычный слой представляет собой таблицу, каждой строке которой соответствуют по одному объекту на карте. В отличие от привычных каждому таблиц в стиле Microsoft Excel кроме атрибутивных данных, таких как, например, наименование объекта недвижимости, арендатора, адреса, площади и т.д., в таблице QGIS есть столбец, по умолчанию скрытый, с так называемой «геометрией» объекта – пространственными данными, позволяющими отобразить на карте объект, описанный в соответствующей строке этой таблицы.
В зависимости от типа слоя объектами, которые могут быть разнесены по карте, являются растровые объекты (изображения, например, куски спутниковых снимков) или векторные данные, которые описываются координатам вершин. Существуют три основных типа векторных объектов:
- точки;
- линии, в том числе ломаные;
- полигоны (замкнутые линии площадных объектов).
Пользователю QGIS важно понимать где именно хранятся таблицы, строки которых содержат пространственные данные. В приложении мы формируем проект, в котором создаем новые, или в который затаскиваем ранее созданные или публично доступные таблицы. Это могут быть табличные файлы в разнообразных форматах, таблицы баз данных, созданных QGIS или другими приложениями, публичные и частные веб-сервисы.
В простейшем варианте пользователь создает свои слои в табличных файлах с расширением «.shp» (от англ. Shape – форма, облик) – родном формате QGIS. Один слой (таблица) содержится в одном файле .shp. Если необходимо передать кому-то картографическую информацию для дальнейшей работы, то можно отправить один файл «.shp», хотя во многих случаях целесообразнее запаковать в архив и передать всю папку проекта.
Как уже было сказано, для хранения геометрии отводится отдельное поле в таблице слоя. Если его нет в источнике (файле, базе данных, внешнем приложении), то QGIS поможет его создать. Это значит, что можно, например, присоединить в проект выгруженный из Microsoft Excel файл с адресами контрагентов в формате CSV, создать в нем поля геометрии или конвертировать в полноценный слой «.shp» для отображения этих адресов на карте.
QGIS позволяет присоединять в проект файлы таблиц слоев во множестве форматов, например MapInfo, ArcGIS или даже CSV, но как правило, после присоединения я их сразу конвертирую в формат QGIS (.shp), так как при этом появляются дополнительные возможности, особенно в части стилизации. Иногда присоединенные файлы слоев имеют неверную кодировку текста. В этом случае правильную можно выбрать в свойствах слоя.
Поскольку файлы не импортируются, а присоединяются в проект, то изменения, которые вносятся в строки таблицы будут сохраняться в эти же самые файлы. То есть, они станут видны во всех приложениях, использующих эту таблицу, и наоборот.
Что немного сбивает с толку новичка? Загруженные в проект слои по умолчанию защищены от записи и не редактируются, на них нельзя наносить новые объекты, передвигать их, изменять атрибуты и добавлять поля в таблице. Для всего этого необходимо выделить нужный слой и нажать кнопку редактирования. После этого станут доступны соответствующие другие кнопки и опции.
Не забывайте, что ваши правки распространяются на выделенный слой и если вы переключились на другой — прежний хотя и останется в режиме редактирования, но нанести на карту новый объект у вас не получится до тех пор, пока вы не выберите редактируемый слой вновь. Излишне напоминать, что надо периодически сохранять изменения редактируемого слоя (или целиком проекта), чтобы их не потерять.
Стили
Таблицы с данными и правила их отображения на карте (стили) хранятся и обрабатываются QGIS раздельно. Что такое таблицы мы поняли, теперь необходимо разобраться с тем, что такое стили.
Стиль устанавливается для каждой таблицы. Самое простое, что описывает стиль – это цвета, маркеры и изображения, используемые для отображения объектов таблицы на карте, форматирование и расположение подписей и поля таблицы из которых эти подписи формируются, масштаб при котором отображается слой или подписи. В том числе, с помощью стиля можно легко поставить оформление слоя на карте в зависимость от каких-нибудь полей этой или связанных таблиц. Например, отображать должников и кредиторов на карте разными символами.
Кроме того, можно настроить действия, которые производятся, например, при нажатии на маркер объекта на карте. Если вы желаете щелчком мыши по карте переходить на страницу объекта в закрытой корпоративной сети или запустить некое приложение для обработки объекта – нет проблем.
Использование слоев из публичных источников
Существуют специальные веб-сервисы WMS и WFS которые предназначены для передачи картографической информации. Пользователь использует специальную HTTP ссылку, по которой клиент пользователя (QGIS) запрашивает данные. Сервер отдает данные и они отображаются на мониторе пользователя. В некоторых случаях эти данные можно редактировать и возвращать на сервер.
Принципиальная разница между протоколами WMS и WFS заключается в следующем:
- WMS — передает картографическую информацию в виде готовых изображений (растров), привязанных к координатам.
- WFS — позволяет запрашивать и при наличии полномочий редактировать на карте векторные пространственные данные, такие как дороги, береговые линии, земельные участки и т.д.
Существует много полезных публичных сервисов для предоставления картографической информации в виде слоев (обычно WMS), доступных по веб-ссылке и напрашивающихся в наши проекты QGIS. Множество из этих сервисов доступны из модуля QGIS «Quick Map Services».
После установки модуля откройте в его настройках вкладку «Загрузить сервисы» и нажмите кнопку «Получить источники данных». Вам станут доступны публичная кадастровая карта, фотопланы от Google и Yandex, лицензионно чистая и, на мой взгляд, наиболее подробная из доступных карт OpenStreetMap (она же OSM), а также еще десятки полезных слоев, которые можно разместить в своем проекте.
Кроме того, некоторые сервисы предоставляют полезную информацию для автоматического анализа. Например, из OSM можно получить все региональные и федеральные дороги на карте с номерами, типами дорог, покрытием и т.д.
Геокодинг
Геокодинг – замечательное изобретение. Если под рукой есть таблица в Excel с адресами 10000 объектов (например, перечень контрагентов), почему бы их тоже не анализировать на карте.
Для этого в QGIS конвертируем таблицу из CSV-файла в слой .shp (модуль «RuGeocoder»). При этом таблица слоя получит скрытый столбец с геометрией (координатами точек), но он пока будет пуст.
Теперь с помощью того же модуля используем процедуру геокодинга, указываем таблицу слоя и ее поле с адресами, выбираем поставщика услуги. Мой выбор Yandex, поскольку он справляется с адресами на русском языке лучше всех.
Итак, запускаем процедуру геокодинга, ждем в среднем по секунде на каждый из обрабатываемых объектов и получаем всех их, раскиданными по карте.
Системы координат
Полезно понимать, что существуют различные системы координат. Их сотни.
В школе мы изучали только географические (WGS-84), представляющие точку на карте в виде градусов, минут, секунд широты и долготы. Однако в геоинформационных системах географические координаты хранятся в градусах и их десятичных долях, а минуты и секунды не используются (например, описание точки с координатами 45°34?55? северной широты и 15°30?0? западной долготы будут выглядеть так: 45.581944°, -15.5°).
Нередки случаи, когда из сторонних источников вы получаете слои, поля геометрии которых используют одну из прямоугольных систем координат. Прямоугольные системы активно используют геодезисты и проектировщики — это, так называемые, местные системы координат (МСК). Прямоугольные системы координат предполагают, что земля плоская и все измерения по осям абсцисс и ординат проводятся от конкретной нулевой точки в километрах от нее.
Зачем их так много? Дело в том, что допущение о плоской планете не позволяет использовать одну местную систему координат по всей Земле, так как уже через несколько сотен километров погрешность становится ощутимой. Зато они незаменимы в случае, когда требуется высокая точность на территории, ограниченной несколькими градусами широты и долготы. Так в Московской области геодезистами используются системы МСК-50 зоны 1 или 2.
QGIS позволяет выбрать систему координат для каждого слоя. То есть в одном проекте могут быть слои с разными системами координат, и они легко конвертируются из одной системы в другую – достаточно сохранить слой в shp-файл или базу данных, выбрав в качестве параметра новую систему. Кроме того в QGIS можно настроить систему координат в которую будут переводиться все слои проекта при их отображении на экране, а также системы которые будет устанавливаться по умолчанию для новых проектов и слоев в текущем проекте.
Информация о системе координат хранится вместе с таблицей в shp-файле QGIS, и передавая кому-либо файл слоя вместе с ним вы передаете соответствующие настройки. В других источниках слоев, включаемых в проект, информация о системе координат может отсутствовать. Поэтому, если вы получили от кого-либо слой с информацией, которая почему-то не отображается на карте, сделайте следующее – откройте таблицу объектов этого слоя, выделите любую строку и нажмите кнопку перехода к объекту. Если на экране отобразилась Африка или мировой океан, значит, QGIS систему координат распознал неправильно. Уточните у тех, от кого получен источник (файл), в какой системе координат хранятся данные, и установите ее для слоя в QGIS.
Если нужной системы координат нет в QGIS, то ее можно ввести самому (Пользовательская система координат). Для этого надо знать строку настроек. Google вам в помощь — попытайтесь использовать запрос с наименованием искомой системы плюс, например, «пользовательская система координат QGIS».
Для чего еще это может понадобиться? Пользователи публичной кадастровой карты хорошо знают о проблеме сдвига слоев кадастра относительно спутниковой подложки. Она сбивает с толку, мешает визуально оценивать границы земельных участков. Аналогичную картину мы видим при добавлении слоя публичной кадастровой карты в QGIS вместе со снимками Yandex или Google.
Чтобы исправить ситуацию я создал в QGIS собственную пользовательскую систему координат со следующими параметрами, подобранными эмпирическим путем, и установил ее для слоев кадастровой карты:
+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=-11.0 +y_0=-6 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs
В результате проблема снята.
Немножко высшего пилотажа
Первое. Интересен вариант хранения пространственной информации в базе данных. Если есть база данных Microsoft SQL, Oracle или Postgres в которых, например, находится таблица с перечнем контрагентов с их адресами или таблица со списком оборудования, раскиданным по территории, то эту таблицу (запрос) полезно зацепить в QGIS.
Надо только добавить поле геометрии, и в этом QGIS поможет. Не забудьте установить в базе данных права на редактирование таблицы пользователю, получающему к ней доступ из QGIS. Информация, внесенная в QGIS, будет храниться в базе данных, а при изменении в базе данных сторонними управленческими приложениями, сразу же отображаться в QGIS.
Второе. Если нет желания давать прямой доступ к изменениям в базе или другом источнике данных (например файле CSV), но хочется оперативно получать информацию на карте, то есть эффективный способ и для этого.
Например, у нас есть информация об арендаторах нашего имущества в базе данных 1С, мы желаем показывать арендаторов на карте, выделять разными цветами должников по арендной плате и выводить рядом их сумму долга или какой-нибудь график с тенденцией погашения.
Нужно, в точности как это делаем с обычными слоями, присоединить таблицы базы данных с интересующей нас информацией (например, о динамике задолженности, должнике, объектах недвижимости и т.д.) в проект QGIS с правами на чтение. Поскольку присоединенные таблицы изначально не имеют геометрии, и мы не даем QGIS возможности ее создавать и изменять, то, понятно, надо как-то по-другому дать ГИС отсутствующую информацию о месторасположении имущества.
Для этого создаем слой .shp, располагаем на нем объекты, занося в один из атрибутов уникальные номера, соответствующие идентификаторам этих объектов в 1С. То-есть в обеих таблицах должны быть поля с одинаковыми идентифицирующими данными по которым их можно связать между собой. Настраиваем в свойствах слоя .shp соответствующие связи. В результате мы не меняем из QGIS данные 1С, но их изменение со стороны 1С сразу влияет на отображение объектов и сопутствующей информации на карте в QGIS. Осталось настроить свойства слоя карты для красивого отображения информации и наслаждаться результатом в реальном времени.
Третье. Отображать данные на карте в QGIS можно не только точками, линиями и полигонами с надписями, но и диаграммами, формируемыми автоматически на основе представленных данных.
Четвертое. Можно получать из QGIS аналитику в виде таблиц и итоговых данных, рассчитанных с учетом геопространственной информации. Например, имея таблицу населенных пунктов с количеством жителей в каждом и таблицу дорог из OSM, быстро подсчитать население, проживающее на расстоянии более 3 километров от региональных и федеральных автодорог.
NextGIS.com
Еще одним открытием года для меня стал облачный продукт NextGIS.com. Молодая российская команда NextGIS активно участвует в развитии QGIS. В этом можно убедиться по количеству доступных в QGIS модулей их производства. В 2016 году они запустили упомянутый картографический веб-сервис и неустанно расширяют его возможности.
> Ссылка на проект
Исходники проекта доступны на github. Так что если есть желание развернуть веб-сервис самостоятельно — нет проблем. Однако условия, которые предлагает команда NextGIS для доступа к своем облаку, без сомнения заслуживают внимания даже самых прижимистых пользователей.
Создать свою собственную веб-ГИС в облаке NextGIS можно бесплатно. Вы получите доменное имя в формате вашеимя.nextgis.com и можете почти без ограничений использовать все предоставляемые ими вкусности. Самое то, чтобы начать знакомиться с решением и использовать его на практике. Главное ограничение бесплатной подписки – невозможность ограничить доступ на чтение к информации. Любой может видеть то, что размещено вами.
Уже с бесплатной подпиской вы можете создавать сколько угодно веб-карт с произвольными настройками, компоновкой и стилями загруженных вами слоев, а также рассматривать, анализировать карты на рабочем компьютере и, в комплекте с NextGIS Mobile, собирать данные в поле, размещая их сразу в облако. Можно встраивать карты в веб-сайты или смотреть на сервисе.
Платная подписка снижает ограничения, в том числе по количеству пользователей, редактирующих слои (изначально один пользователь), разграничению их прав. Какие-то слои можно показать всем, а права доступа к другим ограничить. Плюс предоставляется возможность использовать собственное доменное имя, например gis.моякомпания.ru и получить разнообразие преднастроенных подложек (в бесплатной подписке есть только карта OpenStreetMap).
Со слов представителя компании сейчас условия подписки меняются. Ориентироваться нужно на информацию, размещенную на сайте сервиса по адресу nextgis.ru/pricing. Ранее платный тариф был единым и составлял 3000 руб.в месяц. Теперь платная подписка стоит от 600 рублей. Обещают, что за те же 3000 руб. в месяц клиент будет получать полный и актуальный комплекс программного обеспечения и сервисов, как и раньше.
Интеграция QGIS и NextGIS.com
Остановлюсь на нескольких не очевидных принципах интеграции QGIS и NextGIS.com. Работая в QGIS, вы создаете в своих проектах слои и их стили, как это уже рассматривалось выше. Теперь для того, чтобы разместить созданный слой на веб-карте у нас есть несколько способов. Рассмотрим сначала длинный путь, чтобы разобраться с идеологией NextGIS Web. Для размещения слоя необходимо:
- зайти в QGIS в свойства слоя и из них сохранить стиль в файл;
- сохранить файл слоя в системе координат WGS 84 (EPSG:3857).
Затем, имея два файла (стиля слоя с расширением .qml и таблицы слоя с расширением .shp), надо:
- войти в свой аккаунт на своем сайте в облаке NextGIS.com,
- создать новый слой через опцию «Создать ресурс — Векторный слой» и во вкладке «Векторный слой» загрузить файл с расширением .shp.
После сохранения ресурса в его настройках появится возможность загружать файлы стилей слоев. К каждому слою с данными можно сохранить несколько разных файлов стилей, которые по-разному будут отображать данные на веб-карте.
Наконец, настало время разместить слой на карте. Для этого откройте главную страницу своего сайта. Среди перечисленных объектов основной группы ресурсов будет как минимум одна существующая веб-карта. Войдите в ее настройки и выберите вкладку «Слои». Нажмите «Добавить слой» и отыщите в открывшейся таблице ваш слой и под ним стиль, в котором хотите, чтобы его данные отображались на Веб-карте. Нажмите «Сохранить» и «Веб-карта – Открыть». Слой перед вами на карте — включите его для отображения.
Действительно длинный путь, не так ли? Но есть маршрут, который решает все это и многое другое прямо из QGIS в несколько нажатий клавиш и которым пользуюсь я.
Модуль NextGIS Connect для QGIS
Установите через меню QGIS «Управление модулями» модуль NextGIS Connect. В интерфейсе появится виджет «Ресурсы NextGIS». В его настройках создайте подключение, указав данные вашего аккаунта, в том числе адрес своего сайта (в формате «http://мойсайт.nextgis.com»), имя пользователя «administrator» и полученный при регистрации пароль. Вместо ввода логина и пароля можете использовать учетную запись гостя, но с нею не удастся загружать данные из QGIS на веб-сайт — можно только получать информацию с сайта. После регистрации на экране отобразятся все ваши ресурсы на облачном сервисе.
Теперь для того, чтобы разместить слои QGIS на веб-карте есть два способа.
Первый – загрузить целиком проект QGIS одной кнопкой. Он будет поднят в облако в виде отдельной папки со всеми слоями и новой веб-картой. Прямо из окна можно перейти к ней и увидеть, как выглядят ваши данные в браузере, поделиться ссылкой с друзьями, коллегами, встроить карту на какой-нибудь сайт.
Но при загрузке обновленных данных таким способом мы сталкиваемся с неприятным фактом – новый загруженный проект будет использовать новые URL-адреса его ресурсов, в том числе веб-карт, которыми мы успели поделиться с друзьями и коллегами.
Поэтому есть второй способ более изящный, предназначенный для работы с уже созданными веб-картами. Для этого мы поднимаем из QGIS в облако NextGIS.com по одному новому или измененному слою:
- удаляем в окне NextGIS Connect слои, которые хотим поднять обновленными;
- выбираем в окне NextGIS Connect конечную папку ресурсов;
- выделяем слой в QGIS правой кнопкой мыши и в контекстном меню выбираем «NextGIS Connect – Импортировать выбранный слой». Выбранный слой копируется в облако вместе с его стилем;
- повторяем действия для всех слоев, которые хотим обновить на веб-карте;
- выделяем в окне NextGIS Connect карту на которой собираемся разместить слой и переходим на нее щелчком правой кнопки мыши через контекстное меню «Открыть в ВебГИС»;
- в открывшемся окне ресурса веб-карты на сайте нажимаем кнопку «Изменить», выбираем вкладку «Слои» и нажимаем кнопку «Добавить слой». Находим загруженные слои и добавляем на карту стили, размещенные под каждым из них. Нажимаем «Сохранить».
Обратите внимание, если вы не вошли на сайт под своей учетной записью, то хотя и прошли указанный маршрут, сохранение данных вызовет ошибку.
Готово, по ссылке «Веб-карта – Открыть» увидите карту с прежним URL и комбинацией старых и обновленных слоев.
Растровые слои
Полезность пользовательских растровых слоев в качестве подложек карт при работе в QGIS очевидна не сразу, поскольку существует модуль расширения «Quick Map Services», который в пару кликов добавляет в проект слои публичных веб-карт, например Яндекс-Спутника или кадастровой карты.
Но со временем нужда в них появляется в следующих случаях если:
- на карте нужен более детализированный, чем доступные публично, фотографический план отдельного объекта или территории, который есть у вас в наличии
- вы работаете в дороге, при нестабильном доступе в Интернет или если вас досаждает длительная загрузка публичных снимков при каждом перемещении экрана;
- вы пользуетесь бесплатной версией NextGIS.com, а единственная подложка OpenStreetMap на ваших веб-картах вас не устраивает.
Во втором и третьем случае вам поможет открытое десктопное приложение SAS.Планета. Загрузите его себе на компьютер с сайта. Очертите территорию, которую желаете заграбить в растровый слой, выберите в меню «Операции с выделенной областью», откройте вкладку «Склеить» и установите выбранные настройки (например, как на рисунке). По кнопке «Начать» на вашем компьютере будут сформированы растровые изображений с геопривязкой, которые можно загрузить в качестве растрового слоя в QGIS или ресурса в NextGIS.com.
На что надо обратить внимание:
- Предпочтительный формат файла для хранения растровых данных – GeoTIFF с компрессией JPEG. Он занимает мало места, единственный загружается на NextGIS.com и может содержать тайлы – маленькие разномасштабные изображения, эффективно и быстро открывающиеся на веб-карте при перемещении экрана. Все тайлы по умолчанию хранятся в одном файле, но этого монстра не надо каждый раз загружать себе на компьютер, из него будут выбираться строго необходимые куски-тайлы. Однако, если файл все равно слишком велик для вас или для загрузки на сервис веб-карты, то его можно разбить на части как это показано (2x2 куска, 4 файла) в указанных выше настройках.
- В проект QGIS растровый слой можно поместить простым перетаскиванием. А если надо скрепить несколько частей, то можно использовать так называемый «виртуальный слой» или просто собрать все растровые слои в группу.
- Максимальный масштаб для Yandex-Спутника равен 18. 17 достаточен для многих задач, а файл с тайлами уменьшается значительно.
- При склейке в SAS.Planet в GeoTIFF-файле размещаются только тайлы указанного масштаба, и после прикрепления растрового слоя в проект QGIS в свойствах слоя рекомендуется выбрать опцию «Пирамиды». Растры высокого разрешения могут замедлить навигацию в QGIS. Создание копий данных низкого разрешения (пирамид) позволяет существенно повысить скорость, поскольку QGIS будет автоматически выбирать оптимальное разрешение в зависимости от текущего масштаба. Создайте пирамиды меньших размеров.
NextGIS Mobile
Если вам приходится работать в поле, есть желание оперативно получать информацию в пути с карты, одновременно собирая данные и оперативно делясь с другими, то полезно использовать бесплатное приложение NextGIS Mobile для смартфона или планшета. С его помощью можно получать и обрабатывать географически распределенную информацию из различных источников, в том числе со слоев NextGIS.com и сторонних баз данных, загружать из QGIS, изменять, рисовать объекты и создавать новые слои, возвращать их в QGIS. И все в привязке к собственному местоположению. Приятна возможность сохранять в слои собственные треки перемещений.
Для массового сбора информации достаточно просто создаются собственные формы, удобные для использования неподготовленными сотрудниками из приложения на телефоне или планшете.
Вместо заключения
Есть еще множество способов работы с упомянутыми выше решениями. Например, слои можно разместить на каком-нибудь бесплатном или собственном сервере баз данных PostgreSQL, вести с ними работу в QGIS и других приложениях, например LibreOffice, Microsoft Access или Microsoft Excel, а на сайте NextGIS.com один раз настроить слой для отображения на веб-карте. В результате все изменения данных в QGIS или в Microsoft Excel немедленно будут отображаться на веб-карте.
К размещенным в облаке объектам слоя можно прикреплять на карте документы и фотографии. Их просмотр удобен и нагляден. Правда, если этот слой вам приходится периодически заменять новым из QGIS, то с удаленной версией исчезнет и вся наполненная вами красота. Альтернатива – работать в облаке не путем замены слоев из QGIS (через модуль NextGIS Connect или вручную), а опосредованно, например, опять же, через однажды настроенный слой, получающий информацию из базы данных Postgres.
В любом случае, связка QGIS, NextGIS.com и NextGIS Mobile является гибким и полезным инструментом, доступным каждому. Переход к работе с ГИС для решения прикладных задач с географически распределенными данными – увлекательная задача и усилия по изучению предмета окупаются возможностями, которые мы тем самым открываем перед собой.
В заключение для иллюстрации материалов статьи предлагаю вот это короткое видео.
Комментарии (28)
boogiebomzh
13.02.2017 16:36+2Преподаю ГИС лесникам, на практических занятиях работают в QGIS. Очень легко дается многим. Единственный недостаток с точки зрения обучения в вузе — слишком быстро развивается, не успеваю каждый год переделывать методички. Раньше работали в Панораме, бррр. Еще была лицензия на ArcGIS, но я попросил ее не продлевать. Не хочу привязывать к продукту, который стоит миллионы.
FSA
13.02.2017 17:18+1Используя ArcGIS вы ещё и к Windows привязываете людей. Так что если QGIS позволяет выполнять задачу, то это неплохой выбор.
ls18
14.02.2017 12:07Извиняюсь за оффтоп, а можно узнать, где вы преподаете лесникам? И где можно выучиться на лесника?
boogiebomzh
14.02.2017 12:21https://www.ucheba.ru/for-abiturients/speciality/51926 выбирайте, что вам ближе.
Я преподаю в Иркутске.
dizjis
13.02.2017 18:18Судя по беглому взгляду в документацию — возможность встроить QGIS в свое приложение имеется, да?
svsta
13.02.2017 18:21Карты можно экспортировать в jpeg, или вообще создавать атласы в своих проектах. Если речь о том, чтобы вставить интерактивную карту в веб-приложение, то NextGIS Web дает возможность встраивания кода карты на сторонний сайт. И, в статье не упоминал, но сам QGIS может работать как картографический веб-сервис, так что вводите в локальной сети адрес сервера и получаете карту в браузере.
dizjis
13.02.2017 19:40Спасибо за информацию. Jpeg не подходит. Мне нужно именно полноценное встраивание в декстоп-приложение, желательно без посредников. На данный момент используется веб-апи дубль-гиса во встроенной вкладке с браузером и хочется от него уйти уже, наконец. В документации я вроде как нашел нужную инфу, но там для Qt, с которым я мало знаком. Да и основное приложение написано с использованием другого IDE и языка
pankraty
16.02.2017 18:42Возможность имеется, но лицензия GPL накладывает определенные ограничения на такой продукт. Оцените, насколько это подходит для вашей задачи.
za90
13.02.2017 18:32+2Автору благодарность (и два чая) за большой труд.
Всех заинтересованных приглашаю в https://t.me/nextgis_chat (и в https://t.me/ruosm конечно).
mgis
14.02.2017 11:24+1Статья очень полезна, новичкам в ГИС.
QGIS на самом деле прекрасен.
А еще понравился QGIS MAP SERVER.
Если на клиенте только QGIS то работает в несколько раз шустрее Geoserver-а. Кстати из растра умеет сам тайлы нарезать. Гляньте тоже, скорее всего и вам пригодится.
federalkosmos
14.02.2017 14:19Возможно ли с помощью данных ГИС получить полный список адресов зданий конкретного города, либо массив их координат?
svsta
14.02.2017 14:22Если город описан в OSM, то без проблем. Какой город?
federalkosmos
14.02.2017 16:42Йошкар-Ола. В OSM есть, через экспорт выдаётся файл с массивом координат, который надо править руками, чтобы оставить только сами координаты. И во всём этом здания, дороги и прочее.
А нужны адреса только зданий (или их координаты). Понять, как это сделать по любому городу.svsta
14.02.2017 17:23Адресация дело тонкое, еще более тонкое — фактические границы населенных пунктов. В федеральной адресной системе (ФГИС) проблем с ними множество, но для решения прикладных задач обычно достаточно точности, которую предоставляет OSM.
Навскидку погуглил.
Для Марий Эл нашел только предложение платного скачивания послойной вырезки из карт OSM — 200 рублей тут. Уверен, что можно найти вырезку бесплатно или поработать с послойной картой всей России (см.ниже как). Тоже была на гислаб.
Чтобы далеко не ходить — на странице платного предложения выше есть список стандартных слоев OSM, а при переходе по ним — полей соответствующих таблиц. Нас интересуют два слоя:
- building-point — 149 объектов
- building-polygon — 123524 объекта
В таблицах содержатся схожие поля, описывающие адреса — можем делать с ними что хотим. Конечно, для этих объектов есть геометрия. И если нам из полигона контура здания надо получить x, y точки, то QGIS это легко делает.
BUILDING A_STRT <addr:street>
A_SBRB <addr:suburb>
A_HSNMBR <addr:housenumber>
B_LEVELS <building:levels>
NAME Но надо еще отделить адреса в городе Йошкар-Ола из общей массы, а если скачаете карту всей России, то тем более. Судя по описанию в таблицах домов в адресе нет поля город. Не проблема — берем еще слои из карты. Нам помогут:
- boundary-polygon -143 объекта
или
- settlement-point — 1630 объеков
В них содержатся полигоны границ субъектов федерации, муниципальных и иных территориальных образований, в том числе населенных пунктов. Находим и выделяем в таблице одного из этих слоев нужное территориальное образование. Применяем выделение в другой таблице (с домами) для выделения и копируем выделенные объекты на новый слой. На карте будут точки адресов, подпишите их если надо полями в свойствах слоя. А в таблице слоя — все дома в городе.
Вуаля
svsta
14.02.2017 18:20Ссылка на бесплатное скачивание ноябрьской версии карты Марий Эл:
http://be.gis-lab.info/data/osmshp/latest/RU-ME.7z
Скачал, открыл в QGIS — все выше указал верно.
Есть видео как выделить дома в пределах полигона границ территориального образования
ParaPilot
За статью спасибо.
У меня есть два вопроса, которые немного не понял.
1. Откуда берутся данные для работы в программах (карты, планы т т.д.)? Открытые источники есть?
2. Есть ли возможность в перечисленных инструментах по картам высот получать модели рельефа?
boogiebomzh
1. Открытые данные и ссылки на них живут на gis-lab.info.
2. Раньше были плагины, например, Globe. Еще можно средствами GRASS.
svsta
Да, в том числе есть плагин «Quick Map Services», который описал в статье. Много на gis-lab.info. Модели рельефа тоже можно формировать, но этот функционал мне был не нужен.