18.2.2. Servicios

QGIS Server puede servir datos de acuerdo con los protocolos estándar descritos por Open Geospatial Consortium (OGC):

  • WMS 1.1.0 y 1.3.0

  • WFS 1.0.0 y 1.1.0

  • WFS3 (OGC API - Prestaciones)

  • WCS 1.1.1

  • WMTS 1.0.0

Se admiten parámetros y solicitudes adicionales del proveedor además del estándar original que mejora enormemente las posibilidades de personalizar su comportamiento gracias al motor de renderización QGIS.

18.2.2.1. Web Map Service (WMS)

The 1.1.0 and 1.3.0 WMS standards implemented in QGIS Server provide a HTTP interface to request map or legend images generated from a QGIS project. A typical WMS request defines the QGIS project to use, the layers to render as well as the image format to generate. Basic support is also available for Styled Layer Descriptor (SLD).

Specifications:

Solicitudes standard proporcionadas por el servidor QGIS:

Solicitud

Descripción

GetCapabilities

Devuelve metadatos XML con información sobre el servidor

GetMap

Devuelve un mapa

GetFeatureInfo

Recupera datos (geometría y valores) para una ubicación de píxeles

GetLegendGraphics

Devuelve símbolos de leyenda

Solicitudes de proveedor proporcionadas por QGIS Server:

Solicitud

Descripción

GetPrint

Devuelve una composición de QGIS

GetProjectSettings

Devuelve información específica sobre QGIS Server

18.2.2.1.1. GetMap

Parámetros estándar para la solicitud ** GetMap ** de acuerdo con las especificaciones OGC WMS 1.1.0 y 1.3.0:

Parámetros

Necesario

Descripción

SERVICIO

Nombre del servicio (WMS)

VERSIÓN

No

Versión del servicio

SOLICITUD

Nombre de la solicitud (GetMap)

CAPAS

No

Capas a mostrar

ESTILOS

No

Estilo de capas

SRS / CRS

Sistema de referencia de coordenadas

BBOX

No

Extensión del mapa

ANCHURA

Ancho de la imagen en píxeles.

ALTURA

Altura de la imagen en píxeles

FORMATO

No

Formato de imagen

TRANSPARENTE

No

fondo transparente

SLD

No

URL of an SLD to be used for styling

SLD_BODY

No

In-line SLD (XML) to be used for styling

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

BGCOLOR

No

Especifica el color de fondo

DPI

No

Especifica la resolución de salida

IMAGE_QUALITY

No

compresión JPEG

OPACITIES

No

Opacidad de la capa o Grupo

FILTER

No

Subconjunto de entidades

SELECTION

No

Resalta entidades

FILE_NAME

No

Solo para``FORMAT=application/dxf``

Nombre de archivo de la capa descargada

FORMAT_OPTIONS

No

Sólo para pares key:value FORMAT=application/dxf separados por punto y coma.

  • SCALE: to be used for symbology rules, filters and styles (not actual scaling of the data - data remains in the original scale).

  • MODE: corresponds to the export options offered in the QGIS Desktop DXF export dialog. Possible values are NOSYMBOLOGY, FEATURESYMBOLOGY and SYMBOLLAYERSYMBOLOGY.

  • LAYERSATTRIBUTES: specify a field that contains values for DXF layer names - if not specified, the original QGIS layer names are used.

  • USE_TITLE_AS_LAYERNAME: if enabled, the title of the layer will be used as layer name.

  • CODEC: specify a codec to be used for encoding. Default is ISO-8859-1 check the QGIS desktop DXF export dialog for valid values.

TILED

No

Working in tiled mode

URL ejemplo:

http://localhost/qgis_server?
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

18.2.2.1.1.1. SERVICIO

This parameter has to be WMS in case of the GetMap request.

18.2.2.1.1.2. VERSIÓN

This parameter allows to specify the version of the service to use. Available values for the VERSION parameter are:

  • 1.1.0

  • 1.3.0

If no version is indicated in the request, then 1.3.0 is used by default.

According to the version number, slight differences have to be expected as explained later for the next parameters:

  • CRS / SRS

  • BBOX

18.2.2.1.1.3. SOLICITUD

This parameter is GetMap in case of the GetMap request.

18.2.2.1.1.4. CAPAS

This parameter allows to specify the layers to display on the map. Names have to be separated by a comma.

In addition, QGIS Server introduced some options to select layers by:

  • un nombre corto

  • el id de capa

The short name of a layer may be configured through Properties ▶ Metadata in layer menu. If the short name is defined, then it’s used by default instead of the layer’s name:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mynickname1,mynickname2
&...

Moreover, there’s a project option allowing to select layers by their id in OWS Server ▶ WMS capabilities menu of the Project ▶ Properties… dialog. To activate this option, the checkbox Use layer ids as names has to be selected.

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

18.2.2.1.1.5. ESTILOS

This parameter can be used to specify a layer’s style for the rendering step. Styles have to be separated by a comma. The name of the default style is default.

18.2.2.1.1.6. SRS / CRS

This parameter allows to indicate the map output Spatial Reference System in WMS 1.1.0 and has to be formed like EPSG:XXXX. Note that CRS is also supported if current version is 1.1.0.

For WMS 1.3.0, CRS parameter is preferable but SRS is also supported.

Note that if both CRS and SRS parameters are indicated in the request, then it’s the current version indicated in VERSION parameter which is decisive.

In the next case, the SRS parameter is kept whatever the VERSION parameter because CRS is not indicated:

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

In the next case, the SRS parameter is kept instead of CRS because of the VERSION parameter:

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

In the next case, the CRS parameter is kept instead of SRS because of the VERSION parameter:

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

18.2.2.1.1.7. BBOX

This parameter allows to specify the map extent with units according to the current CRS. Coordinates have to be separated by a comma.

However, a slight difference has to be noticed according to the current VERSION parameter. In WMS 1.1.0, coordinates are formed like minx,miny,maxx,maxy or minlong,minlat,maxlong,maxlat. For example:

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

But the axis is reversed in WMS 1.3.0, so coordinates are formed like: miny,minx,maxy,maxx or minlat,minlong,maxlat,maxlong. For example:

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

18.2.2.1.1.8. ANCHURA

This parameter allows to specify the width in pixels of the output image.

18.2.2.1.1.9. ALTURA

This parameter allows to specify the height in pixels of the output image.

18.2.2.1.1.10. FORMATO

This parameter may be used to specify the format of map image. Available values are:

  • jpg

  • jpeg

  • image/jpeg

  • image/png

  • image/png; mode=1bit

  • image/png; mode=8bit

  • image/png; mode=16bit

  • application/dxf Only layers that have read access in the WFS service are exported in the DXF format.

    URL ejemplo:

    http://localhost/qgisserver?
    SERVICE=WMS&VERSION=1.3.0
    &REQUEST=GetMap
    &FORMAT=application/dxf
    &LAYERS=Haltungen,Normschacht,Spezialbauwerke
    &STYLES=
    &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
    

18.2.2.1.1.11. TRANSPARENTE

This boolean parameter can be used to specify the background transparency. Available values are (not case sensitive):

  • TRUE

  • FALSE

However, this parameter is ignored if the format of the map image indicated with FORMAT is different from PNG.

18.2.2.1.1.12. MAPA

This parameter allows to define the QGIS project file to use.

As mentioned in GetMap parameters table, MAP is mandatory because a request needs a QGIS project to actually work. However, the QGIS_PROJECT_FILE environment variable may be used to define a default QGIS project. In this specific case, MAP is not longer a required parameter. For further information you may refer to Canfiguración avanzada.

18.2.2.1.1.13. BGCOLOR

This parameter allows to indicate a background color for the map image. However it cannot be combined with TRANSPARENT parameter in case of PNG images (transparency takes priority). The colour may be literal or in hexadecimal notation.

URL ejemplo con la notación literal:

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

URL example with the hexadecimal notation:

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

18.2.2.1.1.14. DPI

This parameter can be used to specify the requested output resolution.

18.2.2.1.1.15. IMAGE_QUALITY

This parameter is only used for JPEG images. By default, the JPEG compression is -1.

You can change the default per QGIS project in the OWS Server ▶ WMS capabilities menu of the Project ▶ Properties… dialog. If you want to override it in a GetMap request you can do it using the IMAGE_QUALITY parameter.

18.2.2.1.1.16. OPACITIES

Opacity can be set on layer or group level. Allowed values range from 0 (fully transparent) to 255 (fully opaque).

18.2.2.1.1.17. FILTER

A subset of layers can be selected with the FILTER parameter. The syntax is basically the same as for the QGIS subset string. However, there are some restrictions to avoid SQL injections into databases via QGIS Server. If a dangerous string is found in the parameter, QGIS Server will return the next error:

Indeed, text strings need to be enclosed with quotes (single quotes
for strings, double quotes for attributes). A space between each
word / special character is mandatory. Allowed Keywords and special
characters are 'AND','OR','IN','=','<','>=','>','>=','!=*,'(',')'.
Semicolons in string expressions are not allowed.

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WMS
&REQUEST=GetMap
&LAYERS=mylayer1,mylayer2,mylayer3
&FILTER=mylayer1:"col1";mylayer1,mylayer2:"col2" = 'blabla'
&...

In this example, the same filter (field col2 equals the string blabla) is applied to layers mylayer1 and mylayer2, while the filter on col1 is only applied to mylayer1.

Nota

It is possible to make attribute searches via GetFeatureInfo and omit the X/Y parameter if a FILTER is there. QGIS Server then returns info about the matching features and generates a combined bounding box in the XML output.

18.2.2.1.1.18. SELECTION

The SELECTION parameter can highlight features from one or more layers. Vector features can be selected by passing comma separated lists with feature ids.

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

The following image presents the response from a GetMap request using the SELECTION option e.g. http://myserver.com/...&SELECTION=countries:171,65.

As those features id’s correspond in the source dataset to France and Romania they’re highlighted in yellow.

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

Figura 18.8 Server response to a GetMap request with SELECTION parameter

18.2.2.1.1.19. TILED

Set the TILED parameter to TRUE to tell QGIS Server to work in tiled mode, and to apply the Tile buffer configured in the QGIS project.

When TILED is TRUE and when a non-zero Tile buffer is configured in the QGIS project, features outside the tile extent are drawn to avoid cut symbols at tile boundaries.

TILED defaults to FALSE.

18.2.2.1.2. GetFeatureInfo

Standard parameters for the GetFeatureInfo request according to the OGC WMS 1.1.0 and 1.3.0 specifications:

Parámetros

Necesario

Descripción

SERVICIO

Nombre del servicio (WMS)

VERSIÓN

No

See GetMap

SOLICITUD

See GetMap

CAPAS

No

See GetMap

ESTILOS

No

See GetMap

SRS / CRS

See GetMap

BBOX

No

See GetMap

ANCHURA

See GetMap

ALTURA

See GetMap

TRANSPARENTE

No

See GetMap

INFO_FORMAT

No

Output format

QUERY_LAYERS

Layers to query

FEATURE_COUNT

No

Maximum number of features to return

I

No

Pixel column of the point to query

X

No

Same as I parameter, but in WMS 1.1.0

J

No

Pixel row of the point to query

Y

No

Same as J parameter, but in WMS 1.1.0

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

See GetMap

FILTER

No

See GetMap

FI_POINT_TOLERANCE

No

Tolerance in pixels for point layers

FI_LINE_TOLERANCE

No

Tolerance in pixels for line layers

FI_POLYGON_TOLERANCE

No

Tolerance in pixels for polygon layers

FILTER_GEOM

No

Geometry filtering

WITH_MAPTIP

No

Add map tips to the output

WITH_GEOMETRY

No

Add geometry to the output

URL ejemplo:

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

18.2.2.1.2.1. INFO_FORMAT

This parameter may be used to specify the format of the result. Available values are:

  • text/xml

  • text/html

  • text/plain

  • application/vnd.ogc.gml

  • application/json

18.2.2.1.2.2. QUERY_LAYERS

This parameter specifies the layers to display on the map. Names are separated by a comma.

In addition, QGIS Server introduces options to select layers by:

  • nombre corto

  • id capa

See the LAYERS parameter defined in See GetMap for more information.

18.2.2.1.2.3. FEATURE_COUNT

This parameter specifies the maximum number of features per layer to return. For example if QUERY_LAYERS is set to layer1,layer2 and FEATURE_COUNT is set to 3 then a maximum of 3 features from layer1 will be returned. Likewise a maximun of 3 features from layer2 will be returned.

By default, only 1 feature per layer is returned.

18.2.2.1.2.4. I

This parameter, defined in WMS 1.3.0, allows you to specify the pixel column of the query point.

18.2.2.1.2.5. X

Same parameter as I, but defined in WMS 1.1.0.

18.2.2.1.2.6. J

This parameter, defined in WMS 1.3.0, allows you to specify the pixel row of the query point.

18.2.2.1.2.7. Y

Same parameter as J, but defined in WMS 1.1.0.

18.2.2.1.2.8. FI_POINT_TOLERANCE

This parameter specifies the tolerance in pixels for point layers.

18.2.2.1.2.9. FI_LINE_TOLERANCE

This parameter specifies the tolerance in pixels for line layers.

18.2.2.1.2.10. FI_POLYGON_TOLERANCE

This parameter specifies the tolerance in pixels for polygon layers.

18.2.2.1.2.11. FILTER_GEOM

This parameter specifies a WKT geometry with which features have to intersect.

18.2.2.1.2.12. WITH_MAPTIP

This parameter specifies whether to add map tips to the output.

Available values are (not case sensitive):

  • TRUE

  • FALSE

18.2.2.1.2.13. WITH_GEOMETRY

This parameter specifies whether to add geometries to the output. To use this feature you must first enable the Add geometry to feature response option in the QGIS project. See Configure your project.

Available values are (not case sensitive):

  • TRUE

  • FALSE

18.2.2.1.3. GetPrint

QGIS Server has the capability to create print layout output in pdf or pixel format. Print layout windows in the published project are used as templates. In the GetPrint request, the client has the possibility to specify parameters of the contained layout maps and labels.

Parameters for the GetPrint request:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

SERVICIO

Nombre del servicio (WMS)

VERSIÓN

No

See GetMap

SOLICITUD

Name of the request (GetPrint)

CAPAS

No

See GetMap

TEMPLATE

Layout template to use

SRS / CRS

See GetMap

FORMATO

Output format

ATLAS_PK

No

Atlas features

ESTILOS

No

See GetMap

TRANSPARENTE

No

See GetMap

OPACITIES

No

See GetMap

SELECTION

No

See GetMap

mapX:EXTENT

No

Extent of the map “X”

mapX:LAYERS

No

Layers of the map “X”

mapX:STYLES

No

Layers” style of the map “X”

mapX:SCALE

No

Layers” scale of the map “X”

mapX:ROTATION

No

Rotation of the map “X”

mapX:GRID_INTERVAL_X

No

Grid interval on x axis of the map “X”

mapX:GRID_INTERVAL_Y

No

Grid interval on y axis of the map “X”

URL ejemplo:

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

Note that the layout template may contain more than one map. In this way, if you want to configure a specific map, you have to use mapX: parameters where X is a positive number that you can retrieve thanks to the GetProjectSettings request.

For example:

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

18.2.2.1.3.1. SERVICIO

This parameter has to be WMS.

18.2.2.1.3.2. SOLICITUD

This parameter has to be GetPrint for the GetPrint request.

18.2.2.1.3.3. TEMPLATE

This parameter can be used to specify the name of a layout template to use for printing.

18.2.2.1.3.4. FORMATO

This parameter specifies the format of map image. Available values are:

  • jpg

  • jpeg

  • image/jpeg

  • png

  • image/png

  • svg

  • image/svg

  • image/svg+xml

  • pdf

  • application/pdf

If the FORMAT parameter is different from one of these values, then an exception is returned.

18.2.2.1.3.5. ATLAS_PK

This parameter allows activation of Atlas rendering by indicating which features we want to print. In order to retrieve an atlas with all features, the * symbol may be used (according to the maximum number of features allowed in the project configuration).

When FORMAT is pdf, a single PDF document combining the feature pages is returned. For all other formats, a single page is returned.

18.2.2.1.3.6. mapX:EXTENT

This parameter specifies the extent for a layout map item as xmin,ymin,xmax,ymax.

18.2.2.1.3.7. mapX:ROTATION

This parameter specifies the map rotation in degrees.

18.2.2.1.3.8. mapX:GRID_INTERVAL_X

This parameter specifies the grid line density in the X direction.

18.2.2.1.3.9. mapX:GRID_INTERVAL_Y

This parameter specifies the grid line density in the Y direction.

18.2.2.1.3.10. mapX:SCALE

This parameter specifies the map scale for a layout map item. This is useful to ensure scale based visibility of layers and labels even if client and server may have different algorithms to calculate the scale denominator.

18.2.2.1.3.11. mapX:LAYERS

This parameter specifies the layers for a layout map item. See See GetMap for more information on this parameter.

18.2.2.1.3.12. mapX:STYLES

This parameter specifies the layers” styles defined in a specific layout map item. See See GetMap for more information on this parameter.

18.2.2.1.4. GetLegendGraphics

Several additional parameters are available to change the size of the legend elements:

  • BOXSPACE space between legend frame and content (mm)

  • LAYERSPACE vertical space between layers (mm)

  • LAYERTITLESPACE vertical space between layer title and items following (mm)

  • SYMBOLSPACE vertical space between symbol and item following (mm)

  • ICONLABELSPACE horizontal space between symbol and label text (mm)

  • SYMBOLWIDTH width of the symbol preview (mm)

  • SYMBOLHEIGHT height of the symbol preview (mm)

These parameters change the font properties for layer titles and item labels:

  • LAYERFONTFAMILY / ITEMFONTFAMILY font family for layer title / item text

  • LAYERFONTBOLD / ITEMFONTBOLD TRUE to use a bold font

  • LAYERFONTSIZE / ITEMFONTSIZE Font size in point

  • LAYERFONTITALIC / ITEMFONTITALIC TRUE to use italic font

  • LAYERFONTCOLOR / ITEMFONTCOLOR Hex color code (e.g. #FF0000 for red)

  • LAYERTITLE FALSE to get only the legend graphics without the layer title

  • RULELABEL:

    • FALSE legend graphics without item labels

    • AUTO hide item label for layers with Single symbol rendering

Content based legend. These parameters let the client request a legend showing only the symbols for the features falling into the requested area:

  • BBOX the geographical area for which the legend should be built

  • CRS / SRS the coordinate reference system adopted to define the BBOX coordinates

  • WIDTH / HEIGHT if set these should match those defined for the GetMap request, to let QGIS Server scale symbols according to the map view image size.

Content based legend features are based on the UMN MapServer implementation:

  • SHOWFEATURECOUNT if set to TRUE adds in the legend the feature count of the features like in the following image:

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

18.2.2.1.5. GetProjectSettings

This request type works similar to GetCapabilities, but it is more specific to QGIS Server and allows a client to read additional information which is not available in the GetCapabilities output:

  • initial visibility of layers

  • information about vector attributes and their edit types

  • information about layer order and drawing order

  • list of layers published in WFS

18.2.2.2. Web Feature Service (WFS)

The 1.0.0 and 1.1.0 WFS standards implemented in QGIS Server provide a HTTP interface to query geographic features from a QGIS project. A typical WFS request defines the QGIS project to use and the layer to query.

Documento de especificaciones según el número de versión del servicio:

Solicitudes standard proporcionadas por el servidor QGIS:

Solicitud

Descripción

GetCapabilities

Devuelve metadatos XML con información sobre el servidor

GetFeature

Returns a selection of features

DescribeFeatureType

Returns a description of feature types and properties

Transaction

Allows features to be inserted, updated or deleted

18.2.2.2.1. GetFeature

Standard parameters for the GetFeature request according to the OGC WFS 1.0.0 and 1.1.0 specifications:

Parámetros

Necesario

Descripción

SERVICIO

Name of the service

VERSIÓN

No

Versión del servicio

SOLICITUD

Name of the request

TYPENAME

No

Name of layers

OUTPUTFORMAT

No

Output Format

RESULTTYPE

No

Type of the result

PROPERTYNAME

No

Name of properties to return

MAXFEATURES

No

Maximum number of features to return

SRSNAME

No

Sistema de referencia de coordenadas

FEATUREID

No

Filter the features by ids

FILTER

No

OGC Filter Encoding

BBOX

No

Map Extent

SORTBY

No

Sort the results

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

STARTINDEX

No

Paging

GEOMETRYNAME

No

Type of geometry to return

EXP_FILTER

No

Expression filtering

18.2.2.2.1.1. SERVICIO

This parameter has to be WFS in case of the GetFeature request.

For example:

http://localhost/qgisserver?
SERVICE=WFS
&...

18.2.2.2.1.2. VERSIÓN

This parameter allows to specify the version of the service to use. Available values for the VERSION parameter are:

  • 1.0.0

  • 1.1.0

If no version is indicated in the request, then 1.1.0 is used by default.

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&...

18.2.2.2.1.3. SOLICITUD

This parameter is GetFeature in case of the GetFeature request.

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&...

18.2.2.2.1.4. RESULTTYPE

This parameter may be used to specify the kind of result to return. Available values are:

  • results: the default behavior

  • hits: returns only a feature count

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&RESULTTYPE=hits
&...

18.2.2.2.1.5. GEOMETRYNAME

This parameter can be used to specify the kind of geometry to return for features. Available values are:

  • extent

  • centroid

  • none

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&GEOMETRYNAME=centroid
&...

18.2.2.2.1.6. STARTINDEX

This parameter is standard in WFS 2.0, but it’s an extension for WFS 1.0.0. Actually, it can be used to skip some features in the result set and in combination with MAXFEATURES, it provides the ability to page through results.

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WFS
&VERSION=1.1.0
&REQUEST=GetFeature
&STARTINDEX=2
&...

18.2.2.3. Web Map Tile Service (WMTS)

The 1.0.0 WMTS standard implemented in QGIS Server provides a HTTP interface to request tiled map images generated from a QGIS project. A typical WMTS request defined the QGIS project to use, some WMS parameters like layers to render, as well as tile parameters.

Specifications document of the service:

Solicitudes standard proporcionadas por el servidor QGIS:

Solicitud

Descripción

GetCapabilities

Devuelve metadatos XML con información sobre el servidor

GetTile

Returns a tile

GetFeatureInfo

Recupera datos (geometría y valores) para una ubicación de píxeles

18.2.2.3.1. GetCapabilities

Standard parameters for the GetCapabilities request according to the OGC WMTS 1.0.0 specifications:

Parámetros

Necesario

Descripción

SERVICIO

Name of the service (WMTS)

SOLICITUD

Name of the request (GetCapabilities)

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetCapabilities
&MAP=/home/qgis/projects/world.qgs

18.2.2.3.1.1. SERVICIO

This parameter has to be WMTS in case of the GetCapabilities request.

18.2.2.3.1.2. SOLICITUD

This parameter is GetCapabilities in case of the GetCapabilities request.

18.2.2.3.1.3. MAPA

This parameter allows to define the QGIS project file to use.

18.2.2.3.2. GetTile

Standard parameters for the GetTile request according to the OGC WMTS 1.0.0 specifications:

Parámetros

Necesario

Descripción

SERVICIO

Name of the service (WMTS)

SOLICITUD

Name of the request (GetTile)

LAYER

Layer identifier

FORMATO

Output format of the tile

TILEMATRIXSET

Name of the pyramid

TILEMATRIX

Meshing

TILEROW

Row coordinate in the mesh

TILECOL

Column coordinate in the mesh

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetTile
&MAP=/home/qgis/projects/world.qgs
&LAYER=mylayer
&FORMAT=image/png
&TILEMATRIXSET=EPSG:4326
&TILEROW=0
&TILECOL=0

18.2.2.3.2.1. SERVICIO

This parameter has to be WMTS in case of the GetTile request.

18.2.2.3.2.2. SOLICITUD

This parameter is GetTile in case of the GetTile request.

18.2.2.3.2.3. LAYER

This parameter allows to specify the layer to display on the tile.

In addition, QGIS Server introduced some options to select a layer by:

  • un nombre corto

  • el id de capa

The short name of a layer may be configured through Properties ▶ Metadata in layer menu. If the short name is defined, then it’s used by default instead of the layer’s name:

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetTile
&LAYER=mynickname
&...

Moreover, there’s a project option allowing to select layers by their id in OWS Server ▶ WMS capabilities menu of the Project ▶ Project Properties dialog. To activate this option, the checkbox Use layer ids as names has to be selected.

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetTile
&LAYER=mylayerid1
&...

18.2.2.3.2.4. FORMATO

This parameter may be used to specify the format of tile image. Available values are:

  • jpg

  • jpeg

  • image/jpeg

  • image/png

If the FORMAT parameter is different from one of these values, then the default format PNG is used instead.

18.2.2.3.2.5. TILEMATRIXSET

This parameter defines the CRS to use when computing the underlying pyramid. Format: EPSG:XXXX.

18.2.2.3.2.6. TILEMATRIX

This parameter allows to define the matrix to use for the output tile.

18.2.2.3.2.7. TILEROW

This parameter allows to select the row of the tile to get within the matrix.

18.2.2.3.2.8. TILECOL

This parameter allows to select the column of the tile to get within the matrix.

18.2.2.3.2.9. MAPA

This parameter allows to define the QGIS project file to use.

As mentioned in GetMap parameters table, MAP is mandatory because a request needs a QGIS project to actually work. However, the QGIS_PROJECT_FILE environment variable may be used to define a default QGIS project. In this specific case, MAP is not longer a required parameter. For further information you may refer to Canfiguración avanzada.

18.2.2.3.3. GetFeatureInfo

Standard parameters for the GetFeatureInfo request according to the OGC WMTS 1.0.0 specifications:

Parámetros

Necesario

Descripción

SERVICIO

Name of the service (WMTS)

SOLICITUD

Name of the request (GetFeatureInfo)

LAYER

Layer identifier

INFOFORMAT

No

Output format

I

No

X coordinate of a pixel

J

No

Y coordinate of a pixel

TILEMATRIXSET

See GetTile

TILEMATRIX

See GetTile

TILEROW

See GetTile

TILECOL

See GetTile

En adición a los estándares, QGIS Server apoya los siguientes parámetros extra:

Parámetros

Necesario

Descripción

MAPA

especifica el archivo de proyecto de QGIS

URL ejemplo:

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetFeatureInfo
&MAP=/home/qgis/projects/world.qgs
&LAYER=mylayer
&INFOFORMAT=image/html
&I=10
&J=5

18.2.2.3.3.1. SERVICIO

This parameter has to be WMTS in case of the GetFeatureInfo request.

18.2.2.3.3.2. SOLICITUD

This parameter is GetFeatureInfo in case of the GetFeatureInfo request.

18.2.2.3.3.3. MAPA

This parameter allows to define the QGIS project file to use.

As mentioned in GetMap parameters table, MAP is mandatory because a request needs a QGIS project to actually work. However, the QGIS_PROJECT_FILE environment variable may be used to define a default QGIS project. In this specific case, MAP is not longer a required parameter. For further information you may refer to Canfiguración avanzada.

18.2.2.3.3.4. LAYER

This parameter allows to specify the layer to display on the tile.

In addition, QGIS Server introduced some options to select a layer by:

  • un nombre corto

  • el id de capa

The short name of a layer may be configured through Properties ▶ Metadata in layer menu. If the short name is defined, then it’s used by default instead of the layer’s name:

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetFeatureInfo
&LAYER=mynickname
&...

Moreover, there’s a project option allowing to select layers by their id in OWS Server ▶ WMS capabilities menu of the Project ▶ Project Properties dialog. To activate this option, the checkbox Use layer ids as names has to be selected.

http://localhost/qgisserver?
SERVICE=WMTS
&REQUEST=GetFeatureInfo
&LAYER=mylayerid1
&...

18.2.2.3.3.5. INFOFORMAT

This parameter allows to define the output format of the result. Available values are:

  • text/xml

  • text/html

  • text/plain

  • application/vnd.ogc.gml

The default value is text/plain.

18.2.2.3.3.6. I

This parameter allows to define the X coordinate of the pixel for which we want to retrieve underlying information.

18.2.2.3.3.7. J

This parameter allows to define the Y coordinate of the pixel for which we want to retrieve underlying information.

18.2.2.4. WFS3 (OGC API Features)

WFS3 is the first implementation of the new generation of OGC protocols. It is described by the OGC API - Features - Part 1: Core document.

Here is a quick informal summary of the most important differences between the well known WFS protocol and WFS3:

  • WFS3 is based on a REST API

  • WFS3 API must follow the OPENAPI specifications

  • WFS3 supports multiple output formats but it does not dictate any (only GeoJSON and HTML are currently available in QGIS WFS3) and it uses content negotiation to determine which format is to be served to the client

  • JSON and HTML are first class citizens in WFS3

  • WFS3 is self-documenting (through the /api endpoint)

  • WFS3 is fully navigable (through links) and browsable

Importante

While the WFS3 implementation in QGIS can make use of the MAP parameter to specify the project file, no extra query parameters are allowed by the OPENAPI specification. For this reason it is strongly recommended that MAP is not exposed in the URL and the project file is specified in the environment by other means (i.e. setting QGIS_PROJECT_FILE in the environment through a web server rewrite rule).

Nota

The API endpoint provides comprehensive documentation of all supported parameters and output formats of your service. The following paragraphs will only describe the most important ones.

18.2.2.4.1. Resource representation

The QGIS Server WFS3 implementation currently supports the following resource representation (output) formats:

  • HTML

  • JSON

The format that is actually served will depend on content negotiation, but a specific format can be explicitly requested by appending a format specifier to the endpoints.

Supported format specifier extensions are:

  • .json

  • .html

Additional format specifier aliases may be defined by specific endpoints:

  • .openapi: alias for .json supported by the API endpoint

  • .geojson: alias for .json supported by the Features and Feature endpoints

18.2.2.4.2. Endpoints

The API provides a list of endpoints that the clients can retrieve. The system is designed in such a way that every response provides a set of links to navigate through all the provided resources.

Endpoints points provided by the QGIS implementation are:

Nombre

Path

Descripción

Landing Page

/

General information about the service and provides links to all available endpoints

Conformance

/conformance

Information about the conformance of the service to the standards

API

/api

Full description of the endpoints provided by the service and the returned documents structure

Colecciones

/collections

List of all collections (i.e. “vector layers”) provided by the service

Colección

/collections/{collectionId}

Information about a collection (name, metadata, extent etc.)

Características

/collections/{collectionId}/items

List of the features provided by the collection

Feature

/collections/{collectionId}/items/{featureId}

Information about a single feature

18.2.2.4.2.1. Landing Page

The main endpoint is the Landing Page. From that page it is possible to navigate to all the available service endpoints. The Landing Page must provide links to

  • the API definition (path /api link relations service-desc and service-doc),

  • the Conformance declaration (path /conformance, link relation conformance), and

  • the Collections (path /collections, link relation data).

../../../../_images/server_wfs3_landing_page.png

Figura 18.9 Server WFS3 landing page

18.2.2.4.2.2. Definición API

The API Definition is an OPENAPI-compliant description of the API provided by the service. In its HTML representation it is a browsable page where all the endpoints and their response formats are accurately listed and documented. The path of this endpoint is /api.

The API definition provides a comprehensive and authoritative documentation of the service, including all supported parameters and returned formats.

Nota

Este punto final es análogo a GetCapabilities de WFS’s

18.2.2.4.2.3. Collections list

The collections endpoint provides a list of all the collections available in the service. Since the service «serves» a single QGIS project the collections are the vector layers from the current project (if they were published as WFS in the project properties). The path of this endpoint is /collections/.

../../../../_images/server_wfs3_collections.png

Figura 18.10 Server WFS3 collections list page

18.2.2.4.2.4. Collection detail

While the collections endpoint does not provide detailed information about each available collection, that information is available in the /collections/{collectionId} endpoints. Typical information includes the extent, a description, CRSs and other metadata.

The HTML representation also provides a browsable map with the available features.

../../../../_images/server_wfs3_collection.png

Figura 18.11 Server WFS3 collection detail page

18.2.2.4.2.5. Features list

This endpoint provides a list of all features in a collection knowing the collection ID. The path of this endpoint is /collections/{collectionId}/items.

The HTML representation also provides a browsable map with the available features.

Nota

This endpoint is analogue to GetFeature in WFS 1 and WFS 2.

../../../../_images/server_wfs3_features.png

Figura 18.12 Server WFS3 features list page

18.2.2.4.2.6. Feature detail

This endpoint provides all the available information about a single feature, including the feature attributes and its geometry. The path of this endpoint is /collections/{collectionId}/items/{itemId}.

The HTML representation also provides a browsable map with the feature geometry.

../../../../_images/server_wfs3_feature.png

Figura 18.13 Server WFS3 feature detail page

18.2.2.4.4. Filtrado de objetos espaciales

The features available in a collection can be filtered/searched by specifying one or more filters.

18.2.2.4.4.1. Date and time filter

Collections with date and/or datetime attributes can be filtered by specifying a datetime argument in the query string. By default the first date/datetime field is used for filtering. This behavior can be configured by setting a «Date» or «Time» dimension in the QGIS Server ▶ Dimension section of the layer properties dialog.

The date and time filtering syntax is fully described in the Definición API and also supports ranges (begin and end values are included) in addition to single values.

URL examples:

Returns only the features with date dimension matching 2019-01-01

http://localhost/qgisserver/wfs3/collection_one/items.json?datetime=2019-01-01

Returns only the features with datetime dimension matching 2019-01-01T01:01:01

http://localhost/qgisserver/wfs3/collection_one/items.json?datetime=2019-01-01T01:01:01

Returns only the features with datetime dimension in the range 2019-01-01T01:01:01 - 2019-01-01T12:00:00

http://localhost/qgisserver/wfs3/collection_one/items.json?datetime=2019-01-01T01:01:01/2019-01-01T12:00:00

18.2.2.4.4.2. Bounding box filter

A bounding box spatial filter can be specified with the bbox parameter:

The order of the comma separated elements is:

  • Lower left corner, WGS 84 longitude

  • Lower left corner, WGS 84 latitude

  • Upper right corner, WGS 84 longitude

  • Upper right corner, WGS 84 latitude

Nota

The OGC specifications also allow a 6 item bbox specifier where the third and sixth items are the Z components, this is not yet supported by QGIS server.

URL ejemplo:

http://localhost/qgisserver/wfs3/collection_one/items.json?bbox=-180,-90,180,90

If the CRS of the bounding box is not WGS84 (http://www.opengis.net/def/crs/OGC/1.3/CRS84), a different CRS can be specified by using the optional parameter bbox-crs. The CRS format identifier must be in the OGC URI format:

URL ejemplo:

http://localhost/qgisserver/wfs3/collection_one/items.json?bbox=913191,5606014,913234,5606029&bbox-crs=http://www.opengis.net/def/crs/EPSG/9.6.2/3857

18.2.2.4.4.3. Filtros de Atributos

Attribute filters can be combined with the bounding box filter and they are in the general form: <attribute name>=<attribute value>. Multiple filters can be combined using the AND operator.

URL ejemplo:

filtra todas las entidades donde nombre es igual a «mi valor»

http://localhost/qgisserver/wfs3/collection_one/items.json?attribute_one=my%20value

Coincidencias parciales también son soportads usando el operador * («estrella»)

URL ejemplo:

filtra todas las entidades donde el atributo nombre finaliza con «valor»

http://localhost/qgisserver/wfs3/collection_one/items.json?attribute_one=*value

18.2.2.4.5. Selección de atributos

The feature attributes returned by a Features list call can be limited by adding a comma separated list of attribute names in the optional properties query string argument.

URL ejemplo:

devuelve solo el atributo nombre

http://localhost/qgisserver/wfs3/collection_one/items.json?properties=name

18.2.2.4.6. El lenguaje de plantilla HTML

The HTML representation uses a set of HTML templates to generate the response. The template is parsed by a template engine called inja. The templates can be customized by overriding them (see: Sobreescritura de Plantilla). The template has access to the same data that are available to the JSON representation and a few additional functions are available to the template:

18.2.2.4.6.1. Funciones personalizadas de plantilla

  • path_append( path ): adjunta una ruta de directorio a la actual url

  • path_chomp( n ): borra el número especificado «n» de componentes del directorio de la ruta url actual

  • json_dump( ): imprime los datos JSON pasados a la plantilla

  • static( path ): returns the full URL to the specified static path. For example: «static( «/style/black.css» )» with a root path «http://localhost/qgisserver/wfs3» will return «http://localhost/qgisserver/wfs3/static/style/black.css».

  • links_filter( links, key, value ): Returns filtered links from a link list

  • content_type_name( content_type ): Returns a short name from a content type, for example «text/html» will return «HTML»

18.2.2.4.6.2. Sobreescritura de Plantilla

Templates and static assets are stored in subdirectories of the QGIS server default API resource directory (/usr/share/qgis/resources/server/api/ on a Linux system), the base directory can be customized by changing the environment variable QGIS_SERVER_API_RESOURCES_DIRECTORY.

A typical Linux installation will have the following directory tree:

/usr/share/qgis/resources/server/api/
└── ogc
    ├── schema.json
    ├── static
    │   ├── jsonFormatter.min.css
    │   ├── jsonFormatter.min.js
    │   └── style.css
    └── templates
        └── wfs3
            ├── describeCollection.html
            ├── describeCollections.html
            ├── footer.html
            ├── getApiDescription.html
            ├── getFeature.html
            ├── getFeatures.html
            ├── getLandingPage.html
            ├── getRequirementClasses.html
            ├── header.html
            ├── leaflet_map.html
            └── links.html

To override the templates you can copy the whole tree to another location and point QGIS_SERVER_API_RESOURCES_DIRECTORY to the new location.

18.2.2.5. Extra parameters supported by all request types

The following extra parameters are supported by all protocols.

  • FILE_NAME: if set, the server response will be sent to the client as a file attachment with the specified file name.

Nota

Not available for WFS3.

  • MAP: Similar to MapServer, the MAP parameter can be used to specify the path to the QGIS project file. You can specify an absolute path or a path relative to the location of the server executable (qgis_mapserv.fcgi). If not specified, QGIS Server searches for .qgs files in the directory where the server executable is located.

    Ejemplo:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?\
      REQUEST=GetMap&MAP=/home/qgis/projects/world.qgs&...
    

Nota

You can define a QGIS_PROJECT_FILE as an environment variable to tell the server executable where to find the QGIS project file. This variable will be the location where QGIS will look for the project file. If not defined it will use the MAP parameter in the request and finally look at the server executable directory.

18.2.2.6. REDLINING

This feature is available and can be used with GetMap and GetPrint requests.

The redlining feature can be used to pass geometries and labels in the request which are overlapped by the server over the standard returned image (map). This permits the user to put emphasis or maybe add some comments (labels) to some areas, locations etc. that are not in the standard map.

The request is in the format:

http://qgisplatform.demo/cgi-bin/qgis_mapserv.fcgi?map=/world.qgs&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

Here is the image outputed by the above request in which a polygon and a label are drawn on top of the normal map:

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

Figura 18.14 Server response to a GetMap request with redlining parameters

You can see there are several parameters in this request:

  • HIGHLIGHT_GEOM: You can add POINT, MULTILINESTRING, POLYGON etc. It supports multipart geometries. Here is an example: HIGHLIGHT_GEOM=MULTILINESTRING((0 0, 0 1, 1 1)). The coordinates should be in the CRS of the GetMap/GetPrint request.

  • HIGHLIGHT_SYMBOL: This controls how the geometry is outlined and you can change the stroke width, color and opacity.

  • HIGHLIGHT_LABELSTRING: You can pass your labeling text to this parameter.

  • HIGHLIGHT_LABELSIZE: This parameter controls the size of the label.

  • HIGHLIGHT_LABELCOLOR: This parameter controls the label color.

  • HIGHLIGHT_LABELBUFFERCOLOR: This parameter controls the label buffer color.

  • HIGHLIGHT_LABELBUFFERSIZE: This parameter controls the label buffer size.

18.2.2.7. External WMS layers

QGIS Server allows including layers from external WMS servers in WMS GetMap and WMS GetPrint requests. This is especially useful if a web client uses an external background layer in the web map. For performance reasons, such layers should be directly requested by the web client (not cascaded via QGIS server). For printing however, these layers should be cascaded via QGIS server in order to appear in the printed map.

External layers can be added to the LAYERS parameter as EXTERNAL_WMS:<layername>. The parameters for the external WMS layers (e.g. url, format, dpiMode, crs, layers, styles) can later be given as service parameters <layername>:<parameter>. In a GetMap request, this might look like this:

http://localhost/qgisserver?
SERVICE=WMS&REQUEST=GetMap
...
&LAYERS=EXTERNAL_WMS:basemap,layer1,layer2
&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

Similarly, external layers can be used in GetPrint requests:

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