今天将继续分享QGIS 3.16工程文件属性的设置,包括宏(Macros)和QGIS服务器两个部分。

 01 宏(Macros)

【工程】->【属性】->【宏】标签页提供工程文件相关联的宏命令设置。

QGIS中的宏(Macros),指的是由一些列预定义的Python语句组成的批处理命令集合,凡是可以在Python控制台中执行的语句,均可以宏的形式执行。

目前,与工程文件绑定的宏仅提供了openProject(), saveProject() 和 closeProject(),分别对应于打开工程、保存工程和关闭工程时执行。默认情况下,工程文件的Python 宏处于未启用状态,下方的Python宏命令编辑区不可编辑,且三个宏只有一个语句:pass。在Python语言pass中表示空语句,不做任何事情,一般用做占位语句,是为了保持程序结构的完整性。

如果需要在一个工程文件打开时自动执行某些动作,可以勾选“Python 宏”复选框(一旦勾选,下方的Python宏命令编辑区将进入可编辑状态),在openProject()宏中将pass注释掉,加入自定义的Python语句,那么只要打开该工程,这些语句将自动执行。例如,我想让工程文件每次打开时提示消息:“这是一个测试工程”,可以在openProject()添加如下代码实现:

from qgis.gui import (    QgsMessageBar,)def openProject():    from qgis.core import Qgis  QgsMessageBar().pushMessage("测试", "这是一个测试宏", level=Qgis.Critical, duration=0)def saveProject():    passdef closeProject():    pass

红色框内的QgsMessageBar()为关键代码,表示输出一个名称为“测试”的消息,内容是“这是一个测试宏”,消息级别为“Critical”。

保存当前工程文件,当再次打开该工程时,在地图窗口上方将出现安全警告消息框,提示“Python宏当前无法运行”:

该警告是出于安全考虑,默认情况下QGIS不能运行未经允许的任何外部代码,点击右方的【启用宏】按钮,允许代码运行,此时可以在消息框看到自定义的消息内容:

如果要默认情况下启用宏,可以打开菜单【设置】->【选项】->【通用】->【是否启用宏】,将选项从“询问”改为“总是(不建议)”。

 02 QGIS服务器

如果要将制作好的地图发布到网络上,需要定义【工程】->【属性】->【QGIS服务器】标签页中的相关参数,包括服务器功能描述、WMS功能描述、WMTS功能描述、WFS功能描述和WCS功能描述,最后可以对所设置的元数据测试,以确认工程文件有效。

  • 服务功能描述

服务功能描述(Service Capabilities)提供OpenGIS网络服务的基本信息,它们将作为WMS、WFS、WMTS、WCS的元数据查询操作GetCapabilities的基本信息返回,出现在元数据XML文档的 <Service> 节点中。根据OGC标准,<Service> 最少应包含名称、标题和在线资源三项内容。

默认情况下,【服务功能描述】复选框处于未选中状态,此时QGIS Server将使用根目录下的cgi-bin/wms_metadata.xml作为地理信息共享元数据返回给用户。我们可以浏览到该目录查看wms_metadata.xml:

  • WMS功能描述

WMS即Web 地图服务,WMS功能描述包含详细的WMS服务元数据。

公布的范围:限制地图服务所发布的地理空间范围,通过输入横/纵坐标的最大/最小值定义。点击【使用当前地图画布范围】按钮可以将当前地图窗口的范围自动填入对应的参数框内。如果留空,则发布整个图层的范围。

坐标参照系限制:地图服务所支持的坐标参照系。坐标参照系作为GetMap的参数之一传入,决定了WMS返回的含地理空间位置信息的图片所使用的坐标系。点击 按钮弹出坐标系选择器(Coordinate Reference System Selector)对话框,可以选择所发布地图支持的坐标系,点击 删除,点击【已用】按钮,将当前工程中所使用的坐标系自动添加到支持列表。

排除布局:在打印布局方面,QGIS扩展了WMS 1.3.0规范,将工程文件中所包含的打印布局将发布到GetProjectSettings返回列表,通过GetPrint 请求使用打印布局为模版打印地图。

如果打印布局不需要通过WMS发布到网络上,勾选【排除布局】复选框,点击 按钮,把不发布的布局添加到排除列表即可。相反,点击 把打印布局从排除列表中删除。

排除图层:勾选【排除图层】,点击 按钮,从弹出的【选择限制图层和组】对话框中选中排除的图层添加到列表,可以避免将所选的图层或者图层组发布到WMS中。

INSPIRE(欧洲指令):欧盟空间信息基础设施建设(Infrastructure for Spatial Information in the European Community,简称 INSPIRE)是欧盟议会和欧盟理事会以立法方式颁布的欧洲空间信息基础设施建设法令,目的是建立欧盟统一的空间信息基础设施,实现环境空间信息在全欧盟范围内的共享,便于跨区域的政策决策及应用。

为了确保各参与国空间信息基础设施的兼容一致,INSPIRE在ISO和OGC规范的基础上, 提出了全欧洲范围内实现空间信息共享的总体框架和统一的执行法规,包括元数据、空间数据集、空间数据服务、网络服务、数据与服务共享政策、监督与报告机制等。

目前,欧盟大多数成员国均参与了INSPIRE,是数据共享领域不可忽视的力量,而QGIS Server的主要赞助商来自欧盟国家,因此在数据发布方面提供专门的模块支持其标准。

在【服务语言】下拉框可以选择元数据所基于的语言。元数据的来源有两种:一是外置引用元数据,需提供引用的URL和URL MIME/类型;二是嵌入的服务元数据。

使用图层标识符作为名称:默认情况下,对图层的操作使用图层名称来标识。勾选【使用图层标识符作为名称】后,可以将图层ID作为GetCapabilities操作的响应,用于标识图层,或者作为GetMap操作中LAYERS参数的取值。

给要素响应添加几何图形:该参数是QGIS扩展了OGC WMS的标准参数,表示GetFeatureInfo的响应是否包含几何图形。GetFeatureInfo默认的响应格式是XML,可指定为纯文本、GML和XML三种格式。

分段化要素信息几何图形:该参数处理GetFeatureInfo请求结果在某些客户端无法显示几何图形的圆弧的问题。由于有些Web客户端不能显示几何图形的圆弧,勾选【分段化要素信息几何图形】可以在GetFeatureInfo操作返回客户端前对几何图形进行分割,以便客户端能正确显示该几何图形。

GetFeatureInfo几何图形精度(小数位数):设置GetFeatureInfo 操作返回的几何图形精度,降低精度可以减少数据网络传输压力。

播发的URL:该参数设置WMS的 GetCapabilities中返回QGIS Server特殊的请求URL。

GetMap请求的最大值:通过设置最大高度和宽度,限制GetMap 请求的地图最大尺寸。

JPEG图像质量:设置WMS生成的地图图片质量,取值为0-100。0表示最大压缩比,图片质量最差;100表示无压缩,因此图片质量最佳。默认取值90。

地图集打印请求的最大要素数目:在一次请求中,地图集打印的最大要素数量。减少要素数量可以降低网络传输压力。

图块缓冲区,单位为像素:设置QGIS Server 瓦片模式下缓冲区的大小。为了提高性能,QGIS Server的WMS服务可以在瓦片模式下工作,即将客户请求的地图分割为固定大小的小瓦片进行传输,客户端通过拼接接收到的瓦片合成整个地图。此时,瓦片边界附近的要素符号可能被两个瓦片切割,影响了地图的显示效果。当缓冲区大小不为0时,瓦片边缘的符号如果在缓冲区范围内,将被完整绘制出来。

图例中每毫米对应的默认地图单位:设置图例与地图单位的对应关系。

  • WMTS功能描述

WMTS全称为Web地图瓦片服务(Web Map Tile Service),QGIS Server的WMTS标准基于OGC WMTS 1.0.0规范,使用HTTP接口请求QGIS工程生成的瓦片地图。

已发布的图层:列出当前工程中所打开的所有图层,通过在对应的方框打勾可以选择是否发布该图层为WMTS以及返回的地图图片采用何种格式,可选返回PNG和JEPG。JEPG支持图片压缩,但是不能设置透明度;相反,PNG格式的图片分辨率高,支持透明设置,但是图片较大。

网格:指的是瓦片网格(Tile Grid),即WMTS返回的地图瓦片坐标系,通俗地说,是一个地图瓦片在当前缩放层级(z level)的行列坐标。此处,网格指的是QGIS根据所设定的地图范围、出图坐标系、坐标原点和缩放等级计算出地图的瓦片矩阵,作为GetCapabilities操作的返回结果。

需要注意的是,根据github多个issues的反馈,虽然QGIS声明支持所有坐标系生成瓦片,但是目前使用WGS84和web墨卡托之外的坐标系生成的瓦片存在问题,所以建议尽量使用WGS84或者web墨卡托作为WMTS的坐标参照系。

最小比例:生成瓦片的最小比例尺。

播发的URL(Advertised URL):设置WMTS的GetCapabilities响应中发布的特定URL。

  • WFS功能描述

Web 要素服务(WFS)支持对地理要素的插入、更新、删除、检索和发现服务。WFS功能描述设置工程中发布为WFS服务的图层。

图层列表:勾选已发表列的方框,可以将图层发布为WFS服务。图形精度(小数位数)表示发布图形所使用的几何图形坐标精度,默认保留8位小数,小数位数越多,数据越精确,但是数据量也随之增大。更新/插入/删除指的是是否允许通过WFS服务对数据进行更新/插入/删除操作。

全选/全部不选:提供已发表列的快捷操作,可以一键勾选以发布全部图层或者取消发布,免去逐个图层进行勾选的繁琐。

播发的URL:在WFS GetCapabilities的响应中发布所设置的URL地址。

  • WCS功能描述

Web地理覆盖服务(WCS)提供的是包含了地理位置信息或属性的空间栅格图层,而不是静态地图的访问,根据HTTP客户端要求发送相应数据,包括影像,多光谱影像和其它科学数据。

图层列表:可以发布为WCS服务的图层,勾选表示该图层可以通过QGIS Server发布为网络服务。

全选/全部不选:提供图层列表的快捷操作,一键勾选/取消选择所有图层,免去逐个操作的繁琐。

播发的URL:在WCS GetCapabilities的响应中发布所设置的URL地址。

  • 测试配置

提供工程文件是否符合QGIS Server发布规则的测试。工程文件属性中所填写的内容,并不一定完全符合网络服务发布规范,通过简单的测试和再修改过程,可减少发布中出现的问题。

启动:启动测试。

结果输出区域:将测试结果输出到该区域。如果工程文件设置满足QGIS Server发布规则,显示“工程有效”,否则将显示错误的内容。

常见问题发生在图层的命名规则上,例如:图层名中以数字开头或者图层名包含中文,对QGIS Server来说都是无效字符,需要逐个修改为非重音字母开头,以字母、数字、点、下划线和破折号组成的英文图层名。

----------未完待续-------------


参考资料

[1].李大帅, 基于OGC的地图服务的研究与实现, 2009, 辽宁工程技术大学. 第 66页.

[2].王金传, 基于OGC标准的分布式地理信息服务链构建方法研究, 2019, 山东师范大学. 第 76页.

[3].朱雪征与李莉, 欧盟空间数据基础设施规划研究. 测绘通报, 2010(08): 第7-10页.

[4].顾炳中与申世亮, “欧盟空间信息基础设施”及对国土资源“一张图”建设的启示. 国土资源信息化, 2011(01): 第3-6页.

[5].刘荣梅, 缪谨励与赵林林, 欧盟空间信息基础设施建设(INSPIRE):兼议对中国地学信息化的启示. 地质通报, 2015. 34(08): 第1562-1569页.

版权声明

本文欢迎转载,转载时请注明出处。

QGIS基本功 | 22 QGIS工程文件属性设置(3)——宏、QGIS服务相关推荐

  1. QGIS基本功 | 21 QGIS工程文件属性设置(2)——坐标参照系、变换、默认样式、数据源、关系和变量

    今天继续分享工程文件属性的设置,包括工程坐标参照系.变换.默认样式.数据源.关系和变量六个部分.  01 坐标参照系 工程坐标参照系定义了当前地图窗口所使用的坐标系,决定了如何将数据从其底层原始坐标绘 ...

  2. arcgiss如何在空白点图层加入坐标_连载 | 21 QGIS工程文件属性设置(2)——坐标参照系、变换、默认样式、数据源、关系和变量...

    今天继续分享工程文件属性的设置,包括工程坐标参照系.变换.默认样式.数据源.关系和变量六个部分.  01  坐标参照系 工程坐标参照系定义了当前地图窗口所使用的坐标系,决定了如何将数据从其底层原始坐标 ...

  3. QGIS基本功 | 19 QGIS工程文件剖析

    ​ 01 工程文件(Project File) 工程文件(Project File)以XML文件存储当前QGIS会话(Session)的所有状态,包含地图相关图层.图层是否可查询.图层属性(符号和样式 ...

  4. QGIS基本功| 6 图层进阶(三)- 快速美化图层数据

    地图符号(Symbol)是地图的语言,是对地理要素空间形状的化简.概括和抽象,地图符号系统的实质是进行信息的表达和传递,因此符号系统的设计不仅直观地反映出地图"颜值",而且影响到空 ...

  5. QGIS基本功 | 16 要素渲染——地理数据可视化之道

    地理数据可视化能力是GIS区别于一般信息系统的核心功能,地图要素渲染( Features rendering)则是地理数据可视化的底层实现机制.需要根据数据类型选择合适的符号化和渲染方式,今天我们来聊 ...

  6. 【QGIS入门实战精品教程】3.3:QGIS如何打开ArcGIS创建的文件数据库(GDB)?

    在行业应用中,GIS地理空间数据往往存储在ESRI ArcGIS的文件地理数据库(File GeodataBase),因此,ArcGIS与QGIS的数据交互.共享就显得非常重要.QGIS3可以直接打开 ...

  7. 【QGIS入门实战精品教程】3.1:QGIS如何连接SQL Server数据库?

    文章目录 软件必备 测试SQL Server服务是否启动 QGIS与SQL Server建立连接 软件必备 SQL Server 2008 R2 QGIS 3.22.3 测试SQL Server服务是 ...

  8. [VS2010]在C#工程中设置Reference的相对路径

    在C#工程中设置Reference的相对路径 罗朝辉 (http://kesalin.cnblogs.com/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 要在C#工程中 ...

  9. 【QGIS入门实战精品教程】2.2:QGIS软件的下载与安装(Windows)

    文章目录 一.QGIS下载 二.QGIS安装​ 一.QGIS下载 QGIS软件官网下载地址:https://www.qgis.org/en/site/ 进入官网之后,点击[Download Now]进 ...

最新文章

  1. go mysql socket_Go语言实现socket实例
  2. php 的ob start,php ob_start()函数详解
  3. Web Service学习笔记
  4. Oracle-等待事件解读
  5. 使用docker运行微信wechat的安装脚本
  6. vue 插件 滑块验证_VUE接入腾讯验证码功能(滑块验证)备忘
  7. 央行数字货币研究所悄然挂牌 工作人员:已有一段时间
  8. Android学习笔记四十Preference使用
  9. Java笔记07-List、Set、数据结构、Collections
  10. 6月第1周安全回顾 Flash Player漏洞危机 邮件泄漏敏感信息
  11. SecureCRT 登录跳板机自动连接目标服务器
  12. 拓端tecdat|视频:R语言中的Stan概率编程MCMC采样的贝叶斯模型
  13. 2019美赛B题PSO算法
  14. Linux dstat监控工具简讲
  15. 中国北斗卫星导航系统
  16. 290万人考研:所有的不平凡,从不认命开始
  17. siki学院的飞机大作战UE4.26代码
  18. 斐讯n1盒子装网易音乐命令版
  19. android 黑白屏问题
  20. 笔记本win10 睡眠时会自动唤醒?修复后唤醒缓慢也解决了

热门文章

  1. 【前端修炼场】 — 认识前端了解HTML(筑基期)
  2. 自定义view实现未读消息提示(小红点)
  3. 三菱plc fx2N用梯形图写crc校验
  4. 【C++面向对象】C++中运算符重载的两种方式
  5. 二值图像分析:二值图像轮廓提取
  6. 调用免费API查询全年工作日、周末、法定节假日、节假日调休补班数据
  7. 英雄联盟-狗头学习笔记
  8. SAP BASIS ADM100 中文版 Unit 8(3)
  9. “逃离朋友圈”能否催生新微信
  10. win7计算机里桌面菜单没有反应,win7系统鼠标右键点击桌面没反应怎么办 鼠标右键没反应解决方法...