QGIS Server supports some vendor parameters and requests that greatly enhance the possibilities of customising its behavior. The following paragraphs list the vendor parameters and the environment variables supported by the server.
In the WMS GetMap request, QGIS Server accepts a couple of extra parameters in addition to the standard parameters according to the OGC WMS 1.3.0 specification:
DPI parameter: The DPI parameter can be used to specify the requested output resolution.
Voorbeeld:
http://localhost/cgi-bin/qgis_mapserv.fcgi?REQUEST=GetMap&DPI=300&...
IMAGE_QUALITY parameter is only used for JPEG images. By default, the JPEG compression is -1. You can change the default per QGIS project in the OWS Server ‣ WMS capabilities menu of the Project ‣ Project Properties dialog. If you want to override it in a GetMap request you can do it using the IMAGE_QUALITY parameter:
http://localhost/cgi-bin/qgis_mapserv.fcgi?\
REQUEST=GetMap&FORMAT=image/jpeg&IMAGE_QUALITY=65&...
image/png; mode= can be used to override the png format. You can choose between image/png; mode=16bit, image/png; mode=8bit and image/png; mode=1bit. This can shrink the output image size quite a bit. Example:
http://localhost/cgi-bin/qgis_mapserv.fcgi?\
REQUEST=GetMap&FORMAT=image/png; mode=8bit&...
OPACITIES parameter: Opacity can be set on layer or group level. Allowed values range from 0 (fully transparent) to 255 (fully opaque).
Voorbeeld:
http://localhost/cgi-bin/qgis_mapserv.fcgi?\
REQUEST=GetMap&LAYERS=mylayer1,mylayer2&OPACITIES=125,200&...
FILTER parameter: Subsets of layers can be selected with the FILTER parameter. Syntax is basically the same as for the QGIS subset string. However, there are some restrictions to avoid SQL injections into databases via QGIS server:
Text strings need to be enclosed with quotes (single quotes for strings, double quotes for attributes) A space between each word / special character is mandatory. Allowed Keywords and special characters are ‘AND’,’OR’,’IN’,’=’,’<’,’>=’, ‘>’,’>=’,’!=*,’(‘,’)’. Semicolons in string expressions are not allowed
Voorbeeld:
http://myserver.com/cgi/qgis_mapserv.fcgi?REQUEST=GetMap&LAYERS=mylayer1,mylayer2&FILTER=mylayer1:"OBJECTID" = 3;mylayer2:'text' = 'blabla'&....
Notitie
It is possible to make attribute searches via GetFeatureInfo and omit the X/Y parameter if a FILTER is there. QGIS server then returns info about the matching features and generates a combined bounding box in the xml output.
SELECTION parameter: The SELECTION parameter can highlight features from one or more layers. Vector features can be selected by passing comma separated lists with feature ids in GetMap and GetPrint.
Voorbeeld:
http://myserver.com/cgi/qgis_mapserv.fcgi?REQUEST=GetMap&LAYERS=mylayer1,mylayer2&SELECTION=mylayer1:3,6,9;mylayer2:1,5,6&...
The following image presents the response from a GetMap request using the SELECTION option e.g. http://myserver.com/...&SELECTION=countries:171,65. As those features id’s correspond in the source dataset to France and Romania they’re highlighted in yellow.
It is possible to export layers in the DXF format using the GetMap Request. Only layers that have read access in the WFS service are exported in the DXF format. Here is a valid REQUEST and a documentation of the available parameters:
http://your.server.address/wms/liegenschaftsentwaesserung/abwasser_werkplan?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&LAYERS=Haltungen,Normschacht,Spezialbauwerke&STYLES=&CRS=EPSG%3A21781&BBOX=696136.28844801,245797.12108743,696318.91114315,245939.25832905&WIDTH=1042&HEIGHT=811&FORMAT=application/dxf&FORMAT_OPTIONS=MODE:SYMBOLLAYERSYMBOLOGY;SCALE:250&FILE_NAME=werkplan_abwasser.dxf
Parameters:
FORMAT_OPTIONS Parameters:
QGIS Server WMS GetFeatureInfo requests supports the following extra optional parameters to define the tolerance for point, line and polygon layers:
QGIS server has the capability to create print composer output in pdf or pixel format. Print composer windows in the published project are used as templates. In the GetPrint request, the client has the possibility to specify parameters of the contained composer maps and labels.
Example:
The published project has two composer maps. In the GetProjectSettings response, they are listed as possible print templates:
<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>
The client has now the information to request a print output:
http://myserver.com/cgi/qgis_mapserv.fcgi?...&REQUEST=GetPrint&TEMPLATE=Druckzusammenstellung 1&map0:EXTENT=xmin,ymin,xmax,ymax&map0:ROTATION=45&FORMAT=pdf&DPI=300
Parameters in the GetPrint request are:
Verscheidene aanvullende parameters zijn beschikbaar om de grootte van de elementen van de Legenda te wijzigen:
BOXSPACE ruimte tussen frame van Legenda en inhoud (mm)
LAYERTITLESPACE verticale ruimte tussen titel van de laag en de daarop volgende items (mm)
SYMBOLSPACE verticale ruimte tussen symbool en daarop volgende item (mm)
ICONLABELSPACE horizontale ruimte tussen symbool en tekst voor label (mm)
SYMBOLWIDTH breedte van voorbeeld van het symbool (mm)
SYMBOLHEIGHT hoogte van het voorbeeld van het symbool (mm)
Deze parameters wijzigen de eigenschappen van het lettertype voor titels van lagen en labels van items:
LAYERFONTFAMILY / ITEMFONTFAMILY familie lettertype voor titel van laag / tekst van item
LAYERFONTSIZE / ITEMFONTSIZE Grootte lettertype in punten
Contest based legend. These parameters let the client request a legend showing only the symbols for the features falling into the requested area:
BBOX het geografische gebied waarvoor de legenda zou moeten worden opgebouwd
CRS / SRS het gebruikte coördinaten referentiesysteem om de coördinaten voor de BBOX te definiëren
WIDTH / HEIGHT indien ingesteld zouden deze overeen moeten komen met die welke zijn gedefinieerd voor het verzoek GetMap, om QGIS Server symbolen te laten schalen overeenkomstig de afbeeldingsgrootte van de kaartweergave.
Contest based legend features are based on the UMN MapServer implementation:
Dit type verzoek werkt soortgelijk aan GetCapabilities, maar is meer specifiek voor QGIS Server en stelt een cliënt in staat om aanvullende informatie te lezen die niet beschikbaar is in de uitvoer van de GetCapabilities:
initiële zichtbaarheid van lagen
informatie over vectorattributen en hun typen bewerking
informatie over laagvolgorde en volgorde van tekenen
lijst van in WFS gepubliceerde lagen
In the WFS GetFeature request, QGIS Server accepts two extra parameters in addition to the standard parameters according to the OGC WFS 1.0.0 specification:
parameter FILE_NAME : indien ingesteld zal het antwoord van de server direct naar de cliënt worden verzonden als bestandsbijlage met de gespecificeerde bestandsnaam.
parameter MAP: Soortgelijk aan MapServer kan de parameter MAP worden gebruikt om het pad naar het projectbestand van QGIS te specificeren. U kunt een absoluut pad specificeren of een pad relatief aan de locatie van het uitvoerbare bestand van de server (qgis_mapserv.fcgi). Indien niet gespecificeerd zoekt QGIS Server naar .qgs-bestanden in de map waar het uit te voeren bestand voor de server is opgeslagen.
Voorbeeld:
http://localhost/cgi-bin/qgis_mapserv.fcgi?\
REQUEST=GetMap&MAP=/home/qgis/mymap.qgs&...
Notitie
U kunt een QGIS_PROJECT_FILE definiëren als een omgevingsvariabele om het uitvoerende programma van de server te vertellen waar het projectbestand van QGIS kan worden gevonden. Deze variabele zal de locatie zijn waar QGIS zal zoeken naar het projectbestand. Indien niet gedefinieerd zal het de parameter MAP in het verzoek gebruiken en tenslotte zoeken in de map van het uitvoerende programma van de server.
the first feature, skipping none.
Deze mogelijkheid is beschikbaar en kan worden gebruikt met verzoeken GetMap, GetPrint.
De mogelijkheid Redlining kan worden gebruikt om geometrieën en labels door te geven in het verzoek die door de server worden overlapt over de standaard teruggegeven afbeelding (kaart). Dit geeft de gebruiker de mogelijkheid om nadruk te leggen of misschien enkele opmerkingen (labels) toe te voegen aan sommige gebieden, locaties etc. die niet op de standaard kaart staan.
Het verzoek is in de indeling:
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
Hier is de afbeelding die is uitgevoerd door het bovenstaande verzoek waarin een polygoon en een label zijn getekend bovenop de normale kaart:
U kunt zien dat er verscheidene parameters in dit verzoek staan:
HIGHLIGHT_GEOM: U kunt toevoegen POINT, MULTILINESTRING, POLYGON etc. Het ondersteunt meerdelige geometrieën. Hier is een voorbeeld: HIGHLIGHT_GEOM=MULTILINESTRING((0 0, 0 1, 1 1)). De coördinaten zouden in het CRS van het verzoek GetMap/GetPrint moeten zijn.
HIGHLIGHT_SYMBOL: Dit beheert hoe de omtrek van de geometrie zal zijn en u kunt de breedte van de lijn, kleur en doorzichtbaarheid wijzigen.
HIGHLIGHT_LABELSTRING: U kunt de tekst voor uw labels doorgeven met deze parameter.
HIGHLIGHT_LABELSIZE: Deze parameter beheert de grootte van het label.
HIGHLIGHT_LABELCOLOR: Deze parameter beheert de kleur van het label.
HIGHLIGHT_LABELBUFFERCOLOR: Deze parameter beheert de kleur van de buffer van het label.
HIGHLIGHT_LABELBUFFERSIZE: Deze parameter beheert de grootte van de buffer van het label.