使用qgis-server 和 qgis 发布地图

18.2. 使用qgis-server 和 qgis 发布地图#

将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

18.2.1. 建立wms图层#

打开qgis客户端点击 图层 > 添加图层 > 添加矢量图层 ,如 图 18.5 所示。

qgis_wms01_xpb

图 18.5 添加矢量图层#

“项目”菜单下的“项目属性”,转到“OWS服务器”选项卡,如 图 18.6 所示。 快捷键: shift+ctrl+p,如 图 18.7 所示。

qgis_ows_01_x90

图 18.6 建立ows服务(1)#

qgis_ows_02_xd0

图 18.7 建立ows服务(2)#

继续向服务器添加QGIS项目,现在我们在项目中添加WMS层以将其连接到服务器, 因此请转到 图层 > 添加图层 > 添加WMS / WMTS 图层 , 如 图 18.8 所示。

qgis_wms02_xr9

图 18.8 创建wms图层#

现在创建一个新的连接,并为URL添加你的参数必须是这样的,如 图 18.9 所示。

qgis_wms03_x13

图 18.9 添加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,因为它是具有多个特定坐标的最佳格式。 点击连接,如 图 18.10 所示。

qgis_wms04_xhc

图 18.10 连接图层#

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

qgis_wms05_xoq

图 18.11 查看图层#

在左下角的WMS图层,右键单击然后转到“属性”并记下边界框坐标或图层范围,如 图 18.12 所示。

qgis_ori01_xcr

图 18.12 查看坐标参照系#

继续向下滑动,查看图层范围,如 图 18.13 所示。

qgis_ori02_xbf

图 18.13 查看图层范围#

在浏览器中我们现在可以在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”文件。

&STYLES=''&FORMAT=image/png

最后,输出格式是png图像,如 图 18.14 所示。

qgis_map_xje

图 18.14 输出格式#