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 |
Renvoie une carte |
|
Récupère les données (géométrie et valeurs) pour un emplacement de pixel |
|
Renvoie les symboles de légende |
Demandes des fournisseurs fournies par QGIS Server:
Requête |
Description |
---|---|
Renvoie une composition QGIS |
|
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 |
---|---|---|
Oui |
Nom du service (WMS) |
|
Oui |
Version du service |
|
Oui |
Nom de la requete (GetMap) |
|
Non |
Couches à afficher |
|
Non |
Style des couches |
|
Oui |
Système de coordonnées de référence |
|
Oui |
Emprise de la carte |
|
Oui |
Largeur de l’image en pixels |
|
Oui |
Hauteur de l’image en pixels |
|
Non |
Format de l’image |
|
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 |
---|---|---|
Oui |
Spécifiez le fichier de projet QGIS |
|
Non |
Spécifiez la couleur d’arrière-plan |
|
Non |
Spécifiez la résolution de sortie |
|
Non |
Compression JPEG |
|
Non |
Opacité pour une couche ou un groupe |
|
Non |
Sous-ensemble d’entités |
|
Non |
Mettre en évidence d’entités |
|
FILE_NAME |
Non |
Nom du fichier téléchargé Seulement pour |
Non |
Options du format de fichier spécifié Seulement pour |
|
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
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
du 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 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.
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
etSYMBOLLAYERSYMBOLOGY
.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 |
---|---|---|
Oui |
Nom du service (WMS) |
|
Non |
Version du service |
|
Oui |
nom de la requete (GetFeatureInfo) |
|
Oui |
Couches à interroger |
|
Oui |
Couches de données à afficher (identique à QUERY_LAYERS) |
|
Non |
Style des couches |
|
Oui |
Système de coordonnées de référence |
|
Non |
Emprise de la carte |
|
Oui |
Largeur de l’image en pixels |
|
Oui |
Hauteur de l’image en pixels |
|
Non |
Arrière-plan transparent |
|
Non |
Format de sortie |
|
Non |
Nombre maximum d’entités à renvoyer |
|
Non |
Colonne de pixels du point à interroger |
|
Non |
Identique au paramètre I, mais dans WMS 1.1.1 |
|
Non |
Ligne de pixels du point à interroger |
|
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 |
---|---|---|
Oui |
Spécifiez le fichier de projet QGIS |
|
Non |
Sous-ensemble d’entités |
|
Non |
Tolérance en pixels pour les couches de points |
|
Non |
Tolérance en pixels pour les couches de lignes |
|
Non |
Tolérance en pixels pour les couches de polygones |
|
Non |
Filtrage géométrique |
|
Non |
Ajouter des conseils de carte à la sortie |
|
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 |
---|---|---|
Oui |
Spécifiez le fichier de projet QGIS |
|
Oui |
Nom du service (WMS) |
|
Non |
Version du service |
|
Oui |
Nom de la requête (GetPrint) |
|
Non |
Couches à afficher |
|
Oui |
Modèle de mise en page à utiliser |
|
Oui |
Système de coordonnées de référence |
|
Non |
Format de sortie |
|
Non |
Entité atlas |
|
Non |
Style des couches |
|
Non |
Arrière-plan transparent |
|
Non |
Opacité pour une couche ou un groupe |
|
Non |
Mettre en évidence d’entités |
|
Non |
Étendue de la carte “X” |
|
Non |
Couches de la carte “X” |
|
Non |
Style de couche de la carte “X” |
|
Non |
Échelle des couches de la carte “X” |
|
Non |
Rotation de la carte “X” |
|
Non |
Intervalle de grille sur l’axe x de la carte “X” |
|
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:
où 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
ouapplication/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 grasLAYERFONTSIZE/ITEMFONTSIZE Taille de police en point
LAYERFONTITALIC/ITEMFONTITALIC
TRUE
pour utiliser la police italiqueLAYERFONTCOLOR/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 étiquettesAUTO
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: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éfauthits
: 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
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 Utiliser les identifiants des couches comme noms doit être cochée.
. Pour activer cette option, la case à cocherhttp://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 |
|
TILEMATRIX |
Oui |
|
TILEROW |
Oui |
|
TILECOL |
Oui |
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
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 Utiliser les identifiants des couches comme noms doit être cochée.
. Pour activer cette option, la case à cocherhttp://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é |
|
Informations sur la conformité du service aux normes |
API |
|
Description complète des noeuds finaux fournis par le service et de la structure des documents retournés |
Les collections |
|
Liste de toutes les collections (c’est-à-dire |
Collection |
|
Informations sur une collection (nom, métadonnées, étendue, etc.) |
Fonctionnalités |
|
Liste des entités fournies par la collection |
Entité |
|
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 liaisonservice-desc
etservice-doc
),la déclaration de conformité (chemin
/conformance
, relation de liaisonconformance
), etles Collections (chemin
/collections
, relation de liendata
).
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/
.
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.
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.
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é.
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 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 actuellepath_chomp(n)
: supprime le nombre spécifié « n » de composants de répertoire du chemin d’URL actueljson_dump()
: affiche les données JSON transmises au modèlestatic(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 lienscontent_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:
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)
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.
En parcourant un projet, les jeux de données disponibles sont listés.
Faites un clic droit sur une couche pour afficher sa table attributaire.
Il est possible de consulter les informations des entités de la carte comme le montre l’image ci-dessous :