10.1. 课: Web地图服务
Web地图服务 (WMS) 是托管在远程服务器上的服务。与网站类似,只要连接到服务器,就可以进行访问。使用QGIS,您可以将WMS直接加载到现有地图中。
例如,从插件的课程中,您将想起,可以从谷歌加载新的栅格图像。然而,这是一次性事务:一旦您下载了图像,就无法更改。WMS不同之处在于,它是实时服务,如果您在地图上平移或缩放,就会自动刷新视图。
本课目标: 使用WMS并了解其局限性。
10.1.1. 跟我做: 加载WMS图层
在本练习中,您可以使用课程开始时制作的底图,也可以启动新地图并将一些现有图层加载到其中。在本例中,我们使用了新地图,加载了原始 places, landuse 和 protected_areas 图层,并调整了符号:
将这些图层加载到新地图中,或使用仅显示这些图层的原始地图。
开始添加WMS图层之前,请停用 "动态" 投影 (无CRS (或未知/非地球投影) 。这可能会导致图层不再正确重叠,但别担心,我们稍后会解决这个问题。
选项卡, 勾选要添加WMS图层,请单击 按钮打开 数据源管理器 对话框,并启用 WMS/WMTS 选项卡。
还记得您在课程开始时是如何连接SpatiaLite或GeoPackage数据库的吗? landuse, buildings 和 roads 图层存储在数据库中。要使用这些图层,首先需要连接到数据库。使用WMS与此类似,只是图层位于远程服务器上。
要创建与WMS的新连接,请单击 新建 按钮。
您需要WMS地址才能继续。互联网上有几台免费的WMS服务器。其中一台是 terrestris ,它使用了 OpenStreetMap 数据集。
要使用此WMS,请在当前对话框中进行如下设置:
名称 字段的值应为
terrestris
。URL 字段的值应为
https://ows.terrestris.de/osm/service
。
单击 确定 。您应该会看到新的WMS服务器列表:
单击 连接 。在下面的列表中,您现在应该可以看到加载的这些新条目:
这些都是此WMS服务器托管的图层。
在 OSM-WMS 图层上单击一次。这将显示其 坐标参照系 :
因为我们的地图未使用
WGS 84
,让我们看看所有CRS并从中选择一个。单击 更改... 按钮,您将看到一个标准 坐标参照系选择器 对话框。
我们需要一个 投影 的CRS,所以选择 WGS 84 / Pseudo Mercator 。
在 过滤器 字段中输入
pseudo
值。从列表中选择 WGS 84 / Pseudo Mercator (带有 epsg:3857) 。
单击 确定 。与条目关联的坐标参照系已更改。
单击 添加 ,新图层将在地图中显示为 OpenStreetMap WMS - by terrestris 。
如果未自动完成,请关闭 数据源管理器 对话框。
在 图层 面板,单击并将其拖动到列表底部。
缩小以获得图层的全局视图。您会注意到图层的位置不正确 (靠近非洲西部),这是因为 "动态" 投影被禁用。
再次启用重投影,但使用与 OpenStreetMap WMS 图层相同的投影,即 WGS 84 / Pseudo Mercator 。
打开
选项卡取消勾选 无CRS (或未知/非地球投影)
从列表中选择 WGS 84 / Pseudo Mercator 。
单击 确定 。
现在,在 图层 面板中您自己的一个图层上右键单击,然后单击 缩放到图层 。您应该看到 Swellendam 地区:
请注意WMS图层的街道和我们自己的街道是如何重叠的。这是个好兆头!
WMS的特点和局限性
到目前为止,您可能已经注意到,这个WMS图层实际上有很多要素,比如街道、河流、自然保护区等等。更重要的是,尽管看起来像是由矢量组成的,但它似乎是栅格,您无法更改其符号。为什么?
这就是WMS的工作原理:它是一张地图,类似于纸上的普通地图,您可以将其作为图像接收。通常的情况是,你有矢量图层,QGIS将其渲染为地图。但是使用WMS时,这些矢量图层位于WMS服务器,该服务器将其渲染为地图,并将该地图作为图像发送给您。QGIS可以显示此图像,但不能更改其符号,因为所有这些都是在服务器上处理的。
这有几个优点,因为您无需担心符号。这已经解决了,在任何设计得当的WMS上都可以看到。
另一方面,如果您不喜欢符号,也无法将其修改。如果WMS服务器上进行了更改,那么您的地图也随之变化。这就是为什么有时需要使用Web要素服务 (WFS),它单独提供矢量图层,而不是作为WMS样式地图的一部分。
不过,这将在下一课介绍。首先,让我们从 terrestris WMS 服务器添加另一个WMS图层。
10.1.2. 试一试
在 图层 面板隐藏 OSM-WSM 图层。
在以下URL添加 "ZAF CGS 1M Bedrock Lithostratigraphy" WMS 服务器:
http://196.33.85.22/cgi-bin/ZAF_CGS_Bedrock_Geology/wms
将 BEDROCKGEOLOGY 图层加载到地图中 (您也可以使用 按钮打开数据源管理器对话框)。记得检查是否与地图的其他部分都使用的 WGS 84 / World Mercator 投影!
您可能希望将其 编码 设置为 JPEG ,并将其 瓦片大小 选项设置为
200
×200
,以便更快加载:
回答
您的地图应如下所示 (可能需要重新排序图层):
10.1.3. 试一试
隐藏所有其他WMS图层,防止它们在后台进行不必要的渲染。
在以下URL添加 "OGC" WMS 服务器:
http://ogc.gbif.org:80/wms
添加 bluemarble 图层。
回答
使用与之前相同的方法添加新服务器和该服务器上托管的相应图层:
如果放大 Swellendam 地区,您会注意到该数据集的分辨率较低:
因此,最好不要将这些数据用于当前地图。Blue Marble 数据更适用于全球或全国范围
10.1.4. 试一试
使用WMS的部分困难在于找到一个好的 (免费) 服务器。
在 directory.spatineo.com (或其他在线网站) 中查找新的WMS。不得有相关费用或限制,且必须覆盖 Swellendam 研究区域。
请记住,使用WMS所需的只是其URL (最好是某种描述)。
回答
您可能会注意到,许多WMS服务器并非始终可用。有时是暂时的,有时是永久的。在撰写本文时使用的WMS服务器是 World Mineral Deposits WMS,其中一个示例网址为 http://apps1.gdr.nrcan.gc.ca/cgi-bin/worldmin_en-ca_ows 。它不需要费用,也没有访问限制,而且是全球性的。因此,它确实可以满足要求。然而,请记住,这只是一个例子。还有许多其他WMS服务器可供选择。
10.1.5. 综上所述
使用WMS,可以将非活动地图添加为现有地图数据的后面。
10.1.6. 延伸阅读
10.1.7. 下节引言
现在,已经添加了非活动地图作为背景,您将很高兴地知道,还可以添加要素 (例如之前添加的其他矢量图层)。通过使用Web要素服务 (WFS),可以从远程服务器添加要素。这是下一课的主题。