18.2.2. Services

QGIS Server est capable de servir des données selon des protocoles standard tels que décrits par l”Open Geospatial Consortium (OGC):

  • WMS 1.1.0 et 1.3.0

  • WFS 1.0.0 et 1.1.0

  • WFS3 (OGC API - Features)

  • WCS 1.1.1

  • WMTS 1.0.0

Des paramètres et des demandes supplémentaires du fournisseur sont pris en charge en plus de la norme d’origine qui améliorent considérablement les possibilités de personnalisation de son comportement grâce au moteur de rendu QGIS.

18.2.2.1. Web Map Service (WMS)

Les standards WMS 1.1.0 et 1.3.0 implémentées dans QGIS Server fournissent une interface HTTP pour demander des images de carte ou de légende générées à partir d’un projet QGIS. Une requête WMS typique définit le projet QGIS à utiliser, les couches à restituer ainsi que le format d’image à générer. Une prise en charge de base est également disponible pour le Styled Layer Descriptor (SLD).

Spécifications :

Requêtes standard fournies par QGIS Server:

Requête

Description

GetCapabilities

Renvoie des métadonnées XML avec des informations sur le serveur

GetMap

Renvoie une carte

GetFeatureInfo

Récupère les données (géométrie et valeurs) pour un emplacement de pixel

GetLegendGraphics

Renvoie les symboles de légende

Demandes des fournisseurs fournies par QGIS Server:

Requête

Description

GetPrint

Renvoie une composition QGIS

GetProjectSettings

Renvoie des informations spécifiques sur QGIS Server

18.2.2.1.1. GetMap

Paramètres standard pour la demande GetMap selon les spécifications OGC WMS 1.1.0 et 1.3.0:

Paramètre

Requis

Description

SERVICE

Oui

Nom du service (WMS)

VERSION

Non

Version du service

REQUEST

Oui

Nom de la requête (GetMap)

LAYERS

Non

Couches à afficher

STYLES

Non

Style des couches

SRS / CRS

Oui

Système de coordonnées de référence

BBOX

Non

Emprise de la carte

WIDTH

Oui

Largeur de l’image en pixels

HEIGHT

Oui

Hauteur de l’image en pixels

FORMAT

Non

Format de l’image

TRANSPARENT

Non

Arrière-plan transparent

SLD

Non

URL d’un SLD à utiliser pour la symbologie

SLD_BODY

Non

Contenu de SLD (XML) à utiliser pour la symbologie

Outre les paramètres standard, QGIS prend en charge les paramètres suivants :

Paramètre

Requis

Description

MAP

Oui

Spécifiez le fichier de projet QGIS

BGCOLOR

Non

Spécifiez la couleur d’arrière-plan

DPI

Non

Spécifiez la résolution de sortie

IMAGE_QUALITY

Non

Compression JPEG

OPACITIES

Non

Opacité pour une couche ou un groupe

FILTER

Non

Sous-ensemble d’entités

SELECTION

Non

Mettre en évidence d’entités

FILE_NAME

Non

Seulement pour FORMAT=application/dxf

Nom du fichier téléchargé

FORMAT_OPTIONS

Non

Uniquement pour la clé FORMAT = application/dxf: paires de valeurs séparées par un point-virgule.

  • ÉCHELLE: à utiliser pour les règles de symbologie, les filtres et les styles (pas la mise à l’échelle réelle des données - les données restent à l’échelle d’origine).

  • MODE: correspond aux options d’exportation proposées dans la boîte de dialogue d’exportation QGIS Desktop DXF. Les valeurs possibles sont NOSYMBOLOGY, FEATURESYMBOLOGY et SYMBOLLAYERSYMBOLOGY.

  • LAYERSATTRIBUTES: spécifiez un champ qui contient des valeurs pour les noms de couche DXF - s’il n’est pas spécifié, les noms de couche QGIS d’origine sont utilisés.

  • USE_TITLE_AS_LAYERNAME: si activé, le titre de la couche sera utilisé comme nom de la couche.

  • CODEC: spécifiez un codec à utiliser pour l’encodage. La valeur par défaut est ISO-8859-1, vérifiez la boîte de dialogue d’exportation DXF du bureau QGIS pour les valeurs valides.

TILED

Non

Travailler en mode tuile

Exemple d’URL :

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

Ce paramètre doit être WMS en cas de requête GetMap.

18.2.2.1.1.2. VERSION

Ce paramètre permet de spécifier la version du service à utiliser. Les valeurs disponibles pour le paramètre VERSION sont:

  • 1.1.0

  • 1.3.0

Si aucune version n’est indiquée dans la requête, alors 1.3.0 est utilisée par défaut.

Selon le numéro de version, de légères différences sont à prévoir comme expliqué plus loin pour les paramètres suivants:

  • CRS / SRS

  • BBOX

18.2.2.1.1.3. REQUEST

Ce paramètre est GetMap en cas de requête GetMap.

18.2.2.1.1.4. LAYERS

Ce paramètre permet de spécifier les couches à afficher sur la carte. Les noms doivent être séparés par une virgule.

De plus, QGIS Server a introduit certaines options pour sélectionner des couches en:

  • un nom court

  • l’identifiant de la couche

Le nom court d’une couche peut être configuré via Propriétés -> Métadonnées dans le menu des couches. Si le nom court est défini, il est utilisé par défaut au lieu du nom de la couche:

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

De plus, il existe une option de projet permettant de sélectionner les couches par leur identifiant dans OWS Server -> WMS capacities du Projet -> Proprietes … `. Pour activer cette option, la case à cocher :guilabel:`Utiliser les identifiants des couches comme noms doit être cochée.

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

18.2.2.1.1.5. STYLES

Ce paramètre peut être utilisé pour spécifier le style d’une couche pour l’étape de rendu. Les styles doivent être séparés par une virgule. Le nom du style par défaut est par défaut.

18.2.2.1.1.6. SRS / CRS

Ce paramètre permet d’indiquer la sortie de la carte Système de référence spatiale dans WMS 1.1.0 et doit être formé comme EPSG:XXXX. Notez que CRS est également pris en charge si la version actuelle est 1.1.0.

Pour WMS 1.3.0, le paramètre CRS est préférable mais SRS est également pris en charge.

Notez que si les paramètres CRS et SRS sont indiqués dans la demande, c’est la version actuelle indiquée dans le paramètre VERSION qui est déterminante.

Dans le cas suivant, le paramètre SRS est conservé quel que soit le paramètre VERSION car CRS n’est pas indiqué:

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

Dans le cas suivant, le paramètre SRS est conservé au lieu de CRS à cause du paramètre VERSION:

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

Dans le cas suivant, le paramètre CRS est conservé au lieu de SRS à cause du paramètre VERSION:

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

18.2.2.1.1.7. BBOX

Ce paramètre permet de spécifier l’étendue de la carte avec des unités en fonction du SCR actuel. Les coordonnées doivent être séparées par une virgule.

Cependant, une légère différence doit être notée selon le paramètre actuel VERSION. Dans WMS 1.1.0, les coordonnées sont formées comme minx, miny, maxx, maxy ou minlong, minlat, maxlong, maxlat. Par exemple:

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

Mais l’axe est inversé dans WMS 1.3.0, donc les coordonnées sont formées comme:miny, minx, maxy, maxx ou minlat, minlong, maxlat, maxlong. Par exemple:

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

Ce paramètre permet de spécifier la largeur en pixels de l’image de sortie.

18.2.2.1.1.9. HEIGHT

Ce paramètre permet de spécifier la hauteur en pixels de l’image de sortie.

18.2.2.1.1.10. FORMAT

Ce paramètre peut être utilisé pour spécifier le format de l’image de la carte. Les valeurs disponibles sont:

  • jpg

  • jpeg

  • image/jpeg

  • image/png

  • image/png; mode=1bit

  • image/png; mode=8bit

  • image/png; mode=16bit

  • application/dxf Seules les couches qui ont un accès en lecture dans le service WFS sont exportées au format DXF.

    Exemple d’URL :

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

Ce paramètre booléen peut être utilisé pour spécifier la transparence d’arrière-plan. Les valeurs disponibles sont (non sensibles à la casse):

  • TRUE

  • FALSE

Cependant, ce paramètre est ignoré si le format de l’image de la carte indiqué par FORMAT est différent de PNG.

18.2.2.1.1.12. MAP

Ce paramètre permet de définir le fichier projet QGIS à utiliser.

Comme mentionné dans la table des paramètres GetMap, MAP est obligatoire car une requête a besoin d’un projet QGIS pour fonctionner. Cependant, la variable d’environnement QGIS_PROJECT_FILE peut être utilisée pour définir un projet QGIS par défaut. Dans ce cas spécifique, MAP n’est plus un paramètre obligatoire. Pour plus d’informations, vous pouvez vous référer à Configuration avancée.

18.2.2.1.1.13. BGCOLOR

Ce paramètre permet d’indiquer une couleur de fond pour l’image de la carte. Cependant, il ne peut pas être combiné avec le paramètre TRANSPARENT dans le cas d’images PNG (la transparence est prioritaire). La couleur peut être littérale ou en notation hexadécimale.

Exemple d’URL avec la notation littérale:

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

Exemple d’URL avec la notation hexadécimale:

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

18.2.2.1.1.14. DPI

Ce paramètre peut être utilisé pour spécifier la résolution de sortie demandée.

18.2.2.1.1.15. IMAGE_QUALITY

Ce paramètre n’est utilisé que pour les images JPEG. Par défaut, la compression JPEG est -1.

Vous pouvez modifier la valeur par défaut par projet QGIS dans le menu OWS Server -> WMS capabilities du menu Projet -> Proprietes … `. Si vous souhaitez le remplacer dans une demande ``GetMap`, vous pouvez le faire en utilisant le paramètre IMAGE_QUALITY.

18.2.2.1.1.16. OPACITIES

L’opacité peut être définie au niveau de la couche ou du groupe. Les valeurs autorisées vont de 0 (entièrement transparent) à 255 (entièrement opaque).

18.2.2.1.1.17. FILTER

Un sous-ensemble de couches peut être sélectionné avec le paramètre FILTER. La syntaxe est fondamentalement la même que pour la chaîne de sous-ensemble QGIS. Cependant, il existe certaines restrictions pour éviter les injections SQL dans les bases de données via QGIS Server. Si une chaîne dangereuse est trouvée dans le paramètre, QGIS Server renverra l’erreur suivante:

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.

Exemple d’URL :

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

Dans cet exemple, le même filtre (le champ col2 est égal à la chaîne blabla) est appliqué aux couches mylayer1 et mylayer2, tandis que le filtre sur col1 est uniquement appliqué à mylayer1.

Note

Il est possible d’effectuer des recherches d’attributs via GetFeatureInfo et d’omettre le paramètre X / Y si un FILTRE est là. QGIS Server renvoie ensuite des informations sur les entités correspondantes et génère un cadre de délimitation combiné dans la sortie XML.

18.2.2.1.1.18. SELECTION

Le paramètre SELECTION peut mettre en évidence les entités d’une ou plusieurs couches. Les entités vectorielles peuvent être sélectionnées en passant des listes séparées par des virgules avec des identifiants d’entités.

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

L’image suivante présente la réponse d’une demande GetMap en utilisant l’option SELECTION par ex. http: //myserver.com/...&SELECTION=countries: 171,65.

Comme ces identifiants d’entités correspondent dans l’ensemble de données source à France et Roumanie, ils sont surlignés en jaune.

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

Fig. 18.8 Réponse du serveur à une demande GetMap avec le paramètre SELECTION

18.2.2.1.1.19. TILED

Réglez le paramètre TILED sur TRUE pour dire à QGIS Server de fonctionner en mode tuile et d’appliquer le tampon tuile configuré dans le projet QGIS.

Lorsque TILED est VRAI et lorsqu’un tampon de tuile différent de zéro est configuré dans le projet QGIS, les entités en dehors de l’étendue de tuile sont dessinées pour éviter les symboles coupés aux limites des tuiles.

TILED est par défaut FALSE.

18.2.2.1.2. GetFeatureInfo

Paramètres standard pour la demande GetFeatureInfo selon les spécifications OGC WMS 1.1.0 et 1.3.0:

Paramètre

Requis

Description

SERVICE

Oui

Nom du service (WMS)

VERSION

Non

See GetMap

REQUEST

Oui

See GetMap

LAYERS

Non

See GetMap

STYLES

Non

See GetMap

SRS / CRS

Oui

See GetMap

BBOX

Non

See GetMap

WIDTH

Oui

See GetMap

HEIGHT

Oui

See GetMap

TRANSPARENT

Non

See GetMap

INFO_FORMAT

Non

Format de sortie

QUERY_LAYERS

Oui

Couches à interroger

FEATURE_COUNT

Non

Nombre maximum d’entités à renvoyer

I

Non

Colonne de pixels du point à interroger

X

Non

Identique au paramètre «I», mais dans WMS 1.1.0

J

Non

Ligne de pixels du point à interroger

Y

Non

Identique au paramètre J, mais dans WMS 1.1.0

Outre les paramètres standard, QGIS prend en charge les paramètres suivants :

Paramètre

Requis

Description

MAP

Oui

See GetMap

FILTER

Non

See GetMap

FI_POINT_TOLERANCE

Non

Tolérance en pixels pour les couches de points

FI_LINE_TOLERANCE

Non

Tolérance en pixels pour les couches de lignes

FI_POLYGON_TOLERANCE

Non

Tolérance en pixels pour les couches de polygones

FILTER_GEOM

Non

Filtrage géométrique

WITH_MAPTIP

Non

Ajouter des conseils de carte à la sortie

WITH_GEOMETRY

Non

Ajouter une géométrie à la sortie

Exemple d’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

18.2.2.1.2.1. INFO_FORMAT

Ce paramètre peut être utilisé pour spécifier le format du résultat. Les valeurs disponibles sont:

  • text/xml

  • text/html

  • text/plain

  • application/vnd.ogc.gml

  • application/json

18.2.2.1.2.2. QUERY_LAYERS

Ce paramètre spécifie les couches à afficher sur la carte. Les noms sont séparés par une virgule.

De plus, QGIS Server introduit des options pour sélectionner des couches en:

  • nom court

  • identifiant de couche

Voir le paramètre LAYERS défini dans GetMap pour plus d’informations.

18.2.2.1.2.3. FEATURE_COUNT

Ce paramètre spécifie le nombre maximal d’entités par couche à renvoyer. Par exemple, si QUERY_LAYERS est défini sur layer1, layer2 et que FEATURE_COUNT est défini sur 3, un maximum de 3 entités de layer1 seront renvoyées. De même, un maximum de 3 entités de la couche 2 sera retourné.

Par défaut, une seule entité par couche est renvoyée.

18.2.2.1.2.4. I

Ce paramètre, défini dans WMS 1.3.0, vous permet de spécifier la colonne de pixels du point de requête.

18.2.2.1.2.5. X

Même paramètre que I, mais défini dans WMS 1.1.0.

18.2.2.1.2.6. J

Ce paramètre, défini dans WMS 1.3.0, vous permet de spécifier la ligne de pixels du point de requête.

18.2.2.1.2.7. Y

Même paramètre que J, mais défini dans WMS 1.1.0.

18.2.2.1.2.8. FI_POINT_TOLERANCE

Ce paramètre spécifie la tolérance en pixels pour les couches de points.

18.2.2.1.2.9. FI_LINE_TOLERANCE

Ce paramètre spécifie la tolérance en pixels pour les couches de lignes.

18.2.2.1.2.10. FI_POLYGON_TOLERANCE

Ce paramètre spécifie la tolérance en pixels pour les couches de polygones.

18.2.2.1.2.11. FILTER_GEOM

Ce paramètre spécifie une géométrie WKT avec laquelle les entités doivent se croiser.

18.2.2.1.2.12. WITH_MAPTIP

Ce paramètre spécifie s’il faut ajouter des conseils de mappage à la sortie.

Les valeurs disponibles sont (non sensibles à la casse):

  • TRUE

  • FALSE

18.2.2.1.2.13. WITH_GEOMETRY

Ce paramètre spécifie s’il faut ajouter des géométries à la sortie. Pour l’utiliser, il vous faut d’abord activer l’option Ajouter la géométrie à la réponse d’une entité dans le projet QGIS. Voir Configurer son projet.

Les valeurs disponibles sont (non sensibles à la casse):

  • TRUE

  • FALSE

18.2.2.1.3. GetPrint

QGIS Server a la capacité de créer une sortie de mise en page d’impression au format pdf ou pixel. Les fenêtres de mise en page d’impression dans le projet publié sont utilisées comme modèles. Dans la demande GetPrint, le client a la possibilité de spécifier les paramètres des mises en page et des étiquettes contenues.

Paramètres de la demande GetPrint:

Paramètre

Requis

Description

MAP

Oui

Spécifiez le fichier de projet QGIS

SERVICE

Oui

Nom du service (WMS)

VERSION

Non

See GetMap

REQUEST

Oui

Nom de la demande (GetPrint)

LAYERS

Non

See GetMap

TEMPLATE

Oui

Modèle de mise en page à utiliser

SRS / CRS

Oui

See GetMap

FORMAT

Oui

Format de sortie

ATLAS_PK

Non

Entité atlas

STYLES

Non

See GetMap

TRANSPARENT

Non

See GetMap

OPACITIES

Non

See GetMap

SELECTION

Non

See GetMap

mapX:EXTENT

Non

Étendue de la carte “X”

mapX:LAYERS

Non

Couches de la carte “X”

mapX:STYLES

Non

Style de couche de la carte “X”

mapX:SCALE

Non

Échelle des couches de la carte “X”

mapX:ROTATION

Non

Rotation de la carte “X”

mapX:GRID_INTERVAL_X

Non

Intervalle de grille sur l’axe x de la carte “X”

mapX:GRID_INTERVAL_Y

Non

Intervalle de grille sur l’axe y de la carte “X”

Exemple d’URL :

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

Notez que le modèle de mise en page peut contenir plusieurs cartes. De cette façon, si vous souhaitez configurer une carte spécifique, vous devez utiliser les paramètres mapX:X est un nombre positif que vous pouvez récupérer grâce à la requête GetProjectSettings.

Par exemple:

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

Ce paramètre doit être WMS.

18.2.2.1.3.2. REQUEST

Ce paramètre doit être GetPrint pour la demande GetPrint.

18.2.2.1.3.3. TEMPLATE

Ce paramètre peut être utilisé pour spécifier le nom d’un modèle de mise en page à utiliser pour l’impression.

18.2.2.1.3.4. FORMAT

Ce paramètre spécifie le format de l’image de la carte. Les valeurs disponibles sont:

  • jpg

  • jpeg

  • image/jpeg

  • png

  • image/png

  • svg

  • image/svg

  • image/svg+xml

  • pdf

  • application/pdf

Si le paramètre FORMAT est différent de l’une de ces valeurs, une exception est renvoyée.

18.2.2.1.3.5. ATLAS_PK

Ce paramètre permet d’activer le rendu Atlas en indiquant quelles entites nous voulons imprimer. Afin de récupérer un atlas avec toutes les fonctionnalités, le symbole * peut être utilisé (selon le nombre maximum d entités autorisé dans la configuration du projet).

Lorsque FORMAT est pdf, un seul document PDF combinant les pages d’entites est renvoyé. Pour tous les autres formats, une seule page est renvoyée.

18.2.2.1.3.6. mapX:EXTENT

Ce paramètre spécifie l’étendue d’un élément de mise en page sous la forme xmin, ymin, xmax, ymax.

18.2.2.1.3.7. mapX:ROTATION

Ce paramètre spécifie la rotation de la carte en degrés.

18.2.2.1.3.8. mapX:GRID_INTERVAL_X

Ce paramètre spécifie la densité du quadrillage dans la direction X.

18.2.2.1.3.9. mapX:GRID_INTERVAL_Y

Ce paramètre spécifie la densité de la ligne de grille dans la direction Y.

18.2.2.1.3.10. mapX:SCALE

Ce paramètre spécifie l’échelle de la carte pour un élément de la mise en page. Ceci est utile pour assurer une visibilité basée sur l’échelle des couches et des étiquettes même si le client et le serveur peuvent avoir des algorithmes différents pour calculer le dénominateur d’échelle.

18.2.2.1.3.11. mapX:LAYERS

Ce paramètre spécifie les couches pour un élément carte de mise en page. Voir GetMap pour plus d’informations sur ce paramètre.

18.2.2.1.3.12. mapX:STYLES

Ce paramètre spécifie les styles des couches définis dans un élément de mise en page spécifique. Voir GetMap pour plus d’informations sur ce paramètre.

18.2.2.1.4. GetLegendGraphics

Plusieurs paramètres supplémentaires sont disponibles pour modifier la taille des éléments de légende:

  • BOXSPACE espace entre le cadre de légende et le contenu (mm)

  • LAYERSPACE espace vertical entre les couches (mm)

  • LAYERTITLESPACE espace vertical entre le titre de la couche et les éléments suivants (mm)

  • SYMBOLSPACE espace vertical entre le symbole et l’élément suivant (mm)

  • ICONLABELSPACE espace horizontal entre le symbole et le texte de l’étiquette (mm)

  • SYMBOLWIDTH largeur de l’aperçu du symbole (mm)

  • SYMBOLHEIGHT hauteur de l’aperçu du symbole (mm)

Ces paramètres modifient les propriétés de police des titres la couche et des éléments étiquettes :

  • LAYERFONTFAMILY/ITEMFONTFAMILY famille de polices pour le titre de la couche / le texte de l’élément

  • LAYERFONTBOLD/ITEMFONTBOLD TRUE pour utiliser une police en gras

  • LAYERFONTSIZE/ITEMFONTSIZE Taille de police en point

  • LAYERFONTITALIC/ITEMFONTITALIC TRUE pour utiliser la police italique

  • LAYERFONTCOLOR/ITEMFONTCOLOR Code couleur hexadécimal (par exemple #FF0000 pour le rouge)

  • LAYERTITLE FALSE pour obtenir uniquement les graphiques de légende sans le titre de la couche

  • RULELABEL :

    • FALSE pour obtenir uniquement les graphiques de légende sans les étiquettes

    • AUTO pour cacher l’étiquette de l’élément, pour les couches utilisant le rendu Symbole unique

Légende basée sur le contenu. Ces paramètres permettent au client de demander une légende affichant uniquement les symboles des entités se trouvant dans la zone demandée:

  • BBOX la zone géographique pour laquelle la légende doit être construite

  • CRS / SRS le référentiel de coordonnées adopté pour définir les coordonnées BBOX

  • WIDTH/HEIGHT s’ils sont définis, ils doivent correspondre à ceux définis pour la demande GetMap, pour permettre à QGIS Server de mettre à l’échelle les symboles en fonction de la taille de l’image de la carte.

Les fonctionnalités de légende basées sur le contenu sont basées sur l’implémentation de UMN MapServer :

  • SHOWFEATURECOUNT s’il est défini sur TRUE ajoute dans la légende le nombre d’entites comme dans l’image suivante:

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

18.2.2.1.5. GetProjectSettings

Ce type de demande fonctionne de manière similaire à GetCapabilities, mais il est plus spécifique à QGIS Server et permet à un client de lire des informations supplémentaires qui ne sont pas disponibles dans la sortie GetCapabilities:

  • visibilité initiale des couches

  • information sur les attributs des vecteurs et leur type d’éditeur

  • information sur l’ordre des couches et de leur rendu

  • liste des couches publiées en WFS

18.2.2.2. Web Feature Service (WFS)

Les normes 1.0.0 et 1.1.0 WFS implémentées dans QGIS Server fournissent une interface HTTP pour interroger les entités géographiques d’un projet QGIS. Une demande WFS typique définit le projet QGIS à utiliser et la couche à interroger.

Document de spécifications en fonction du numéro de version du service:

Requêtes standard fournies par QGIS Server:

Requête

Description

GetCapabilities

Renvoie des métadonnées XML avec des informations sur le serveur

GetFeature

Renvoie une sélection d’entite

DescribeFeatureType

Renvoie une description des types d’entités et des propriétés

Transaction

Permet aux entités d’être insérées, mises à jour ou supprimées

18.2.2.2.1. GetFeature

Paramètres standard pour la demande GetFeature selon les spécifications OGC WFS 1.0.0 et 1.1.0:

Paramètre

Requis

Description

SERVICE

Oui

Nom du service

VERSION

Non

Version du service

REQUEST

Oui

Nom de la requête

TYPENAME

Non

Nom des couches

OUTPUTFORMAT

Non

Format de sortie

RESULTTYPE

Non

Type de résultat

PROPERTYNAME

Non

Nom des propriétés à renvoyer

MAXFEATURES

Non

Nombre maximum d’entités à renvoyer

SRSNAME

Non

Système de coordonnées de référence

FEATUREID

Non

Filtre les entités par leur identifiant

FILTER

Non

Encodage du filtre OGC

BBOX

Non

Emprise de la carte

SORTBY

Non

Trie les résultats

Outre les paramètres standard, QGIS prend en charge les paramètres suivants :

Paramètre

Requis

Description

MAP

Oui

Spécifiez le fichier de projet QGIS

STARTINDEX

Non

Pagination

GEOMETRYNAME

Non

Type de géométrie à renvoyer

EXP_FILTER

Non

Expression de filtrage

18.2.2.2.1.1. SERVICE

Ce paramètre doit être WFS en cas de requête GetFeature.

Par exemple:

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

18.2.2.2.1.2. VERSION

Ce paramètre permet de spécifier la version du service à utiliser. Les valeurs disponibles pour le paramètre VERSION sont:

  • 1.0.0

  • 1.1.0

Si aucune version n’est indiquée dans la requête, alors 1.1.0 est utilisée par défaut.

Exemple d’URL :

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

18.2.2.2.1.3. REQUEST

Ce paramètre est GetFeature en cas de requête GetFeature.

Exemple d’URL :

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

18.2.2.2.1.4. RESULTTYPE

Ce paramètre peut être utilisé pour indiquer le genre de résultat attendu. Les valeurs possibles sont :

  • results: le comportement par défaut

  • hits: renvoie seulement le décompte des entités

Exemple d’URL :

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

18.2.2.2.1.5. GEOMETRYNAME

Ce paramètre peut être utilisé pour indiquer le type de géométrie attendu pour les entités. Les valeurs possibles sont :

  • extent

  • centroid

  • none

Exemple d’URL :

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

18.2.2.2.1.6. STARTINDEX

Ce paramètre est standard dans WFS 2.0, mais c’est une extension pour WFS 1.0.0. En fait, il peut être utilisé pour ignorer certaines entités de l’ensemble de résultats et en combinaison avec MAXFEATURES, il offre la possibilité de parcourir les résultats.

Exemple d’URL :

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

18.2.2.3. Web Map Tile Service (WMTS)

La norme 1.0.0 WMTS implémentée dans QGIS Server fournit une interface HTTP pour demander des images de carte tuilées générées à partir d’un projet QGIS. Une demande WMTS typique a défini le projet QGIS à utiliser, certains paramètres WMS comme les couches à rendre, ainsi que les paramètres de tuile.

Document de spécifications du service:

Requêtes standard fournies par QGIS Server:

Requête

Description

GetCapabilities

Renvoie des métadonnées XML avec des informations sur le serveur

GetTile

Renvoie une tuile

GetFeatureInfo

Récupère les données (géométrie et valeurs) pour un emplacement de pixel

18.2.2.3.1. GetCapabilities

Paramètres standard pour la demande GetCapabilities selon les spécifications OGC WMTS 1.0.0:

Paramètre

Requis

Description

SERVICE

Oui

Nom du service (WMTS)

REQUEST

Oui

Nom de la requête (GetCapabilities)

Outre les paramètres standard, QGIS prend en charge les paramètres suivants :

Paramètre

Requis

Description

MAP

Oui

Spécifiez le fichier de projet QGIS

Exemple d’URL :

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

18.2.2.3.1.1. SERVICE

Ce paramètre doit être WMTS en cas de requête GetCapabilities.

18.2.2.3.1.2. REQUEST

Ce paramètre est GetCapabilities en cas de requête GetCapabilities.

18.2.2.3.1.3. MAP

Ce paramètre permet de définir le fichier projet QGIS à utiliser.

18.2.2.3.2. GetTile

Paramètres standard pour la demande GetTile selon les spécifications OGC WMTS 1.0.0:

Paramètre

Requis

Description

SERVICE

Oui

Nom du service (WMTS)

REQUEST

Oui

Nom de la requête (GetTile)

LAYER

Oui

Identifiant de la couche

FORMAT

Oui

Format de sortie de la tuile

TILEMATRIXSET

Oui

Nom de la pyramide

TILEMATRIX

Oui

Maillage

TILEROW

Oui

Coordonnées de ligne dans le maillage

TILECOL

Oui

Coordonnées de colonne dans le maillage

Outre les paramètres standard, QGIS prend en charge les paramètres suivants :

Paramètre

Requis

Description

MAP

Oui

Spécifiez le fichier de projet QGIS

Exemple d’URL :

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

Ce paramètre doit être WMTS en cas de requête GetTile.

18.2.2.3.2.2. REQUEST

Ce paramètre est GetTile en cas de requête GetTile.

18.2.2.3.2.3. LAYER

Ce paramètre permet de spécifier la couche à afficher sur la tuile.

De plus, QGIS Server a introduit quelques options pour sélectionner une couche en:

  • un nom court

  • l’identifiant de la couche

Le nom court d’une couche peut être configuré via Propriétés -> Métadonnées dans le menu des couches. Si le nom court est défini, il est utilisé par défaut au lieu du nom de la couche:

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

De plus, il y a une option de projet permettant de sélectionner les couches par leur identifiant dans OWS Server -> WMS capabilities Projet -> proprietes projet. Pour activer cette option, la case à cocher Utiliser les identifiants des couches comme noms doit être cochée.

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

18.2.2.3.2.4. FORMAT

Ce paramètre peut être utilisé pour spécifier le format de l’image de tuile. Les valeurs disponibles sont:

  • jpg

  • jpeg

  • image/jpeg

  • image/png

Si le paramètre FORMAT est différent de l’une de ces valeurs, le format par défaut PNG est utilisé à la place.

18.2.2.3.2.5. TILEMATRIXSET

Ce paramètre permet de définir le SCR à utiliser pour calculer la pyramide sous-jacente. Format : EPSG:XXXX.

18.2.2.3.2.6. TILEMATRIX

Ce paramètre permet de définir la matrice à utiliser pour la tuile de sortie.

18.2.2.3.2.7. TILEROW

Ce paramètre permet de sélectionner la ligne de la tuile pour entrer dans la matrice.

18.2.2.3.2.8. TILECOL

Ce paramètre permet de sélectionner la colonne de la tuile pour entrer dans la matrice.

18.2.2.3.2.9. MAP

Ce paramètre permet de définir le fichier projet QGIS à utiliser.

Comme mentionné dans la table des paramètres GetMap, MAP est obligatoire car une requête a besoin d’un projet QGIS pour fonctionner. Cependant, la variable d’environnement QGIS_PROJECT_FILE peut être utilisée pour définir un projet QGIS par défaut. Dans ce cas spécifique, MAP n’est plus un paramètre obligatoire. Pour plus d’informations, vous pouvez vous référer à Configuration avancée.

18.2.2.3.3. GetFeatureInfo

Paramètres standard pour la demande GetFeatureInfo selon les spécifications OGC WMTS 1.0.0:

Paramètre

Requis

Description

SERVICE

Oui

Nom du service (WMTS)

REQUEST

Oui

Nom de la requête (GetFeatureInfo)

LAYER

Oui

Identifiant de la couche

INFOFORMAT

Non

Format de sortie

I

Non

Coordonnée X d’un pixel

J

Non

Coordonnée Y d’un pixel

TILEMATRIXSET

Oui

voir GetTile

TILEMATRIX

Oui

voir GetTile

TILEROW

Oui

voir GetTile

TILECOL

Oui

voir GetTile

Outre les paramètres standard, QGIS prend en charge les paramètres suivants :

Paramètre

Requis

Description

MAP

Oui

Spécifiez le fichier de projet QGIS

Exemple d’URL :

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

Ce paramètre doit être WMTS en cas de requête GetFeatureInfo.

18.2.2.3.3.2. REQUEST

Ce paramètre est GetFeatureInfo en cas de requête GetFeatureInfo.

18.2.2.3.3.3. MAP

Ce paramètre permet de définir le fichier projet QGIS à utiliser.

Comme mentionné dans la table des paramètres GetMap, MAP est obligatoire car une requête a besoin d’un projet QGIS pour fonctionner. Cependant, la variable d’environnement QGIS_PROJECT_FILE peut être utilisée pour définir un projet QGIS par défaut. Dans ce cas spécifique, MAP n’est plus un paramètre obligatoire. Pour plus d’informations, vous pouvez vous référer à Configuration avancée.

18.2.2.3.3.4. LAYER

Ce paramètre permet de spécifier la couche à afficher sur la tuile.

De plus, QGIS Server a introduit quelques options pour sélectionner une couche en:

  • un nom court

  • l’identifiant de la couche

Le nom court d’une couche peut être configuré via Propriétés -> Métadonnées dans le menu des couches. Si le nom court est défini, il est utilisé par défaut au lieu du nom de la couche:

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

De plus, il y a une option de projet permettant de sélectionner les couches par leur identifiant dans OWS Server -> WMS capabilities Projet -> proprietes projet. Pour activer cette option, la case à cocher Utiliser les identifiants des couches comme noms doit être cochée.

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

18.2.2.3.3.5. INFOFORMAT

Ce paramètre permet de définir le format de sortie du résultat. Les valeurs disponibles sont:

  • text/xml

  • text/html

  • text/plain

  • application/vnd.ogc.gml

La valeur par défaut est text/plain.

18.2.2.3.3.6. I

Ce paramètre permet de définir la coordonnée X du pixel pour lequel nous voulons récupérer les informations sous-jacentes.

18.2.2.3.3.7. J

Ce paramètre permet de définir la coordonnée Y du pixel pour lequel nous voulons récupérer les informations sous-jacentes.

18.2.2.4. WFS3 (OGC API Features)

WFS3 est la première implémentation de la nouvelle génération de protocoles OGC. Il est décrit par le document OGC API - Features - Part 1: Core.

Voici un résumé informel rapide des différences les plus importantes entre le protocole WFS bien connu et WFS3:

  • WFS3 est basé sur une API REST

  • L’API WFS3 doit suivre les spécifications OPENAPI

  • WFS3 prend en charge plusieurs formats de sortie, mais il n’en dicte aucun (seuls GeoJSON et HTML sont actuellement disponibles dans QGIS WFS3) et il utilise la négociation de contenu pour déterminer le format qui doit être servi au client

  • JSON et HTML sont des citoyens de première classe dans WFS3

  • WFS3 est auto-documenté (via le point de terminaison /api)

  • WFS3 est entièrement navigable (via des liens) et navigable

Important

Alors que l’implémentation WFS3 dans QGIS peut utiliser le paramètre MAP pour spécifier le fichier de projet, aucun paramètre de requête supplémentaire n’est autorisé par la spécification OPENAPI. Pour cette raison, il est fortement recommandé que MAP ne soit pas exposé dans l’URL et que le fichier de projet soit spécifié dans l’environnement par d’autres moyens (c’est-à-dire en définissant QGIS_PROJECT_FILE dans l’environnement via une règle de réécriture de serveur Web).

Note

Le point de terminaison API fournit une documentation complète de tous les paramètres et formats de sortie pris en charge de votre service. Les paragraphes suivants ne décrivent que les plus importants.

18.2.2.4.1. Représentation des ressources

L’implémentation de WFS3 dans QGIS Server prend actuellement en charge les formats de représentation (sortie) de ressources suivants:

  • HTML

  • JSON

Le format réellement servi dépendra de la négociation de contenu, mais un format spécifique peut être explicitement demandé en ajoutant un spécificateur de format aux points de terminaison.

Les extensions de spécificateur de format prises en charge sont:

  • .json

  • .html

Des alias de spécificateur de format supplémentaires peuvent être définis par des points de terminaison spécifiques:

  • .openapi: alias pour .json pris en charge par le point de terminaison API

  • .geojson: alias pour .json pris en charge par les points de terminaison Features et Feature

18.2.2.4.2. Points de terminaison

L’API fournit une liste de points de terminaison que les clients peuvent récupérer. Le système est conçu de telle manière que chaque réponse fournit un ensemble de liens pour naviguer à travers toutes les ressources fournies.

Les points de terminaison fournis par l’implémentation de QGIS sont:

Nom

Chemin

Description

Page de destination

/

Informations générales sur le service et fournit des liens vers tous les points de terminaison disponibles

Conformité

/conformance

Informations sur la conformité du service aux normes

API

/api

Description complète des noeuds finaux fournis par le service et de la structure des documents retournés

Les collections

/collections

Liste de toutes les collections (c’est-à-dire couches vectorielles) fournies par le service

Collection

/collections/{collectionId}

Informations sur une collection (nom, métadonnées, étendue, etc.)

Fonctionnalités

/collections/{collectionId}/items

Liste des entites fournies par la collection

Entite

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

Informations sur une seule entité

18.2.2.4.2.1. Page de destination

Le critère d’évaluation principal est la page destination. À partir de cette page, il est possible de naviguer vers tous les points de terminaison de service disponibles. La page de destination doit fournir des liens vers

  • la définition de l’API (chemin d’accès /api relations de liaison service-desc et service-doc),

  • la déclaration de conformité (chemin /conformance, relation de liaison conformance), et

  • les Collections (chemin /collections, relation de lien data).

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

Fig. 18.9 Page de destination du serveur WFS3

18.2.2.4.2.2. Définition de l’API

La Définition API est une description conforme à OPENAPI de l’API fournie par le service. Dans sa représentation HTML, il s’agit d’une page consultable où tous les points de terminaison et leurs formats de réponse sont répertoriés et documentés avec précision. Le chemin de ce point de terminaison est /api.

La définition de l’API fournit une documentation complète et faisant autorité du service, y compris tous les paramètres pris en charge et les formats renvoyés.

Note

Ce point de terminaison est analogue aux GetCapabilities de WFS

18.2.2.4.2.3. Liste des collections

Le point de terminaison des collections fournit une liste de toutes les collections disponibles dans le service. Étant donné que le service « serves  » un seul projet QGIS, les collections sont les couches vectorielles du projet en cours (si elles ont été publiées en tant que WFS dans les propriétés du projet). Le chemin de ce point de terminaison est /collections/.

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

Fig. 18.10 Page de liste des collections du serveur WFS3

18.2.2.4.2.4. Détail de la collection

Bien que le point de terminaison des collections ne fournisse pas d’informations détaillées sur chaque collection disponible, ces informations sont disponibles dans les points de terminaison /collections/{collectionId}. Les informations typiques incluent l’étendue, une description, les SCR et autres métadonnées.

La représentation HTML fournit également une carte consultable avec les entites disponibles.

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

Fig. 18.11 Page de détail de la collecte du serveur WFS3

18.2.2.4.2.5. Liste des entites

Ce point de terminaison fournit une liste de toutes les entites d’une collection connaissant l’ID de la collection. Le chemin de ce noeud final est /collections/{collectionId}/items .

La représentation HTML fournit également une carte consultable avec les entites disponibles.

Note

Ce point de terminaison est analogue à GetFeature dans WFS 1 et WFS 2.

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

Fig. 18.12 Page de liste des entites du serveur WFS3

18.2.2.4.2.6. Détail des entités

Ce point de terminaison fournit toutes les informations disponibles sur une seule entité, y compris les attributs de l’entité et sa géométrie. Le chemin de ce point de terminaison est /collections/{collectionId}/items/{itemId}.

La représentation HTML fournit également une carte consultable avec la géométrie de l’entité.

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

Fig. 18.13 Page de détail des entités du serveur WFS3

18.2.2.4.4. Filtrage des entités

Les entites disponibles dans une collection peuvent être filtrées / recherchées en spécifiant un ou plusieurs filtres.

18.2.2.4.4.1. Filtre date et heure

Les collections avec des attributs date et / ou datetime peuvent être filtrées en spécifiant un argument datetime dans la chaîne de requête. Par défaut, le premier champ date / datetime est utilisé pour le filtrage. Ce comportement peut être configuré en définissant une dimension « Date » ou « Heure » dans QGIS Server -> Dimension de la boîte de dialogue des propriétés de la couche.

La syntaxe de filtrage de la date et de l’heure est entièrement décrite dans Définition de l’API et prend également en charge les plages (les valeurs de début et de fin sont incluses) en plus des valeurs uniques.

Exemples d’URL:

Renvoie uniquement les entités dont la dimension de date correspond à 2019-01-01

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

Renvoie uniquement les entités dont la dimension datetime correspond à 2019-01-01T01: 01: 01

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

Renvoie uniquement les entités dont la dimension datetime se situe dans la plage 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. Filtre de boîte englobante

Un filtre spatial de boîte englobante peut être spécifié avec le paramètre bbox :

L’ordre des éléments séparés par des virgules est le suivant:

  • Coin inférieur gauche, longitude WGS 84

  • Coin inférieur gauche, latitude WGS 84

  • Coin supérieur droit, longitude WGS 84

  • Coin supérieur droit, latitude WGS 84

Note

Les spécifications OGC autorisent également un spécificateur bbox à 6 éléments où les troisième et sixième éléments sont les composants Z, ce qui n’est pas encore pris en charge par le serveur QGIS.

Exemple d’URL :

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

Si le SCR de la boîte englobante n’est pas WGS84 (http://www.opengis.net/def/crs/OGC/1.3/CRS84), un SCR différent peut être spécifié en utilisant le paramètre facultatif bbox -crs. L’identifiant du SCR doit être au format OGC URI:

Exemple d’URL :

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. Filtres d’attributs

Les filtres d’attribut peuvent être combinés avec le filtre de boîte englobante et ils se présentent sous la forme générale: <attribute name>=<attribute value>. Plusieurs filtres peuvent être combinés à l’aide de l’opérateur AND.

Exemple d’URL :

filtre toutes les entites où l’attribut name est égal à « ma valeur »

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

Les correspondances partielles sont également prises en charge en utilisant un opérateur * (« etoile »):

Exemple d’URL :

filtre toutes les entitesoù l’attribut nom se termine par « value »

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

18.2.2.4.5. Sélection d’attribut

Les attributs d’entite renvoyés par un appel Liste des entites peuvent être limités en ajoutant une liste de noms d’attributs séparés par des virgules dans l’argument de chaîne de requête facultatif propriétés.

Exemple d’URL :

renvoie uniquement l’attribut name

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

18.2.2.4.6. Le langage du modèle HTML

La représentation HTML utilise un ensemble de modèles HTML pour générer la réponse. Le modèle est analysé par un moteur de modèle appelé inja <https://github.com/pantor/inja#tutorial> _. Les modèles peuvent être personnalisés en les remplaçant (voir: Remplacements de modèle). Le modèle a accès aux mêmes données disponibles pour la représentation JSON et quelques fonctions supplémentaires sont disponibles pour le modèle:

18.2.2.4.6.1. Fonctions de modèle personnalisées

  • path_append(path) : ajoute un chemin de répertoire à l’url actuelle

  • path_chomp(n) : supprime le nombre spécifié « n » de composants de répertoire du chemin d’URL actuel

  • json_dump(): affiche les données JSON transmises au modèle

  • static(path): renvoie l’URL complète du chemin statique spécifié. Par exemple: « static(« /style/black.css ») » avec un chemin racine « http://localhost/qgisserver/wfs3 » renverra « http://localhost/qgisserver/wfs3/static/style/black.css ».

  • links_filter(links, key, value): retourne les liens filtrés d’une liste de liens

  • content_type_name(content_type): renvoie un nom court à partir d’un type de contenu, par exemple « text / html » renverra « HTML »

18.2.2.4.6.2. Remplacements de modèle

Les modèles et les actifs statiques sont stockés dans des sous-répertoires du répertoire de ressources de l’API par défaut du serveur QGIS ( /usr/share/qgis/resources/server/api/ sur un système Linux), le répertoire de base peut être personnalisé en modifiant le variable d’environnement QGIS_SERVER_API_RESOURCES_DIRECTORY.

Une installation Linux typique aura l’arborescence de répertoires suivante:

/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

Pour remplacer les modèles, vous pouvez copier l’arborescence entière vers un autre emplacement et pointer vers le nouvel emplacement. QGIS_SERVER_API_RESOURCES_DIRECTORY

18.2.2.5. Paramètres supplémentaires pris en charge par tous les types de demande

Les paramètres supplémentaires suivants sont pris en charge par tous les protocoles.

  • FILE_NAME: si défini, la réponse du serveur sera envoyée au client sous forme de pièce jointe avec le nom de fichier spécifié.

Note

Non disponible pour WFS3.

  • MAP: similaire à MapServer, le paramètre MAP peut être utilisé pour spécifier le chemin d’accès au fichier de projet QGIS. Vous pouvez spécifier un chemin absolu ou un chemin relatif à l’emplacement de l’exécutable du serveur (qgis_mapserv.fcgi). S’il n’est pas spécifié, QGIS Server recherche les fichiers .qgs dans le répertoire où se trouve l’exécutable du serveur.

    Exemple:

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

Note

Vous pouvez définir un QGIS_PROJECT_FILE en tant que variable d’environnement pour indiquer à l’exécutable du serveur où trouver le fichier de projet QGIS. Cette variable sera l’emplacement où QGIS recherchera le fichier de projet. S’il n’est pas défini, il utilisera le paramètre MAP dans la demande et examinera enfin le répertoire exécutable du serveur.

18.2.2.6. REDLINING

Cette fonctionnalité est disponible et peut être utilisée avec les requêtes GetMap et GetPrint.

La fonction de mise en évidence peut être utilisée pour transmettre des géométries et des étiquettes dans la demande qui se chevauchent par le serveur sur l’image retournée standard (carte). Cela permet à l’utilisateur de mettre l’accent ou peut-être d’ajouter des commentaires (étiquettes) à certaines zones, emplacements, etc. qui ne figurent pas sur la carte standard.

La demande est au 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

Voici l’image produite par la demande ci-dessus dans laquelle un polygone et une étiquette sont dessinés au-dessus de la carte normale:

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

Fig. 18.14 Réponse du serveur à une demande GetMap avec paramètres de mise en évidence

Vous pouvez voir qu’il y a plusieurs paramètres dans cette demande:

  • HIGHLIGHT_GEOM: Vous pouvez ajouter POINT, MULTILINESTRING, POLYGON etc. Il prend en charge les géométries en plusieurs parties. Voici un exemple: HIGHLIGHT_GEOM = MULTILINESTRING((0 0, 0 1, 1 1)). Les coordonnées doivent être dans le CRS de la demande GetMap / GetPrint.

  • HIGHLIGHT_SYMBOL: cela contrôle la manière dont la géométrie est définie et vous pouvez modifier la largeur, la couleur et l’opacité du trait.

  • HIGHLIGHT_LABELSTRING: vous pouvez transmettre votre texte d’étiquetage à ce paramètre.

  • HIGHLIGHT_LABELSIZE: ce paramètre contrôle la taille de l’étiquette.

  • HIGHLIGHT_LABELCOLOR: ce paramètre contrôle la couleur de l’étiquette.

  • HIGHLIGHT_LABELBUFFERCOLOR: ce paramètre contrôle la couleur du tampon d’étiquette.

  • HIGHLIGHT_LABELBUFFERSIZE: ce paramètre contrôle la taille du tampon d’étiquette.

18.2.2.7. Couches WMS externes

QGIS Server permet d’inclure des couches de serveurs WMS externes dans les requêtes WMS GetMap et WMS GetPrint. Cela est particulièrement utile si un client Web utilise une couche d’arrière-plan externe dans la carte Web. Pour des raisons de performances, ces couches doivent être demandées directement par le client Web (et non en cascade via QGIS Server). Cependant, pour l’impression, ces couches doivent être mises en cascade via le serveur QGIS afin d’apparaître sur la carte imprimée.

Des couches externes peuvent être ajoutées au paramètre LAYERS sous la forme EXTERNAL_WMS:1. Les paramètres des couches WMS externes (par exemple, url, format, dpiMode, crs, couches, styles) peuvent être donnés ultérieurement comme paramètres de service 2: 3. Dans une demande GetMap, cela pourrait ressembler à ceci:

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

De même, des couches externes peuvent être utilisées dans les demandes GetPrint:

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