3. 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.1 et 1.3.0

  • WFS 1.0.0 et 1.1.0

  • OGC API - Features (WFS3)

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

3.1. Web Map Service (WMS)

Les normes WMS 1.1.1 et 1.3.0 mises en œuvre dans QGIS Server fournissent une interface HTTP pour demander des images de cartes ou de légendes générées à partir d’un projet QGIS. Une requête WMS typique définit le projet QGIS à utiliser, les couches à rendre ainsi que le format d’image à générer. Un support de base est également disponible pour les 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

3.1.1. GetMap

Paramètres standard pour la requête GetMap selon les spécifications OGC WMS 1.1.1 et 1.3.0 :

Paramètre

Requis

Description

SERVICE

Oui

Nom du service (WMS)

VERSION

Oui

Version du service

REQUEST

Oui

Nom de la requete (GetMap)

LAYERS

Non

Couches à afficher

STYLES

Non

Style des couches

SRS / CRS

Oui

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

BBOX

Oui

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

Nom du fichier téléchargé

Seulement pour FORMAT=application/dxf

FORMAT_OPTIONS

Non

Options du format de fichier spécifié

Seulement pour FORMAT=application/dxf

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

SERVICE

Ce paramètre doit être WMS.

Par exemple:

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

VERSION

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

  • 1.1.1

  • 1.3.0

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

REQUEST

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

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 les Propriétés ► Métadonnées de la couche. 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
&...

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.

SRS / CRS

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

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.1
&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
&...

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.

Le paramètre BBOX est formé par min_a,min_b,max_a,max_b mais les axes a et``b`` peuvent varier en fonction du paramètre actuel de VERSION

  • En WMS 1.1.1, l’ordre des axes est toujours est/nord

  • En WMS 1.3.0, l’ordre des axes dépend du SCR

Par exemple, dans le cas d’un SCR EPSG:4326 et du protocole WMS en version 1.1.1, a est la longitude (est) et b la latitude (nord), la requête est donc la suivante :

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

Mais dans le cas du protocole WMS en version 1.3.0, l’ordre des axes définis dans la base EPSG est nord/est donc a est la latitude et b la longitude :

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

WIDTH

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

HEIGHT

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

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
    

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.

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.

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

DPI

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

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.

OPACITIES

Liste des valeurs d’opacité séparées par des virgules. L’opacité peut être définie au niveau de la couche ou du groupe. Les valeurs autorisées vont de 0 (totalement transparent) à 255 (totalement opaque).

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:

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

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.

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. 3.1 Réponse du serveur à une demande GetMap avec le paramètre SELECTION

FORMAT-OPTIONS

Ce paramètre peut être utilisé pour spécifier des options pour le format sélectionné. Uniquement pour « FORMAT=application/dxf ». Une liste de paires clé:valeur 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.

  • NO_MTEXT : Utilisez TEXT au lieu de MTEXT pour les étiquettes.

  • FORCE_2D : Force la sortie 2D. Ceci est nécessaire pour la largeur de la polyligne.

TILED

Pour des raisons de performance, QGIS server peut être utilisé en mode « tiled ». Dans ce mode, le client demande plusieurs petites tuiles de taille fixe, et les assemblent pour former la carte entière. Ce faisant, les symboles à la limite ou près de la limite entre deux tuiles peuvent apparaître coupés, car ils ne sont présents que dans une des tuiles.

Mettez le paramètre TILED à TRUE pour indiquer au logiciel QGIS Server de travailler en mode tiled, et d’appliquer le Tile buffer configuré dans le projet QGIS (voir Configurer votre projet).

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.

3.1.2. GetFeatureInfo

Paramètres standard pour la requête GetFeatureInfo selon les spécifications OGC WMS 1.1.1 et 1.3.0 :

Paramètre

Requis

Description

SERVICE

Oui

Nom du service (WMS)

VERSION

Non

Version du service

REQUEST

Oui

nom de la requete (GetFeatureInfo)

QUERY_LAYERS

Oui

Couches à interroger

LAYERS

Oui

Couches de données à afficher (identique à QUERY_LAYERS)

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

TRANSPARENT

Non

Arrière-plan transparent

INFO_FORMAT

Non

Format de sortie

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

J

Non

Ligne de pixels du point à interroger

Y

Non

Identique au paramètre J, mais dans WMS 1.1.1

WMS_PRECISION

Non

La précision (nombre de chiffres) à utiliser lors du retour de la géométrie (voir how to add geometry to feature response). La valeur par défaut est « -1 », ce qui signifie que la précision définie dans le projet est utilisée.

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

FILTER

Non

Sous-ensemble d’entités

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

REQUEST

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

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

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.

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.

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.

X

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

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.

Y

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

FI_POINT_TOLERANCE

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

FI_LINE_TOLERANCE

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

FI_POLYGON_TOLERANCE

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

FILTER_GEOM

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

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

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

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

Version du service

REQUEST

Oui

Nom de la requête (GetPrint)

LAYERS

Non

Couches à afficher

TEMPLATE

Oui

Modèle de mise en page à utiliser

SRS / CRS

Oui

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

FORMAT

Non

Format de sortie

ATLAS_PK

Non

Entité atlas

STYLES

Non

Style des couches

TRANSPARENT

Non

Arrière-plan transparent

OPACITIES

Non

Opacité pour une couche ou un groupe

SELECTION

Non

Mettre en évidence d’entités

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
&TEMPLATE=Layout%201
&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>

REQUEST

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

TEMPLATE

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

FORMAT

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

  • png (valeur par défaut)

  • image/png

  • jpg

  • jpeg

  • image/jpeg

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

ATLAS_PK

Ce paramètre permet d’activer le rendu Atlas en indiquant quelles entités 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’entités est renvoyé. Pour tous les autres formats, une seule page est renvoyée.

mapX:EXTENT

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

mapX:ROTATION

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

mapX:GRID_INTERVAL_X

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

mapX:GRID_INTERVAL_Y

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

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.

mapX:LAYERS

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

mapX:STYLES

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

3.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)

  • FORMAT, image/jpeg, image/png ou application/json. Pour le JSON, les symboles sont encodés en Base64 et la plupart des autres options relatives à la mise en page ou aux polices ne sont pas prises en compte car la légende doit être construite côté client.

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

  • SRCWIDTH / SRCHEIGHT si elles sont définies, elles doivent correspondre aux paramètres WIDTH et HEIGHT de la requête 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: <https://www.mapserver.org/development/rfc/ms-rfc-101.html> `_

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

    ../../_images/getfeaturecount_legend.png
  • RULE à définir sur un nom de règle donné pour n’obtenir que le symbole de règle nommé

  • WIDTH/HEIGHT la taille de l’image de légende générée si le paramètre RULE est défini

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

  • montrer si un groupe dans l’arbre des couches est mutualy exclusive

3.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’entité

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

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

SERVICE

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

Par exemple:

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

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

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

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

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

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

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

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

SERVICE

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

REQUEST

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

MAP

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

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

SERVICE

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

REQUEST

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

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 les Propriétés ► Métadonnées de la couche. 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
&...

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.

TILEMATRIXSET

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

TILEMATRIX

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

TILEROW

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

TILECOL

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

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.

3.3.3. GetFeatureInfo

Paramètres standard pour la requête GetFeatureInfo selon la spécification 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

SERVICE

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

REQUEST

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

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.

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 les Propriétés ► Métadonnées de la couche. 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
&...

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.

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.

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.

3.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 <http://docs.opengeospatial.org/is/17-069r3/17-069r3.html> _ document.

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 <https://en.wikipedia.org/wiki/Representational_state_transfer> `_ _

  • L’API WFS3 doit suivre les spécifications OPENAPI <https://en.wikipedia.org/wiki/OpenAPI_Specification> _

  • 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 <https://en.wikipedia.org/wiki/Content_negotiation> _ pour déterminer le format 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.

3.4.1. Représentation des ressources

L’implémentation de QGIS Server WFS3 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

3.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 entités fournies par la collection

Entité

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

Informations sur une seule entité

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. 3.2 Page de destination du serveur WFS3

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

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. 3.3 Page de liste des collections du serveur WFS3

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 entités disponibles.

../../_images/server_wfs3_collection.png

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

Liste des entités

Ce point de terminaison fournit une liste de toutes les entités 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 entités disponibles.

Note

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

../../_images/server_wfs3_features.png

Fig. 3.5 Page de liste des entités du serveur WFS3

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. 3.6 Page de détail des entités du serveur WFS3

3.4.3. Pagination

La pagination d’une longue liste d” entités est implémentée dans l’API OGC via des liens suivant et précédent, QGIS serveur construit ces liens en ajoutant limite et décalage comme paramètres de chaîne de requête.

Exemple d’URL :

http://localhost/qgisserver/wfs3/collection_one/items.json?offset=10&limit=10

Note

La valeur maximale acceptable pour limit peut être configurée avec le paramètre de configuration du serveur QGIS_SERVER_API_WFS3_MAX_LIMIT (voir Variables d’environnement).

3.4.4. Filtrage des entités

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

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

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 CRS de la boîte englobante n’est pas WGS 84, un CRS différent peut être spécifié en utilisant le paramètre optionnel bbox-crs. L’identificateur de format du CRS 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

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: 1=2. Plusieurs filtres peuvent être combinés à l’aide de l’opérateur AND.

Exemple d’URL :

filtre toutes les entités 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 entités où l’attribut name se termine par « value »

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

3.4.5. Tri des éléments

Il est possible d’ordonner le résultat par valeur de champ en utilisant le paramètre d’interrogation « sortby ».

Par défaut, les résultats sont triés par ordre croissant. Pour trier les résultats par ordre décroissant, un drapeau booléen (sortdesc) peut être activé :

http://localhost/qgisserver/wfs3/collection_one/items.json?sortby=name&sortdesc=1

3.4.6. Sélection d’attribut

Les attributs d’entité renvoyés par un appel Liste des entités 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

3.4.7. Personnaliser les pages 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. 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, avec quelques fonctions supplémentaires :

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 »

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

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

3.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 requête GetMap 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

L’équivalent de GetPrint au format (notez que le paramètre mapX: est ajouté pour dire quelle carte a un redlining): :

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

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. 3.7 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_LABELFONT : Ce paramètre contrôle la police de l’étiquette (par exemple Arial)

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

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

3.8. QGIS Server catalogue

QGIS Serveur Catalogue est un simple catalogue listant les projets QGIS diffusés par QGIS Serveur. Il offre une interface web conviviale, entièrement navigable et dotée de fonctionnalités cartographiques de base permettant de parcourir les jeux de données des projets QGIS.

QGIS Serveur catalogue utilise les variables QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES et QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS (voir Variables d’environnement)

../../_images/server_project_list.png

Fig. 3.8 Page listant les projets de QGIS Serveur catalogue

Vous pouvez consulter les métadonnées associées à un projet ainsi que les services proposés. Les liens vers ces services sont également donnés.

../../_images/server_project_metadata_services.png

Fig. 3.9 Catalogue Serveur, métadonnées associées à un projet ainsi que les services qu’il propose.

En parcourant un projet, les jeux de données disponibles sont listés.

../../_images/server_browse_dataset.png

Fig. 3.10 Parcourir un jeu de données fourni par un projet dans le Catalogue Serveur

Faites un clic droit sur une couche pour afficher sa table attributaire.

../../_images/server_attribute_table.png

Fig. 3.11 Table d’attributs associée à la couche

Il est possible de consulter les informations des entités de la carte comme le montre l’image ci-dessous :

../../_images/server_info_results.png

Fig. 3.12 Consulter les information d’une entité de la carte