目录

上一个主题

12.1. QGIS-Server 介绍及安装

下一个主题

13. 附录:地理信息系统基础概念


本教程由OSGeo中国中心维护

12.2. 使用qgis-server 和 qgis 发布地图

12.2.1. 将qigs项目添加到qgis-server的文件夹

创建一个新的文件夹(也可以不创建放在cgi-bin目录下,但是遍历时只是默认第一个,读取到后不会 访问其他文件)

cd /usr/lib/cgi-bin
sudo mkdir MyProject
cd MyProject

将qgis_mapserv.fcgi和wms_metadata.xml链接到这个新文件夹中

sudo ln -s ../qgis_mapserv.fcgi && sudo ln -s ../wms_metadata.xml

如果文件不能被操作可能是权限原因修改文件夹的权限

sudo chmod +777 /usr/lib/cgi-bin/MyProject

将QGIS项目文件。链接到该文件夹。然后重启Apache,这个步骤有两种方法

  • 建立链接

sudo ln -s /home/dir/file.qgs  /usr/lib/cgi-bin/MyProject/file.qgs
  • 直接复制文件

/usr/lib/cgi-bin/MyProject

重启web server

sudo service apache2 restart

12.2.2. 建立wms图层

打开qgis客户端 点击图层>添加图层> 添加矢量图层(图 12.4)

_images/qgis_wms01_xpb.png

图 12.4 添加矢量图层

“项目”菜单下的“项目属性”,转到“OWS服务器”选项卡(图 12.5) 快捷键: shift ctrl p(图 12.6)

_images/qgis_ows_01_x90.png

图 12.5 建立ows服务(1)

_images/qgis_ows_02_xd0.png

图 12.6 建立ows服务(2)

继续向服务器添加QGIS项目,现在我们在项目中添加WMS层以将其连接到服务器, 因此请转到 “图层>添加图层>添加WMS / WMTS图层”。(图 12.7)

_images/qgis_wms02_xr9.png

图 12.7 创建wms图层

现在创建一个新的连接,并为URL添加你的参数必须是这样的(图 12.8):

_images/qgis_wms03_x13.png

图 12.8 添加wms图层

http://localhost:port/cgi-bin/dir/qgis_mapserv.fcgi?
http://localhost:port/cgi-bin/dir/qgis_mapserv.fcgi?map=/home/dir/to/file.qgs&

勾选'忽略GetMap / GetTile URI'和'忽略GetFeatureInfo URI'框,然后勾选'OK'。

确保你的网址指向'http//localhost/cgi-bin/dir/qgis_mapserv.fcgi' 最好指定qgis项目文件的完整路径,'cgi-bin'文件夹中的文件夹以及用作wms源的任何shapefile, 'qgis_mapserv.fcgi'文件和'wms_metadata.xml'文件。 现在在“添加图层”对话框中选择“图像编码”到PNG,因为它是具有多个特定坐标的最佳格式。

点击连接(图 12.9)

_images/qgis_wms04_xhc.png

图 12.9 连接图层

在我们回到您的QGIS项目之前,检查您可以将新创建​​的WMS图层添加回QGIS, 就像使用来自不同来源的任何其他WMS一样。当您点击“连接”按钮时,您应该看到之前创建的图层列表, 如果没有,请返回并查看本文开头的内容。 选择一个图层并单击“添加”,图层应作为普通的qgis图层显示在图层面板中(图 12.10)。

_images/qgis_wms05_xoq.png

图 12.10 查看图层

在左下角的WMS图层,右键单击然后转到“属性”并记下边界框坐标或图层范围(图 12.11)

_images/qgis_ori01_xcr.png

图 12.11 查看坐标参照系

继续向下滑动,查看图层范围(qgis_ori02.png)

_images/qgis_ori02_xbf.png

在浏览器中我们现在可以在url的'GetMap'部分中使用这些坐标

http://localhost/cgi-bin/dir/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&SRS=EPSG:4326&REQUEST=GetMap&map=/home/dir/to/file.qgs&BBOX=''&WIDTH=1500&HEIGHT=1200&LAYERS=''&STYLES=''&FORMAT=image/png

在这部分url中,在apache2主机服务器上找到qgis-server可执行文件

http://localhost:81/cgi-bin/airport/qgis_mapserv.fcgi?

这称为WMS服务,它的版本和目标空间参考系统,因为我们正在使用ESPG:4326。

SERVICE=WMS&VERSION=1.3.0&SRS=EPSG:4326&

此REQUEST部分是从自定义后保存的qgis项目文件源获取“map”的请求。

REQUEST=GetMap&map=/home/dir/to/file.qgs&

此BBOX设置检索到的图像边界的大小以及浏览器中图像区域的“宽度”和“高度”坐标。

&BBOX=-179.135999,-72.781500,179.194999,89.246600&

最后一部分是WMS各层的描述和显示。 没有指定'STYLES',因为它指定了.qgs文件。最后,输出格式是png图像(qgis_map.png)。

&STYLES=''&FORMAT=image/png
_images/qgis_map_xje.png