这边文章的讲的是QGIS如何使用WMS图层以及其WMS图层原理和缺点。
- 什么是WMS?
(WMS) Web Mapping Service 是一种远程的地图服务,好像一个网站,你可以通过连接一个远程服务器来获取,QGIS可以直接加载WMS图层。WMS图层不像从GOOGLE地图上加载的栅格地图,它是静态的,一旦你下载了图片,它就不会再更新变化了(除非你删除缓存)。但通过放大和缩小地图、WMS图层却是可以动态更新的,
- 导入WMS 图层
你既可以使用以前配置好的地图也可以创建一个新地图加载一些已经存在的图层,下面我们用一个新地图导入places和landuse图层并配置符号,然后我们开始导入WMS图层。
在导入WMS 图层之前,首先需要禁用动态投影 “on the fly” (settings->options->CRS) 这可能造成图层不能正确叠加,不过不用担心 我们后边会单独对其进行修复。
我们通过点击工具栏中的AddWMS Layer button 来加载WMS图层,类似加载SpatiaLite数据库图层,图层数据是存储在数据库中的,为了使用这些图层,我们首先要连接这些数据库。而添加WMS图层,需要先连接远程服务器。
点 NEW 按钮 创建一个新的WMS连接,首先需要一个WMS 服务地址 ,互联网上有许多免费的WMS 服务,例如: terrestris,它是利用OpenStreetMap数据发布的。
为了使用WMS,需要如下设置对话框:
- Name field 填写 terrestris。
- URL 填写 field http://ows.terrestris.de/osm/service。
- 点OK 完成设置。
点连接后,在server listed 列表中你能够看到导入的WMS入口,它们是该WMS SERVER管理的所有图层。
单击OSM-WMS 图层,将显示该图层的参考坐标系,
由于我们不使用WGS84坐标系,我们需要重新选择,点Change按钮,将显示坐标系对话框。我们需要一个投影坐标系,选择WGS 84 / Pseudo Mercator。
点OK按钮设置完成。
点 添加 按钮 新的名叫OSM-WMS.的图层将出现在地图上,在图层列表上,点选并拖动图层到地图列表的底端。
我们发现你的图层位置不准确,这是因为 “on the fly” projection 动态投影被禁用了。我们将重新启用动态投影,选择与OSM-WMS图层同样的投影,也就是WGS 84 / Pseudo。
- 启用动态投影
在SETTING->Project Properties dialog对话框中的 CRS TAB页中,输入pseudo 过滤坐标系
从列表中选择WGS 84 / Pseudo Mercator
点 OK设置完毕
然后右键点击在图层面板中的相应图层,选择Zoom to layer extent. 查看Swellendam区域。
- WMS 的优点和局限
我们注意到WMS 图层实际上包含很多FEATURE,有街道、河流、自然保护区等。它好像像是矢量格式,但其实他是栅格格式的,我们是不能改变这些FEATURE的样式的。
因为它类似一个纸质的地图,只是它是个图片而已,我们平时使用的矢量图层,QGIS会负责其渲染成但是我们使用WMS时矢量图层在WM SSERVER服务器上,服务器会渲染地图并生成图片发送到客户端QGIS上由QGIS显示。所以我们不能改变符号的样式,因为这些是在服务器端完成的工作。这其实有很多好处,因为你不必去再设计图层的符号样式,他已经在服务端设计好了。如果不喜欢当前的样式设计你也不能改变,但有时你也想在客户端改变图层样式,这时就要使用WFS图层,它会传给客户端矢量图层。而不是将地图作为整体传输。