Важно
Перевод - это работа сообщества : ссылка:Вы можете присоединиться. Эта страница в настоящее время переводится |прогресс перевода|.
10.2. Lesson: Web Feature Services
Веб-сервисы объектов (WFS) дают своим пользователям данные ГИС в форматах, которые можно загрузить непосредственно в QGIS. В отличие от WMS, которая предоставляет вам только карту, которую вы не можете редактировать, WFS дает вам доступ к самим объектам.
Цель этого урока: Использовать WFS и понять, чем он отличается от WMS.
10.2.1. ★☆☆ Follow Along: Loading a WFS Layer
Запустите новую карту. Вы делаете это для демонстрационных целей и не будете ее сохранять.
Кликните на кнопку New.
В появившемся диалоговом окне надо ввести Name в виде
nsidc.orgи адрес сайта URLhttps://nsidc.org/cgi-bin/atlas_south?version=1.1.0.
Кликните на кнопку OK и появится новое соединение в вашем Server connections.
Кликните на Connect. Появится список доступных слоев:
Снимите флажок Only request features overlapping the view extent внизу списка слоев, так как текущий холст вашей карты может не покрывать интересующую нас местность: Антарктида.
Find the layer
antarctica_country_border. You can use the Filter box at the top.Кликните на слой, чтобы выбрать его:
Find and select also the layer
south_poles_wfs. You might need to hold Ctrl.
Кликните на Add.
Загрузка слоев может занять некоторое время. После загрузки они появятся на карте, показывая очертания Антарктиды и несколько точек над ней.
В чем отличие от слоя WMS?
Выберите любой из слоев и вы заметите, что включены инструменты выбора объектов и таблицы атрибутов. Это векторные слои.
Select the
south_poles_wfslayer and open its attribute table. You should see this:
Так как точки имеют атрибуты, мы можем пометить их, а также изменить их условные обозначения. Вот пример:
Отличия от слоев WMS
Веб-сервис объектов возвращает сам слой, а не только карту, визуализированную из него. Это дает вам прямой доступ к данным, а значит, вы можете изменять их условные обозначения и запускать функции анализа этих данных. Тем не менее, это происходит за счет передачи гораздо большего объема данных. Это становится особенно очевидным, если загружаемые вами слои имеют сложные формы, много атрибутов или много объектов; или если вы просто загружаете много слоев. Из-за этого слои WFS обычно загружаются очень долго.
10.2.2. ★★☆ Follow Along: Querying a WFS Layer
Хотя и можно сделать запрос слоя WFS после его загрузки, но чаще всего более эффективно запросить его перед загрузкой. Таким образом, вы запрашиваете только те объекты, которые вам нужны, а это означает, что вы используете гораздо меньшую пропускную способность.
For example, on the WFS server we’re currently using, there is a layer called
countries (excluding Antarctica). Let’s say that we want to know
where South Africa is relative to the south_poles_wfs layer (and
perhaps also the antarctica_country_border layer) that’s already
been loaded.
There are two ways to do this. You can load the whole countries ...
layer, and then build a query as usual once it’s loaded. However, transmitting
the data for all the countries in the world and then only using the data for
South Africa seems a bit wasteful of bandwidth. Depending on your connection,
this dataset can take several minutes to load.
Альтернативным вариантом является создание запроса в качестве фильтра еще до загрузки слоя с сервера.
Включите вкладку WFS / OGC API Features в диалоговом окне Data Source Manager.
Подключитесь к серверу, который мы использовали раньше, и вы должны увидеть список доступных слоев.
Find and double-click the
countries (excluding Antarctica)layer. The layer name iscountry_borders_excluding_antarctica. You can also select the layer and press Build query button at the bottom of the dialog:
В появившемся диалоговом окне введите следующий запрос
SELECT * FROM country_borders_excluding_antarctica WHERE "Countryeng" = 'South Africa'в ячейке SQL Statement.
Кликните на кнопку OK.
Использованное выражение будет отображено как Sql значение целевого слоя:
Кликните на Add с выбранным слоем, как было показано выше. Только страна с
CountryengзначениемSouth Africaзагрузится из этого слоя:
Вы заметили
значок рядом со слоем country_borders_excluding_antarctica? Это указывает на то, что загруженный слой отфильтрован и не отображает в проекте все свои объекты.Вам не обязательно это делать, но если вы попробуете оба метода, вы заметите, что это намного быстрее, чем загружать все страны перед их фильтрацией!
О доступности WFS
Редко можно найти объекты, хранимые в WFS, которые вам нужны, если ваши потребности очень специфичны. Причина, по которой WFS относительно редки, заключается в том, что для описания объекта в целом необходимо передавать большие объемы данных. Поэтому не очень рентабельно размещать WFS вместо WMS, которая предоставляет только изображения.
Поэтому наиболее распространенный тип WFS, с которым вы столкнетесь, вероятно, будет находиться в локальной сети или даже на вашем собственном компьютере, а не в Интернете.
10.2.3. В заключение
Слои WFS предпочтительнее чем слои WMS, если вам нужен прямой доступ к атрибутам и геометрии слоев. Тем не менее, с учетом объема данных, которые необходимо загрузить (что приводит к проблемам со скоростью, а также к отсутствию легкодоступных серверов WFS), не всегда возможно использовать WFS вместо WMS.
10.2.4. Что дальше?
Далее вы увидите, как использовать QGIS Server для предоставления услуг OGC.
