10.2. Lesson: Web要素服务
Web要素服务(WFS)为其用户提供可直接加载到QGIS中的格式的GIS数据。与WMS不同,WMS只为您提供无法编辑的地图,而WFS则允许您访问要素本身。
The goal for this lesson: 使用WFS并了解它与WMS的区别。
10.2.1. Follow Along: Loading a WFS Layer
开始一张新地图。这是出于演示目的,不会保存。
单击 New 纽扣。
在出现的对话框中,输入 Name AS
nsidc.org
以及 URL AShttps://nsidc.org/cgi-bin/atlas_south?version=1.1.0
。单击 OK ,新连接将出现在您的 Server connections 。
单击 Connect 。将显示可用层的列表:
取消选中 Only request features overlapping the view extent 选择下面的层列表,因为您当前的地图画布可能没有覆盖我们感兴趣的区域:南极洲。
找到该层 antarctica_country_border 。您可以使用 Filter 盒子在最上面。
单击层以将其选中:
同时查找并选择该层 south_poles_wfs 。你可能需要等一下 Ctrl 。
单击 Add 。
可能需要一段时间来加载层。当它们加载后,它们将出现在地图上,显示南极洲的轮廓和几个点。
这与拥有WMS层有什么不同?
选择任意层,您将注意到启用了要素选择和属性表工具。这些是矢量层。
选择 south_poles_wfs 层,并打开其属性表。您应该看到这一点:
由于这些点具有属性,因此我们能够对它们进行标记,以及更改它们的符号系统。下面是一个例子:
与WMS图层的区别
Web要素服务返回层本身,而不仅仅是从它渲染的地图。这使您可以直接访问数据,这意味着您可以更改其符号系统并对其运行分析函数。然而,这是以传输更多数据为代价的。如果您正在加载的层具有复杂的形状、许多属性或许多功能,或者即使您只是加载了很多层,这一点也会特别明显。因此,WFS层通常需要很长时间才能加载。
10.2.2. Follow Along: Querying a WFS Layer
虽然可以在加载WFS层之后查询它,但在加载它之前查询它通常会更有效。这样,您只需要请求您想要的功能,这意味着您使用的带宽要少得多。
例如,在我们当前使用的WFS服务器上,有一个名为的层 countries (excluding Antarctica) 。比方说,我们想知道南非相对于 south_poles_wfs 层(也许还包括 antarctica_country_border 层),它已经被加载。
有两种方法可以做到这一点。您可以加载整个 countries ... 层,然后在加载查询后像往常一样构建查询。然而,传输世界上所有国家的数据,然后只使用南非的数据,似乎有点浪费带宽。根据您的连接,此数据集可能需要几分钟才能加载。
另一种方法是在从服务器加载层之前将查询构建为过滤器。
启用 WFS / OGC API Features 选项卡中的 Data Source Manager 对话框
连接到我们之前使用的服务器,您应该会看到可用层的列表。
找到并双击 countries (excluding Antarctica) 一层。层名称为
country_borders_excluding_antarctica
。您也可以选择该层,然后按 Build query 对话框底部的按钮:在出现的对话框中,键入以下内容
SELECT * FROM country_borders_excluding_antarctica WHERE "Countryeng" = 'South Africa'
中的查询 SQL Statement 盒。新闻发布会 OK 。
使用的表达式将显示为 Sql 目标层的值:
单击 Add 选择了如上所示的层。只有一个国家拥有
Countryeng
的价值South Africa
将从该层加载:你有没有注意到 图标旁边的
country_borders_excluding_antarctica
层次感?这表示载入的层已被过滤,并且不会在项目中显示其所有要素。您不必这样做,但是如果您尝试了这两种方法,您会注意到这比在过滤之前加载所有国家/地区要快得多!
关于WFS可用性的说明
如果您的需求非常具体,则很少能找到托管您所需功能的WFS。Web Feature Services之所以相对较少,是因为描述整个功能需要传输大量数据。因此,托管WFS而不是只发送图像的WMS并不划算。
因此,您将遇到的最常见的WFS类型可能是在本地网络上,甚至是在您自己的计算机上,而不是在Internet上。
10.2.3. In Conclusion
如果需要直接访问层的属性和几何图形,则WFS层比WMS层更可取。然而,考虑到需要下载的数据量(这会导致速度问题以及缺乏容易获得的公共WFS服务器),使用WFS而不是WMS并不总是可能的。
10.2.4. What's Next?
接下来,您将了解如何使用QGIS Server提供OGC服务。