3.2. Web地图服务(WMS)

这个 1.1.11.3.0 QGIS Server中实现的WMS标准提供了一个HTTP接口,用于请求从QGIS项目生成的地图或图例图像。典型的WMS请求定义了要使用的QGIS项目、要呈现的层以及要生成的图像格式。基本支持也可用于 Styled Layer Descriptor (SLD)

规格:

QGIS服务器提供的标准请求:

请求

描述

GetCapabilities

返回包含有关服务器的信息的XML元数据

GetMap

返回地图

GetFeatureInfo

检索像素位置的数据(几何图形和值

GetLegendGraphic

返回图例符号

GetStyle(s)

返回带有SLD格式的样式描述的XML文档

DescribeLayer

分别返回有关矢量和栅格图层的WFS和WCS可用性的信息

QGIS服务器提供的供应商请求:

请求

描述

GetPrint

返回QGIS布局

GetProjectSettings

返回有关QGIS服务器的特定信息

GetSchemaExtension

返回有关可选扩展功能的XML元数据

3.2.1. GetCapabilities

的标准参数 GetCapabilities 根据OGC WMS 1.1.1和1.3.0规范提出的请求:

参数

必填项

描述

SERVICE

服务的名称( WMS )

REQUEST

请求的名称( GetCapabilities )

VERSION

不是

服务的版本

这个 GetCapabilities Require还支持以下供应商参数:

参数

必填项

描述

MAP

QGIS工程文件

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetCapabilities

3.2.2. GetMap

的标准参数 GetMap 根据OGC WMS 1.1.1和1.3.0规范提出的请求:

参数

必填项

描述

SERVICE

服务的名称( WMS )

REQUEST

请求的名称( GetMap )

VERSION

服务的版本

LAYERS

不是

要显示的层

STYLES

不是

层的样式

SRS / CRS

坐标参考系

BBOX

地图范围

WIDTH

以像素为单位的图像宽度

HEIGHT

以像素为单位的图像高度

FORMAT

不是

图像格式

TRANSPARENT

不是

透明背景

SLD

不是

要用于设置样式的SLD的URL

SLD_BODY

不是

用于设置样式的内联SLD(XML)

除了标准版本外,QGIS Server还支持 redliningexternal WMS layers 以及以下额外参数:

参数

必填项

描述

MAP

QGIS工程文件

BGCOLOR

不是

指定背景颜色

DPI

不是

指定输出分辨率

IMAGE_QUALITY

不是

JPEG压缩

OPACITIES

不是

图层或组的不透明度

FILTER

不是

要素子集

SELECTION

不是

突出显示功能

FILE_NAME

不是

下载的文件的文件名

仅限于 FORMAT=application/dxf

FORMAT_OPTIONS

不是

指定文件格式的选项

仅限于 FORMAT=application/dxf

TILED

不是

在工作中 tiled mode

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetMap
&MAP=/home/qgis/projects/world.qgs
&LAYERS=mylayer1,mylayer2,mylayer3
&STYLES=style1,default,style3
&OPACITIES=125,200,125
&CRS=EPSG:4326
&WIDTH=400
&HEIGHT=400
&FORMAT=image/png
&TRANSPARENT=TRUE
&DPI=300
&TILED=TRUE

VERSION

此参数允许指定要使用的服务版本。的可用值。 VERSION 参数为:

  • 1.1.1

  • 1.3.0

根据版本号,预期会有细微的差异,后面将对以下参数进行解释:

  • CRS / SRS

  • BBOX

LAYERS

此参数允许指定要在地图上显示的层。姓名必须用逗号分隔。

此外,QGIS Server还引入了一些选项,可通过以下方式选择层:

允许按ID选择图层的项目选项位于 QGIS Server ► WMS 选项卡中的 Project ► Properties... 对话框中。查看 Use layer ids as names 复选框以激活此选项。

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayerid1,mylayerid2
&...

STYLES

此参数可用于指定渲染步骤的层样式。样式必须用逗号分隔。默认样式的名称为 default

SRS/CRS

此参数用于指示WMS中的地图输出空间参考系 1.1.1 并且必须形成如下形式 EPSG:XXXX 。请注意 CRS 如果当前版本为 1.1.1

对于WMS 1.3.0CRS 参数更可取,但是 SRS 也受支持。

请注意,如果两者都 CRSSRS 参数在请求中指示,则它是 VERSION 参数,这是决定性的。

在下一种情况下, SRS 参数保持不变,无论 VERSION 参数,因为 CRS 未注明:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&SRS=EPSG:2854
&...

在下一种情况下, SRS 参数,而不是 CRS 因为 VERSION 参数:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.1.1
&CRS=EPSG:4326
&SRS=EPSG:2854
&...

在下一种情况下, CRS 参数,而不是 SRS 因为 VERSION 参数:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&CRS=EPSG:4326
&SRS=EPSG:2854
&...

BBOX

此参数允许根据当前的CRS以单位指定地图范围。坐标必须用逗号分隔。

这个 BBOX 参数的格式如下所示 min_a,min_b,max_a,max_bab 轴定义根据当前的不同而不同 VERSION 参数:

  • 在WMS中 1.1.1 ,轴顺序始终为东/北

  • 在WMS中 1.3.0 ,轴排序取决于CRS权限

例如在以下情况下 EPSG:4326 和WMS 1.1.1a 是经度(东经)和 b 纬度(北纬),从而产生如下请求:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.1.1
&SRS=epsg:4326
&BBOX=-180,-90,180,90
&...

但在WMS的情况下 1.3.0 ,EPSG数据库中定义的轴顺序为北/东,因此 a 是纬度和 b 经度:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&CRS=epsg:4326
&BBOX=-90,-180,90,180
&...

WIDTH

此参数允许以像素为单位指定输出图像的宽度。

HEIGHT

此参数允许以像素为单位指定输出图像的高度。

FORMAT

此参数可用于指定地图图像的格式。可选值为:

  • jpg

  • jpeg

  • image/jpeg

  • image/png

  • image/png; mode=1bit

  • image/png; mode=8bit

  • image/png; mode=16bit

  • application/dxf :只有在WFS服务中具有读取访问权限的图层才会以DXF格式导出

    URL示例:

    http://localhost/qgisserver?
    SERVICE=WMS&VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=application/dxf
    &LAYERS=Haltungen,Normschacht,Spezialbauwerke
    &CRS=EPSG%3A21781
    &BBOX=696136.28844801,245797.12108743,696318.91114315,245939.25832905
    &WIDTH=1042
    &HEIGHT=811
    &FORMAT_OPTIONS=MODE:SYMBOLLAYERSYMBOLOGY;SCALE:250
    &FILE_NAME=plan.dxf
    

TRANSPARENT

此布尔参数可用于指定背景透明度。可选值为(不区分大小写):

  • TRUE

  • FALSE

但是,如果使用指示的图像格式 FORMAT 不同于巴新。

BGCOLOR

此参数允许指示地图图像的背景颜色。但是,它不能与 TRANSPARENT 参数在PNG图像的情况下(透明度优先)。颜色可以是文字的,也可以是十六进制的。

使用文字表示法的URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&BGCOLOR=green
&...

使用十六进制表示法的URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&BGCOLOR=0x00FF00
&...

DPI

此参数可用于指定请求的输出分辨率。

IMAGE_QUALITY

此参数仅适用于JPEG图像。默认情况下,JPEG压缩为 -1

您可以在中更改每个QGIS项目的默认设置 OWS Server ► WMS capabilities 菜单中的 Project ► Properties... 对话框中。如果要在 GetMap 请求,您可以使用 IMAGE_QUALITY 参数。

OPACITIES

不透明度值的逗号分隔列表。可以在层或组级别上设置不透明度。允许的值范围为 0 (完全透明)至 255 (完全不透明)。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&WIDTH=400
&HEIGHT=200
&CRS=EPSG:4326
&LAYERS=countries,places
&BBOX=42,-6,52,15
&OPACITIES=255,0
../../../_images/wms_getmap_opacities.png

图 3.2 往左走 OPACITIES=255,0 向右转 OPACITIES=255,255

FILTER

可使用选择的图层子集 FILTER 参数。语法与QGIS子集字符串的语法基本相同。但是,有一些限制可以避免通过QGIS Server将SQL注入数据库。如果在参数中发现危险字符串,QGIS服务器将返回下一个错误:

<ServiceExceptionReport>
  <ServiceException code="Security">The filter string XXXXXXXXX has been rejected because of security reasons.
  Note: Text strings have to be enclosed in single or double quotes. A space between each word / special character is mandatory.
  Allowed Keywords and special characters are IS,NOT,NULL,AND,OR,IN,=,<,=<,>,>=,!=,',',(,),DMETAPHONE,SOUNDEX.
  Not allowed are semicolons in the filter expression.</ServiceException>
</ServiceExceptionReport>

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&VERSION=1.3.0
&WIDTH=400
&HEIGHT=300
&CRS=EPSG:4326
&BBOX=41,-6,52,10
&LAYERS=countries_shapeburst,countries,places
&FILTER=countries_shapeburst,countries:"name" = 'France';places: "name" = 'Paris'
../../../_images/wms_getmap_filter.png

图 3.3 服务器对带有筛选器参数的GetMap请求的响应

在本例中,相同的过滤器 "name" = 'France' 应用于层 countriescountries_shapeburst ,而过滤器 "name" = 'Paris' 仅适用于 places

备注

可以通过GetFeatureInfo进行属性搜索,如果有过滤器,则省略X/Y参数。然后,QGIS服务器返回有关匹配要素的信息,并在XML输出中生成一个组合边界框。

SELECTION

这个 SELECTION 参数可以高亮显示一个或多个层中的要素。可以通过传递带有功能ID的逗号分隔列表来选择矢量功能。

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayer1,mylayer2
&SELECTION=mylayer1:3,6,9;mylayer2:1,5,6
&...

下图显示了使用 SELECTION 选项例如 http://myserver.com/...&SELECTION=countries:171,65

因为源数据集中的这些要素ID对应于 FranceRomania 它们以黄色突出显示。

../../../_images/server_selection_parameter.png

图 3.4 服务器对带有选择参数的GetMap请求的响应

FORMAT_OPTIONS

此参数可用于指定所选格式的选项。仅限于 FORMAT=application/dxf 在GetMap请求中。获取用分号分隔的键:值对的列表:

  • 比例:用于符号系统规则、过滤器和样式(不是数据的实际比例-数据保留原始比例)。

  • 模式:对应于QGIS Desktop DXF导出对话框中提供的导出选项。可能的值包括 NOSYMBOLOGYFEATURESYMBOLOGYSYMBOLLAYERSYMBOLOGY

  • LAYERSATTRIBUTES:指定包含DXF图层名的值的字段-如果未指定,将使用原始QGIS图层名。

  • USE_TITLE_AS_LAYERNAME:如果启用,层的标题将用作层名称。

  • 编解码器:指定要用于编码的编解码器。缺省值为 ISO-8859-1 检查QGIS桌面DXF导出对话框中的有效值。

  • NO_MTEXT:对标签使用文字而不是多行文字。

  • FORCE_2D:强制2D输出。这是多段线宽度所必需的。

TILED

出于性能原因,QGIS服务器可以在平铺模式下使用。在这种模式下,客户端请求几个固定大小的小瓷砖,并将它们组合在一起形成整个地图。执行此操作时,两个瓷砖之间边界上或附近的符号可能会显示为切割,因为它们只出现在其中一个瓷砖中。

设置 TILED 参数设置为 TRUE 通知QGIS服务器在中工作 tiled 模式,并将 Tile buffer 在QGIS项目中配置(请参见 配置您的项目 )。

什么时候 TILEDTRUE 在QGIS项目中配置非零的平铺缓冲区时,将绘制平铺范围之外的要素,以避免在平铺边界处使用剪切符号。

TILED 默认为 FALSE

3.2.3. GetFeatureInfo

的标准参数 GetFeatureInfo 根据OGC WMS 1.1.1和1.3.0规范提出的请求:

参数

必填项

描述

SERVICE

服务的名称( WMS )

REQUEST

请求的名称( GetFeatureInfo )

VERSION

不是

服务的版本

QUERY_LAYERS

要查询的层

LAYERS

要显示的层(等同于 QUERY_LAYERS )

STYLES

不是

层的样式

SRS / CRS

坐标参考系

BBOX

不是

地图范围

WIDTH

以像素为单位的图像宽度

HEIGHT

以像素为单位的图像高度

TRANSPARENT

不是

透明背景

INFO_FORMAT

不是

输出格式

FEATURE_COUNT

不是

要返回的最大要素数

I

不是

要查询的点的像素列

X

不是

相同于 I 参数,但在WMS 1.1.1中

J

不是

要查询的点的像素行

Y

不是

相同于 J 参数,但在WMS 1.1.1中

WMS_PRECISION

不是

返回几何时使用的精度(位数)(请参见 how to add geometry to feature response )。缺省值为 -1 这意味着使用了项目中定义的精度。

除了标准参数外,QGIS Server还支持以下额外参数:

参数

必填项

描述

MAP

QGIS工程文件

FILTER

不是

要素子集

FI_POINT_TOLERANCE

不是

点图层的容差(以像素为单位

FI_LINE_TOLERANCE

不是

线条图层的容差(以像素为单位

FI_POLYGON_TOLERANCE

不是

面层的容差(以像素为单位

FILTER_GEOM

不是

几何图形过滤

WITH_DISPLAY_NAME

不是

将要素显示名称添加到输出

WITH_MAPTIP

不是

将地图提示添加到输出

WITH_GEOMETRY

不是

将几何添加到输出

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetMap
&MAP=/home/qgis/projects/world.qgs
&LAYERS=mylayer1,mylayer2,mylayer3
&CRS=EPSG:4326
&WIDTH=400
&HEIGHT=400
&INFO_FORMAT=text/xml
&TRANSPARENT=TRUE
&QUERY_LAYERS=mylayer1
&FEATURE_COUNT=3
&I=250
&J=250

INFO_FORMAT

此参数可用于指定结果的格式。可选值为:

  • text/xml

  • text/html

  • text/plain

  • application/vnd.ogc.gml

  • application/json

QUERY_LAYERS

此参数指定要在地图上显示的层。姓名之间用逗号隔开。

此外,QGIS Server还引入了通过以下方式选择层的选项:

  • 简称

  • 层ID

请参阅 LAYERS 中定义的参数 GetMap 以获取更多信息。

FEATURE_COUNT

此参数指定要返回的每层要素的最大数量。例如,如果 QUERY_LAYERS 设置为 layer1,layer2FEATURE_COUNT 设置为 3 那么最多将返回Layer1中的3个要素。同样,来自第二层的最多3个要素将被返回。

默认情况下,每个图层仅返回1个要素。

I

此参数在WMS 1.3.0中定义,允许您指定查询点的像素列。

X

与相同的参数 I ,但在WMS 1.1.1中定义。

J

此参数在WMS 1.3.0中定义,允许您指定查询点的像素行。

Y

与相同的参数 J ,但在WMS 1.1.1中定义。

FI_POINT_TOLERANCE

此参数以像素为单位指定点层的公差。

FI_LINE_TOLERANCE

此参数以像素为单位指定线条层的公差。

FI_POLYGON_TOLERANCE

此参数以像素为单位指定多边形层的公差。

FILTER_GEOM

此参数指定要素必须与之相交的WKT几何图形。

WITH_DISPLAY_NAME

此参数指定是否将要素显示名称添加到输出。

可选值为(不区分大小写):

  • TRUE

  • FALSE

WITH_MAPTIP

此参数指定是否将地图提示添加到输出。

可选值为(不区分大小写):

  • TRUE

  • FALSE

WITH_GEOMETRY

此参数指定是否将几何图形添加到输出。要使用此功能,您必须首先启用 Add geometry to feature response QGIS项目中的选项。看见 Configure your project

可选值为(不区分大小写):

  • TRUE

  • FALSE

3.2.4. GetLegendGraphic

的标准参数 GetLegendGraphic 根据OGC WMS 1.1.1和1.3.0规范提出的请求:

参数

必填项

描述

SERVICE

服务的名称( WMS )

REQUEST

请求的名称( GetLegendGraphic )

VERSION

不是

服务的版本

LAYERS

要显示的层

STYLES

不是

层的样式

SRS / CRS

不是

坐标参考系

BBOX

不是

地图范围

WIDTH

不是

以像素为单位的图像宽度

HEIGHT

不是

以像素为单位的图像高度

FORMAT

不是

图例格式

TRANSPARENT

不是

透明背景

除标准参数外,QGIS Server还支持额外的参数来更改图例元素的大小或图层标题和项目标签的字体属性:

参数

必填项

描述

MAP

QGIS工程文件

SRCWIDTH

不是

贴图宽度

SRCHEIGHT

不是

贴图高度

SHOWFEATURECOUNT

不是

添加要素的要素计数

RULE

不是

要呈现的规则符号

RULELABEL

不是

项目标签渲染

BOXSPACE

不是

图例框架和内容之间的间距(Mm)

LAYERSPACE

不是

层之间的垂直间距(Mm)

LAYERTITLESPACE

不是

层标题和项目之间的垂直间距(Mm)

SYMBOLSPACE

不是

符号和项目之间的垂直间距(Mm)

ICONLABELSPACE

不是

符号和标签之间的水平间距(Mm)

SYMBOLWIDTH

不是

符号预览的宽度(Mm)

SYMBOLHEIGHT

不是

符号预览的高度(Mm)

LAYERTITLE

不是

层标题渲染

LAYERFONTFAMILY

不是

图层字体系列

LAYERFONTBOLD

不是

层标题粗体渲染

LAYERFONTSIZE

不是

层标题字体大小(Pt)

LAYERFONTITALIC

不是

层标题斜体渲染

LAYERFONTCOLOR

不是

层标题颜色

ITEMFONTFAMILY

不是

项目字体系列

ITEMFONTBOLD

不是

项标签粗体呈现

ITEMFONTSIZE

不是

项目标签字体大小(Pt)

ITEMFONTITALIC

不是

项目标签斜体呈现

ITEMFONTCOLOR

不是

项目标签颜色

BBOX

此参数可用于指定应为其构建图例的地理区域(描述了其格式 here ),但不能与 RULE parameter. The SRS/CRS 参数在使用 BBOX 参数。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326

备注

BBOX 参数,则图例称为 content based legend

WIDTH

默认情况下不使用此参数,但当 RULE 参数已设置。在这种情况下,它允许以像素为单位指定输出图像的宽度。

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=getlegendgraphic
&LAYER=testlayer%20%C3%A8%C3%A9
&RULE=rule1
&WIDTH=30
&HEIGHT=30

HEIGHT

默认情况下不使用此参数,但当 RULE 参数已设置。在这种情况下,它允许以像素为单位指定输出图像的高度。

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYER=testlayer%20%C3%A8%C3%A9
&RULE=rule1
&WIDTH=30
&HEIGHT=30

FORMAT

该参数可用于指定图例图像的格式。可选值为:

  • image/jpeg

  • image/png

  • application/json

对于JSON,符号使用Base64编码,并且不考虑与布局或字体相关的大多数其他选项,因为图例必须在客户端构建。这个 RULE 参数不能与此格式组合。

URL示例和相应的JSON输出:

http://localhost/qgisserver?
SERVICE=WMS&
REQUEST=GetLegendGraphic&
LAYERS=airports&
FORMAT=application/json

和相应的JSON输出:

{
  "nodes":[
    {
      "icon":"<base64 icon>",
      "title":"airports",
      "type":"layer"
    }
  ],
  "title":""
}

SRCWIDTH

时可以定义此参数。 RULE 参数已设置。在这种情况下, SRCWIDTH 值被转发到基础 GetMap 请求作为 WIDTH 参数,而 WIDTH 的参数 GetLegendGraphic 用于图像图例大小。

SRCHEIGHT

时可以定义此参数。 RULE 参数已设置。在这种情况下, SRCHEIGHT 值被转发到基础 GetMap 请求作为 HEIGHT 参数,而 HEIGHT 的参数 GetLegendGraphic 用于图像图例大小。

SHOWFEATURECOUNT

此参数可用于激活图例中的要素计数。可选值为(不区分大小写):

  • TRUE

  • FALSE

例如:

../../../_images/getfeaturecount_legend.png

RULE

此参数在具有以下条件的图层上可用 Rule-based 渲染,并允许仅使用命名的规则符号构建图例。它不能与 BBOX 参数,也不是JSON格式。 HEIGHTWIDTH 必须指定。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=mylayer,
&RULE=myrulename,
&WIDTH=20,
&HEIGHT=20

RULELABEL

此参数允许控制项目标签呈现。可选值为(不区分大小写):

  • TRUE :显示项目标签

  • FALSE :隐藏项目标签

  • AUTO :使用隐藏层的项目标签 Single symbol 渲染

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&RULELABEL=AUTO
../../../_images/wms_getlegendgraphic_rulelabel.png

图 3.5 单个符号图层的无标签图例渲染

BOXSPACE

此参数允许以毫米为单位指定图例框架和内容之间的间距。默认情况下,空间值为 2 嗯。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&BOXSPACE=0
../../../_images/wms_getlegendgraphic_boxspace.png

图 3.6 往左走 BOXSPACE=0 向右转 BOXSPACE=15

LAYERSPACE

此参数允许以毫米为单位指定层之间的垂直间距。默认情况下,空间值为 3 嗯。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERSPACE=0
../../../_images/wms_getlegendgraphic_layerspace.png

图 3.7 往左走 LAYERSPACE=0 向右转 LAYERSPACE=10

LAYERTITLESPACE

此参数允许以毫米为单位指定层标题和项目之间的垂直间距。默认情况下,空间值为 3 嗯。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERTITLESPACE=0
../../../_images/wms_getlegendgraphic_layertitlespace.png

图 3.8 往左走 LAYERTITLESPACE=0 向右转 LAYERTITLESPACE=10

SYMBOLSPACE

此参数允许以毫米为单位指定符号和项目之间的垂直间距。默认情况下,空间值为 2 嗯。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLSPACE=0
../../../_images/wms_getlegendgraphic_symbolspace.png

图 3.9 往左走 SYMBOLSPACE=0 向右转 SYMBOLSPACE=5

ICONLABELSPACE

此参数允许以毫米为单位指定符号和标签文本之间的水平间距。默认情况下,空间值为 2 嗯。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=getlegendgraphic
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ICONLABELSPACE=0
../../../_images/wms_getlegendgraphic_iconlabelspace.png

图 3.10 往左走 ICONLABELSPACE=0 向右转 ICONLABELSPACE=10

SYMBOLWIDTH

此参数允许以毫米为单位指定符号预览的宽度。默认情况下,宽度值为 7 嗯。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLWIDTH=2
../../../_images/wms_getlegendgraphic_symbolwidth.png

图 3.11 往左走 SYMBOLWIDTH=2 向右转 SYMBOLWIDTH=20

SYMBOLHEIGHT

此参数允许以毫米为单位指定符号预览的高度。默认情况下,高度值为 4 嗯。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries,
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&SYMBOLHEIGHT=2
../../../_images/wms_getlegendgraphic_symbolheight.png

图 3.12 往左走 SYMBOLHEIGHT=2 向右转 SYMBOLHEIGHT=6

LAYERTITLE

此参数指定是否渲染层标题。

可选值为(不区分大小写):

  • TRUE (默认值)

  • FALSE

LAYERFONTFAMILY

此参数指定用于呈现层标题的字体系列。

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries
&LAYERFONTFAMILY=monospace

LAYERFONTBOLD

此参数指定层标题是否以粗体呈现。可选值为(不区分大小写):

  • TRUE

  • FALSE

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTBOLD=TRUE
../../../_images/wms_getlegendgraphic_layerfontbold.png

图 3.13 传说中的 LAYERFONTBOLD=TRUE

LAYERFONTSIZE

此参数指定用于以磅为单位呈现层标题的字体大小。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTSIZE=20
../../../_images/wms_getlegendgraphic_layerfontsize.png

图 3.14 传说中的 LAYERFONTSIZE=20

LAYERFONTITALIC

此参数指定层标题是否以斜体呈现。可选值为(不区分大小写):

  • TRUE

  • FALSE

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTITALIC=TRUE
../../../_images/wms_getlegendgraphic_layerfontitalic.png

图 3.15 传说中的 LAYERFONTITALIC=TRUE

LAYERFONTCOLOR

此参数指定层标题颜色。颜色可以是字面颜色 (redgreen 、..)或以十六进制记数法表示 (0xFF00000x00FF00 、...)。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&LAYERFONTCOLOR=0x5f9930
../../../_images/wms_getlegendgraphic_layerfontcolor.png

图 3.16 传说中的 LAYERFONTCOLOR=0x5f9930

ITEMFONTFAMILY

此参数指定用于呈现项标签的字体系列。

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=countries
&ITEMFONTFAMILY=monospace

ITEMFONTBOLD

此参数指定项标签是否以粗体呈现。可选值为(不区分大小写):

  • TRUE

  • FALSE

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTBOLD=TRUE
../../../_images/wms_getlegendgraphic_itemfontbold.png

图 3.17 传说中的 ITEMFONTBOLD=TRUE

ITEMFONTSIZE

此参数指定用于以磅为单位呈现层标题的字体大小。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTSIZE=20
../../../_images/wms_getlegendgraphic_itemfontsize.png

图 3.18 传说中的 ITEMFONTSIZE=30

ITEMFONTITALIC

此参数指定项标签是否以斜体呈现。可选值为(不区分大小写):

  • TRUE

  • FALSE

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTITALIC=TRUE
../../../_images/wms_getlegendgraphic_itemfontitalic.png

图 3.19 传说中的 ITEMFONTITALIC=TRUE

ITEMFONTCOLOR

此参数指定项目标签颜色。颜色可以是字面颜色 (redgreen 、..)或以十六进制记数法表示 (0xFF00000x00FF00 、...)。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetLegendGraphic
&LAYERS=airports,places
&BBOX=43.20,-2.93,49.35,8.32
&CRS=EPSG:4326
&TRANSPARENT=TRUE
&ITEMFONTCOLOR=0x5f9930
../../../_images/wms_getlegendgraphic_itemfontcolor.png

图 3.20 传说中的 ITEMFONTCOLOR=0x5f9930

3.2.5. GetStyle(S)

的标准参数 GetStyle (或 GetStyles )根据OGC WMS 1.1.1规范请求:

参数

必填项

描述

SERVICE

服务的名称( WMS )

REQUEST

请求的名称( GetStyleGetStyles )

LAYERS

要查询的层

这个 GetStyle Require还支持以下供应商参数:

参数

必填项

描述

MAP

QGIS工程文件

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetStyles
&LAYERS=mylayer1,mylayer2

3.2.6. DescribeLayer

的标准参数 DescribeLayer 根据OGC WMS 1.1.1和1.3.0规范提出的请求:

参数

必填项

描述

SERVICE

服务的名称( WMS )

REQUEST

请求的名称( DescribeLayer )

LAYERS

要描述的层

SLD_VERSION

SLD版本

这个 DescribeLayer Require还支持以下供应商参数:

参数

必填项

描述

MAP

QGIS工程文件

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=DescribeLayer
&SLD_VERSION=1.1.0
&LAYERS=mylayer1

该XML文档如下所示:

<DescribeLayerResponse xmlns="http://www.opengis.net/sld" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:se="http://www.opengis.net/se" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/DescribeLayer.xsd">
    <Version>1.1.0</Version>
    <LayerDescription>
        <owsType>wfs</owsType>
        <se:OnlineResource xlink:href="http://localhost/qgisserver" xlink:type="simple"/>
        <TypeName>
            <se:FeatureTypeName>my_vector_layer</se:FeatureTypeName>
        </TypeName>
    </LayerDescription>
    <LayerDescription>
        <owsType>wcs</owsType>
        <se:OnlineResource xlink:href="http://localhost/qgisserver" xlink:type="simple"/>
        <TypeName>
            <se:FeatureTypeName>my_raster_layer</se:FeatureTypeName>
        </TypeName>
    </LayerDescription>
</DescribeLayerResponse>

SLD_VERSION

此参数允许指定SLD的版本。只有价值 1.1.0 是可用的。

3.2.7. GetPrint

QGIS服务器能够创建pdf或像素格式的打印布局输出。已发布项目中的打印布局窗口用作模板。在 GetPrint 请求时,客户端可以指定所包含的布局地图和标签的参数。

这个 GetPrint 请求支持 redliningexternal WMS layers 以及以下参数:

参数

必填项

描述

MAP

QGIS工程文件

SERVICE

服务的名称( WMS )

REQUEST

请求的名称( GetPrint )

VERSION

不是

服务的版本

LAYERS

不是

要显示的层

TEMPLATE

要使用的布局模板

SRS / CRS

坐标参考系

FORMAT

不是

输出格式

FORMAT_OPTIONS

不是

指定文件格式的选项

仅限于 FORMAT=application/pdf

ATLAS_PK

不是

地图集特写

STYLES

不是

层的样式

TRANSPARENT

不是

透明背景

OPACITIES

不是

图层或组的不透明度

SELECTION

不是

突出显示功能

mapX:EXTENT

不是

地图‘X’的范围

mapX:LAYERS

不是

地图‘X’的层

mapX:STYLES

不是

地图‘X’的Layers样式

mapX:SCALE

不是

地图‘X’的层比例

mapX:ROTATION

不是

地图‘X’的旋转

mapX:GRID_INTERVAL_X

不是

地图‘X’的x轴上的栅格间隔

mapX:GRID_INTERVAL_Y

不是

地图‘X’的y轴上的栅格间隔

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetPrint
&MAP=/home/qgis/projects/world.qgs
&CRS=EPSG:4326
&FORMAT=png
&TEMPLATE=Layout%201
&map0:EXTENT=-180,-90,180,90
&map0:LAYERS=mylayer1,mylayer2,mylayer3
&map0:OPACITIES=125,200,125
&map0:ROTATION=45

请注意,布局模板可能包含多个地图。通过这种方式,如果要配置特定地图,则必须使用 mapX: 参数,其中 X 是一个可以检索的正数,这要归功于 GetProjectSettings 请求。

例如:

<WMS_Capabilities>
...
<ComposerTemplates xsi:type="wms:_ExtendedCapabilities">
<ComposerTemplate width="297" height="210" name="Druckzusammenstellung 1">
<ComposerMap width="171" height="133" name="map0"/>
<ComposerMap width="49" height="46" name="map1"/></ComposerTemplate>
</ComposerTemplates>
...
</WMS_Capabilities>

TEMPLATE

此参数可用于指定要用于打印的布局模板的名称。

FORMAT

此参数指定地图图像的格式。可选值为:

  • png (默认值)

  • image/png

  • jpg

  • jpeg

  • image/jpeg

  • svg

  • image/svg

  • image/svg+xml

  • pdf

  • application/pdf

如果 FORMAT 参数与这些值之一不同,则返回异常。

FORMAT_OPTIONS

此参数可用于指定所选格式的选项。仅限于 FORMAT=application/pdf 在GetPrint请求中。获取用分号分隔的键:值对的列表:

  • RASTERIZE_WHOLE_IMAGE :是否应将整个pdf导出为图像。默认值:FALSE。

  • FORCE_VECTOR_OUTPUT :是否应将pdf导出为矢量。默认值:FALSE。

  • APPEND_GEOREFERENCE :是否应将地理参考信息添加到pdf中。默认值:True。

  • EXPORT_METADATA :是否应将元数据添加到pdf。默认值:True。

  • TEXT_RENDER_FORMAT :设置pdf导出的文本呈现格式。它可以是 AlwaysOutlines (默认)或 AlwaysText

  • SIMPLIFY_GEOMETRY :是否应简化特征几何图形。默认值:True。

  • WRITE_GEO_PDF :是否应导出GeoPDF。默认值:FALSE。

  • USE_ISO_32000_EXTENSION_FORMAT_GEOREFERENCING :是否使用Iso32000地理配准。默认值:FALSE。

  • USE_OGC_BEST_PRACTICE_FORMAT_GEOREFERENCING :是否应使用OGC最佳做法地理配准。默认值:FALSE。

  • EXPORT_THEMES :用于GeoPDF导出的地图主题的逗号分隔列表

  • PREDEFINED_MAP_SCALES :用于渲染地图的地图比例的逗号分隔列表

  • LOSSLESS_IMAGE_COMPRESSION :是否必须使用无损算法压缩嵌入到pdf中的图像。默认值:FALSE。

  • DISABLE_TILED_RASTER_RENDERING :在pdf中是否应解开栅格。默认值:FALSE。

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetPrint
&MAP=/home/qgis/projects/world.qgs
&CRS=EPSG:4326
&FORMAT=pdf
&TEMPLATE=Layout%201
&FORMAT_OPTIONS=FORCE_VECTOR_OUTPUT:TRUE;TEXT_RENDER_FORMAT:AlwaysOutlines;PREDEFINED_MAP_SCALES:250

ATLAS_PK

此参数允许通过指示要打印的功能来激活Atlas渲染。为了检索包含所有特征的地图集, * 可以使用符号(根据项目配置中允许的最大功能数量)。

什么时候 FORMATpdf ,则返回组合了功能页的单个PDF文档。对于所有其他格式,返回单个页面。

MapX:范围

此参数将布局地图项目的范围指定为xmin、ymin、xmax、ymax。

贴图X:旋转

此参数以度为单位指定贴图旋转。

地图X:栅格_间隔_X

此参数指定X方向上的网格线密度。

贴图X:栅格_间隔_Y

此参数指定Y方向上的网格线密度。

贴图X:比例

此参数指定布局地图项的地图比例。这对于确保基于比例的层和标签的可见性非常有用,即使客户端和服务器可能有不同的算法来计算比例分母。

贴图X:层

此参数指定布局地图项目的层。看见 GetMap Layers 有关此参数的详细信息,请参阅。

MapX:样式

此参数指定在特定布局地图项中定义的层的样式。看见 GetMap Styles 有关此参数的详细信息,请参阅。

3.2.8. GetProjectSettings

此请求类型的工作方式类似于 GetCapabilities ,但它更特定于QGIS服务器,并允许客户端读取中没有的附加信息 GetCapabilities 输出:

  • 层的初始可见性

  • 有关矢量属性及其编辑类型的信息

  • 有关图层顺序和绘图顺序的信息

  • 在WFS中发布的图层列表

  • 显示层树中的组是否为 mutually exclusive

这个 GetProjectSettings 请求支持以下参数:

参数

必填项

描述

MAP

QGIS工程文件

SERVICE

服务的名称( WMS )

REQUEST

请求的名称( GetProjectSettings )

3.2.9. GetSchemaExtension

这个 GetSchemaExtension 请求允许检索WMS服务的可选扩展功能和操作,例如由QGIS服务器实现的。

参数

必填项

描述

MAP

QGIS工程文件

SERVICE

服务的名称( WMS )

REQUEST

请求的名称( GetSchemaExtension )

URL示例:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetSchemaExtension

该XML文档如下所示:

<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wms="http://www.opengis.net/wms" xmlns:qgs="http://www.qgis.org/wms" targetNamespace="http://www.qgis.org/wms" elementFormDefault="qualified" version="1.0.0">
    <import namespace="http://www.opengis.net/wms" schemaLocation="http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd"/>
    <element name="GetPrint" type="wms:OperationType" substitutionGroup="wms:_ExtendedOperation"/>
    <element name="GetStyles" type="wms:OperationType" substitutionGroup="wms:_ExtendedOperation"/>
</schema>

3.2.10. 外部WMS图层

QGIS服务器允许在WMS中包含外部WMS服务器中的图层 GetMap 和WMS GetPrint 请求。这在Web客户端使用Web地图中的外部背景层时特别有用。出于性能原因,此类层应由Web客户端直接请求(而不是通过QGIS服务器级联)。然而,对于打印,这些图层应该通过QGIS服务器层叠才能显示在打印的地图中。

外部层可以作为EXTERNAL_WMS:<layername>添加到Layers参数。用于外部WMS层的参数(例如,URL、Format、dpiModel、CRS、Layers、Style)稍后可以作为服务参数给出。在一个 GetMap 请求,则可能如下所示:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=EXTERNAL_WMS:basemap,layer1,layer2
&OPACITIES=100,200,255
&STYLES=,,
&basemap:url=http://externalserver.com/wms.fcgi
&basemap:format=image/jpeg
&basemap:dpiMode=7
&basemap:crs=EPSG:2056
&basemap:layers=orthofoto
&basemap:styles=default

同样,外部层也可用于 GetPrint 请求:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetPrint
&TEMPLATE=A4
&map0:layers=EXTERNAL_WMS:basemap,layer1,layer2
&map0:EXTENT=<minx,miny,maxx,maxy>
&OPACITIES=100,200,255
&basemap:url=http://externalserver.com/wms.fcgi
&basemap:format=image/jpeg
&basemap:dpiMode=7
&basemap:crs=EPSG:2056
&basemap:layers=orthofoto
&basemap:styles=default

3.2.11. 红线批注

此功能可用,可与配合使用 GetMapGetPrint 请求。

红线显示功能可用于传递请求中的几何图形和标签,这些几何图形和标签由服务器重叠在标准返回的图像(地图)上。这允许用户将重点或可能添加一些注释(标签)到一些不在标准地图中的区域、位置等。

这个 GetMap 请求的格式为:

http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetMap
&HIGHLIGHT_GEOM=POLYGON((590000 5647000, 590000 6110620, 2500000 6110620, 2500000 5647000, 590000 5647000))
&HIGHLIGHT_SYMBOL=<StyledLayerDescriptor><UserStyle><Name>Highlight</Name><FeatureTypeStyle><Rule><Name>Symbol</Name><LineSymbolizer><Stroke><SvgParameter name="stroke">%23ea1173</SvgParameter><SvgParameter name="stroke-opacity">1</SvgParameter><SvgParameter name="stroke-width">1.6</SvgParameter></Stroke></LineSymbolizer></Rule></FeatureTypeStyle></UserStyle></StyledLayerDescriptor>
&HIGHLIGHT_LABELSTRING=Write label here
&HIGHLIGHT_LABELSIZE=16
&HIGHLIGHT_LABELCOLOR=%23000000
&HIGHLIGHT_LABELBUFFERCOLOR=%23FFFFFF
&HIGHLIGHT_LABELBUFFERSIZE=1.5

这个 GetPrint 等价物的格式为(请注意 mapX: 添加参数以告知哪个地图具有红线):

http://localhost/qgisserver?
SERVICE=WMS
&VERSION=1.3.0
&REQUEST=GetPrint
&map0:HIGHLIGHT_GEOM=POLYGON((590000 5647000, 590000 6110620, 2500000 6110620, 2500000 5647000, 590000 5647000))
&map0:HIGHLIGHT_SYMBOL=<StyledLayerDescriptor><UserStyle><Name>Highlight</Name><FeatureTypeStyle><Rule><Name>Symbol</Name><LineSymbolizer><Stroke><SvgParameter name="stroke">%23ea1173</SvgParameter><SvgParameter name="stroke-opacity">1</SvgParameter><SvgParameter name="stroke-width">1.6</SvgParameter></Stroke></LineSymbolizer></Rule></FeatureTypeStyle></UserStyle></StyledLayerDescriptor>
&map0:HIGHLIGHT_LABELSTRING=Write label here
&map0:HIGHLIGHT_LABELSIZE=16
&map0:HIGHLIGHT_LABELCOLOR=%23000000
&map0:HIGHLIGHT_LABELBUFFERCOLOR=%23FFFFFF
&map0:HIGHLIGHT_LABELBUFFERSIZE=1.5

下面是上面的请求输出的图像,其中在法线贴图的顶部绘制了一个多边形和一个标签:

../../../_images/server_redlining.png

图 3.21 服务器对带有红线批注参数的GetMap请求的响应

您可以看到,在此请求中有几个控制红线圈阅功能的参数。完整的名单包括:

  • HIGHLIGHT_GEOM :您可以添加点、多行、多边形等。它支持多部分几何图形。下面是一个例子: HIGHLIGHT_GEOM=MULTILINESTRING((0 0, 0 1, 1 1)) 。坐标应该在GetMap/GetPrint请求的CRS中。

  • HIGHLIGHT_LABELBUFFERCOLOR :此参数控制标签缓冲区颜色。

  • HIGHLIGHT_LABELBUFFERSIZE :此参数控制标签缓冲区大小。

  • HIGHLIGHT_LABELCOLOR :此参数控制标签颜色。

  • HIGHLIGHT_LABEL_DISTANCE :控制要素(例如,点或线)与标签之间的距离,单位为mm

  • HIGHLIGHT_LABELFONT :此参数控制标签的字体(例如Arial)

  • HIGHLIGHT_LABEL_HORIZONTAL_ALIGNMENT :使用指定的对齐方式将标签水平放置在点上(例如‘左’、‘中’、‘右’)

  • HIGHLIGHT_LABEL_ROTATION :控制标签旋转(以度为单位

  • HIGHLIGHT_LABELSIZE :此参数控制标签的大小。

  • HIGHLIGHT_LABELSTRING :您可以将标签文本传递给此参数。

  • HIGHLIGHT_LABEL_VERTICAL_ALIGNMENT :使用指定的对齐方式将标签垂直放置在点上(例如‘top’、‘Half’、‘Bottom’)

  • HIGHLIGHT_SYMBOL :此选项控制几何图形的轮廓,您可以更改笔划宽度、颜色和不透明度。