3.2. Web地图服务(WMS)
这个 1.1.1 和 1.3.0 QGIS Server中实现的WMS标准提供了一个HTTP接口,用于请求从QGIS项目生成的地图或图例图像。典型的WMS请求定义了要使用的QGIS项目、要呈现的层以及要生成的图像格式。基本支持也可用于 Styled Layer Descriptor (SLD) 。
规格:
QGIS服务器提供的标准请求:
请求 |
描述 |
---|---|
返回包含有关服务器的信息的XML元数据 |
|
返回地图 |
|
检索像素位置的数据(几何图形和值 |
|
返回图例符号 |
|
返回带有SLD格式的样式描述的XML文档 |
|
分别返回有关矢量和栅格图层的WFS和WCS可用性的信息 |
QGIS服务器提供的供应商请求:
请求 |
描述 |
---|---|
返回QGIS布局 |
|
返回有关QGIS服务器的特定信息 |
|
返回有关可选扩展功能的XML元数据 |
3.2.1. GetCapabilities
的标准参数 GetCapabilities 根据OGC WMS 1.1.1和1.3.0规范提出的请求:
参数 |
必填项 |
描述 |
---|---|---|
是 |
服务的名称( WMS ) |
|
是 |
请求的名称( GetCapabilities ) |
|
不是 |
服务的版本 |
这个 GetCapabilities Require还支持以下供应商参数:
参数 |
必填项 |
描述 |
---|---|---|
是 |
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规范提出的请求:
参数 |
必填项 |
描述 |
---|---|---|
是 |
服务的名称( WMS ) |
|
是 |
请求的名称( GetMap ) |
|
是 |
服务的版本 |
|
不是 |
要显示的层 |
|
不是 |
层的样式 |
|
是 |
坐标参考系 |
|
是 |
地图范围 |
|
是 |
以像素为单位的图像宽度 |
|
是 |
以像素为单位的图像高度 |
|
不是 |
图像格式 |
|
不是 |
透明背景 |
|
SLD |
不是 |
要用于设置样式的SLD的URL |
SLD_BODY |
不是 |
用于设置样式的内联SLD(XML) |
除了标准版本外,QGIS Server还支持 redlining , external WMS layers 以及以下额外参数:
参数 |
必填项 |
描述 |
---|---|---|
是 |
QGIS工程文件 |
|
不是 |
指定背景颜色 |
|
不是 |
指定输出分辨率 |
|
不是 |
JPEG压缩 |
|
不是 |
图层或组的不透明度 |
|
不是 |
要素子集 |
|
不是 |
突出显示功能 |
|
FILE_NAME |
不是 |
下载的文件的文件名 仅限于 |
不是 |
指定文件格式的选项 仅限于 |
|
不是 |
在工作中 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还引入了一些选项,可通过以下方式选择层:
一个 short name
层ID
允许按ID选择图层的项目选项位于 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.0 , CRS
参数更可取,但是 SRS
也受支持。
请注意,如果两者都 CRS
和 SRS
参数在请求中指示,则它是 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_b
但 a
和 b
轴定义根据当前的不同而不同 VERSION
参数:
在WMS中 1.1.1 ,轴顺序始终为东/北
在WMS中 1.3.0 ,轴排序取决于CRS权限
例如在以下情况下 EPSG:4326
和WMS 1.1.1 , a
是经度(东经)和 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项目的默认设置 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

图 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'

图 3.3 服务器对带有筛选器参数的GetMap请求的响应
在本例中,相同的过滤器 "name" = 'France'
应用于层 countries
和 countries_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对应于 France 和 Romania 它们以黄色突出显示。

图 3.4 服务器对带有选择参数的GetMap请求的响应
FORMAT_OPTIONS
此参数可用于指定所选格式的选项。仅限于 FORMAT=application/dxf
在GetMap请求中。获取用分号分隔的键:值对的列表:
比例:用于符号系统规则、过滤器和样式(不是数据的实际比例-数据保留原始比例)。
模式:对应于QGIS Desktop DXF导出对话框中提供的导出选项。可能的值包括
NOSYMBOLOGY
,FEATURESYMBOLOGY
和SYMBOLLAYERSYMBOLOGY
。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项目中配置(请参见 配置您的项目 )。
什么时候 TILED
是 TRUE
在QGIS项目中配置非零的平铺缓冲区时,将绘制平铺范围之外的要素,以避免在平铺边界处使用剪切符号。
TILED
默认为 FALSE
。
3.2.3. GetFeatureInfo
的标准参数 GetFeatureInfo 根据OGC WMS 1.1.1和1.3.0规范提出的请求:
参数 |
必填项 |
描述 |
---|---|---|
是 |
服务的名称( WMS ) |
|
是 |
请求的名称( GetFeatureInfo ) |
|
不是 |
服务的版本 |
|
是 |
要查询的层 |
|
是 |
要显示的层(等同于 QUERY_LAYERS ) |
|
不是 |
层的样式 |
|
是 |
坐标参考系 |
|
不是 |
地图范围 |
|
是 |
以像素为单位的图像宽度 |
|
是 |
以像素为单位的图像高度 |
|
不是 |
透明背景 |
|
不是 |
输出格式 |
|
不是 |
要返回的最大要素数 |
|
不是 |
要查询的点的像素列 |
|
不是 |
相同于 I 参数,但在WMS 1.1.1中 |
|
不是 |
要查询的点的像素行 |
|
不是 |
相同于 J 参数,但在WMS 1.1.1中 |
|
WMS_PRECISION |
不是 |
返回几何时使用的精度(位数)(请参见 how to add geometry to feature response )。缺省值为 |
除了标准参数外,QGIS Server还支持以下额外参数:
参数 |
必填项 |
描述 |
---|---|---|
是 |
QGIS工程文件 |
|
不是 |
要素子集 |
|
不是 |
点图层的容差(以像素为单位 |
|
不是 |
线条图层的容差(以像素为单位 |
|
不是 |
面层的容差(以像素为单位 |
|
不是 |
几何图形过滤 |
|
不是 |
将要素显示名称添加到输出 |
|
不是 |
将地图提示添加到输出 |
|
不是 |
将几何添加到输出 |
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,layer2
和 FEATURE_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规范提出的请求:
参数 |
必填项 |
描述 |
---|---|---|
是 |
服务的名称( WMS ) |
|
是 |
请求的名称( GetLegendGraphic ) |
|
不是 |
服务的版本 |
|
是 |
要显示的层 |
|
不是 |
层的样式 |
|
不是 |
坐标参考系 |
|
不是 |
地图范围 |
|
不是 |
以像素为单位的图像宽度 |
|
不是 |
以像素为单位的图像高度 |
|
不是 |
图例格式 |
|
不是 |
透明背景 |
除标准参数外,QGIS Server还支持额外的参数来更改图例元素的大小或图层标题和项目标签的字体属性:
参数 |
必填项 |
描述 |
---|---|---|
是 |
QGIS工程文件 |
|
不是 |
贴图宽度 |
|
不是 |
贴图高度 |
|
不是 |
添加要素的要素计数 |
|
不是 |
要呈现的规则符号 |
|
不是 |
项目标签渲染 |
|
不是 |
图例框架和内容之间的间距(Mm) |
|
不是 |
层之间的垂直间距(Mm) |
|
不是 |
层标题和项目之间的垂直间距(Mm) |
|
不是 |
符号和项目之间的垂直间距(Mm) |
|
不是 |
符号和标签之间的水平间距(Mm) |
|
不是 |
符号预览的宽度(Mm) |
|
不是 |
符号预览的高度(Mm) |
|
不是 |
层标题渲染 |
|
不是 |
图层字体系列 |
|
不是 |
层标题粗体渲染 |
|
不是 |
层标题字体大小(Pt) |
|
不是 |
层标题斜体渲染 |
|
不是 |
层标题颜色 |
|
不是 |
项目字体系列 |
|
不是 |
项标签粗体呈现 |
|
不是 |
项目标签字体大小(Pt) |
|
不是 |
项目标签斜体呈现 |
|
不是 |
项目标签颜色 |
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
例如:

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

图 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

图 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

图 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

图 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

图 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

图 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

图 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

图 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

图 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

图 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

图 3.15 传说中的 LAYERFONTITALIC=TRUE
LAYERFONTCOLOR
此参数指定层标题颜色。颜色可以是字面颜色 (red
, green
、..)或以十六进制记数法表示 (0xFF0000
, 0x00FF00
、...)。
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

图 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

图 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

图 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

图 3.19 传说中的 ITEMFONTITALIC=TRUE
ITEMFONTCOLOR
此参数指定项目标签颜色。颜色可以是字面颜色 (red
, green
、..)或以十六进制记数法表示 (0xFF0000
, 0x00FF00
、...)。
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

图 3.20 传说中的 ITEMFONTCOLOR=0x5f9930
3.2.5. GetStyle(S)
的标准参数 GetStyle (或 GetStyles )根据OGC WMS 1.1.1规范请求:
参数 |
必填项 |
描述 |
---|---|---|
是 |
服务的名称( WMS ) |
|
是 |
请求的名称( GetStyle 或 GetStyles ) |
|
是 |
要查询的层 |
这个 GetStyle Require还支持以下供应商参数:
参数 |
必填项 |
描述 |
---|---|---|
是 |
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规范提出的请求:
参数 |
必填项 |
描述 |
---|---|---|
是 |
服务的名称( WMS ) |
|
是 |
请求的名称( DescribeLayer ) |
|
是 |
要描述的层 |
|
是 |
SLD版本 |
这个 DescribeLayer Require还支持以下供应商参数:
参数 |
必填项 |
描述 |
---|---|---|
是 |
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 请求支持 redlining , external WMS layers 以及以下参数:
参数 |
必填项 |
描述 |
---|---|---|
是 |
QGIS工程文件 |
|
是 |
服务的名称( WMS ) |
|
是 |
请求的名称( GetPrint ) |
|
不是 |
服务的版本 |
|
不是 |
要显示的层 |
|
是 |
要使用的布局模板 |
|
是 |
坐标参考系 |
|
不是 |
输出格式 |
|
不是 |
指定文件格式的选项 仅限于 |
|
不是 |
地图集特写 |
|
不是 |
层的样式 |
|
不是 |
透明背景 |
|
不是 |
图层或组的不透明度 |
|
不是 |
突出显示功能 |
|
不是 |
地图‘X’的范围 |
|
不是 |
地图‘X’的层 |
|
不是 |
地图‘X’的Layers样式 |
|
不是 |
地图‘X’的层比例 |
|
不是 |
地图‘X’的旋转 |
|
不是 |
地图‘X’的x轴上的栅格间隔 |
|
不是 |
地图‘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渲染。为了检索包含所有特征的地图集, *
可以使用符号(根据项目配置中允许的最大功能数量)。
什么时候 FORMAT
是 pdf
,则返回组合了功能页的单个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 请求支持以下参数:
参数 |
必填项 |
描述 |
---|---|---|
是 |
QGIS工程文件 |
|
是 |
服务的名称( WMS ) |
|
是 |
请求的名称( GetProjectSettings ) |
3.2.9. GetSchemaExtension
这个 GetSchemaExtension 请求允许检索WMS服务的可选扩展功能和操作,例如由QGIS服务器实现的。
参数 |
必填项 |
描述 |
---|---|---|
是 |
QGIS工程文件 |
|
是 |
服务的名称( WMS ) |
|
是 |
请求的名称( 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. 红线批注
此功能可用,可与配合使用 GetMap 和 GetPrint 请求。
红线显示功能可用于传递请求中的几何图形和标签,这些几何图形和标签由服务器重叠在标准返回的图像(地图)上。这允许用户将重点或可能添加一些注释(标签)到一些不在标准地图中的区域、位置等。
这个 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
下面是上面的请求输出的图像,其中在法线贴图的顶部绘制了一个多边形和一个标签:

图 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 :此选项控制几何图形的轮廓,您可以更改笔划宽度、颜色和不透明度。