3. Services

QGIS Server is in staat gegevens te verstrekken overeenkomstig standaardprotocollen zoals beschreven door het Open Geospatial Consortium (OGC):

  • WMS 1.1.1 en 1.3.0

  • WFS 1.0.0 en 1.1.0

  • OGC API - Features (WFS3)

  • WCS 1.1.1

  • WMTS 1.0.0

Extra parameters van de leverancier en verzoeken worden ondersteund in aanvulling op de originele standaard, wat de mogelijkheden voor het aanpassen van het gedrag aanzienlijk verbeterd, dankzij het programma voor renderen van QGIS.

3.1. Web Map Service (WMS)

De WMS standaarden 1.1.1 en 1.3.0, geïmplementeerd in QGIS Server, verschaffen een interface voor HTTP voor het verzoeken van kaart- of legenda-afbeeldingen gegenereerd uit een project van QGIS. Een typisch WMS-verzoek definieert het te gebruiken project van QGIS, de te renderen lagen als ook de te genereren indeling van de afbeelding. Basisondersteuning is ook beschikbaar voor de standaard Styled Layer Descriptor (SLD).

Specificaties:

Standaardverzoeken verschaft door QGIS Server:

Verzoek

Omschrijving

GetCapabilities

Geeft XML-metadata terug met informatie over de server

GetMap

Geeft een kaart terug

GetFeatureInfo

Haal gegevens op (geometrie en waarden) voor de locatie van een pixel

GetLegendGraphics

Geeft symbolen voor legenda terug

Leverancier-verzoeken verschaft door QGIS Server:

Verzoek

Omschrijving

GetPrint

Geeft een lay-out van QGIS terug

GetProjectSettings

Geeft specifieke informatie terug over QGIS Server

3.1.1. GetMap

Standaardparameters voor het verzoek GetMap overeenkomstig de specificaties van OGC WMS 1.1.1 en 1.3.0:

Parameter

Vereist

Omschrijving

SERVICE

Ja

Naam van de service (WMS)

VERSION

Ja

Versie van de service

REQUEST

Ja

Naam van het verzoek (GetMap)

LAYERS

Nee

Weer te geven lagen

STYLES

Nee

Stijl van de laag

SRS / CRS

Ja

Coördinaten referentiesysteem

BBOX

Ja

Kaartbereik

WIDTH

Ja

Breedte van de afbeelding in pixels

HEIGHT

Ja

Hoogte van de afbeelding in pixels

FORMAT

Nee

Indeling afbeelding

TRANSPARENT

Nee

Transparante achtergrond

SLD

Nee

URL of een SLD om te worden gebruikt voor de opmaak

SLD_BODY

Nee

Inregelige SLD (XML) om te worden gebruikt voor de opmaak

In aanvulling op de standaard ondersteunt QGIS Server de volgende extra parameters:

Parameter

Vereist

Omschrijving

MAP

Ja

Specificeer het QGIS-projectbestand

BGCOLOR

Nee

Specificeer de achtergrondkleur

DPI

Nee

Specificeer de uitvoerresolutie

IMAGE_QUALITY

Nee

JPEG-compressie

OPACITIES

Nee

Doorzichtbaarheid van laag of groep

FILTER

Nee

Subset van objecten

SELECTION

Nee

Objecten accentueren

FILE_NAME

Nee

Bestandsnaam van het gedownloade bestand

Alleen voor FORMAT=application/dxf

FORMAT_OPTIONS

Nee

Opties van de gespecificeerde bestandsindeling

Alleen voor FORMAT=application/dxf

TILED

Nee

Werken in modus Getegeld

Voorbeeld 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

Deze parameter moet WMS zijn.

Bijvoorbeeld:

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

VERSION

Deze parameter maakt het mogelijk de versie van de te gebruiken service te specificeren. Beschikbare waarden voor de parameter VERSION zijn:

  • 1.1.1

  • 1.3.0

Overeenkomstig het versienummer kunnen kleine verschillen worden verwacht, zoals later uitgelegd, voor de volgende parameters:

  • CRS / SRS

  • BBOX

REQUEST

Deze parameter is GetMap in het geval van het verzoek GetMap.

LAYERS

Deze parameter maakt het mogelijk de weer te geven lagen op de kaart te specificeren. Namen moeten zijn gescheiden door een komma.

In aanvulling daarop introduceert QGIS Server enkele opties om op lagen te selecteren:

  • een verkorte naam

  • de laag-ID

De verkorte naam van een laag kan worden geconfigureerd via Eigenschappen ► Metadata in het menu Laag. Als de korte naam is gedefinieerd, dan wordt die standaard gebruikt in plaats van de naam van de laag:

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

Meer nog, er is een projectoptie die het mogelijk maakt lagen te selecteren op hun ID in het menu OWS Server ► WMS-mogelijkheden van het dialoogvenster Project ► Eigenschappen…. Het keuzevak Laag-ID’s als namen gebruiken moet zijn geselecteerd om deze optie te activeren.

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

STYLES

Deze parameter kan worden gebruikt om de stijl van een laag voor de stap renderen te specificeren. Stijlen moeten worden gescheiden door een komma. De naam van de standaard stijl is default.

SRS / CRS

Deze parameter maakt het mogelijk het uitvoer Ruimtelijke ReferentieSysteem van de kaart aan te geven in WMS 1.1.1 en moet zijn weergegeven als EPSG:XXXX. Onthoud dat CRS ook wordt ondersteund als de huidige versie 1.1.1 is.

Voor WMS 1.3.0 heeft de parameter CRS de voorkeur maar SRS wordt ook ondersteund.

Onthoud dat, indien beide parameters CRS en SRS in het verzoek worden aangegeven, dan is het de huidige versie die wordt aangegeven met de parameter VERSION die beslissend is.

In het volgende geval wordt de parameter SRS behouden, ongeacht de parameter VERSION, omdat CRS niet wordt aangegeven:

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

In het volgende geval wordt de parameter SRS behouden in plaats van CRS vanwege de parameter VERSION:

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

In het volgende geval wordt de parameter CRS behouden in plaats van SRS vanwege de parameter VERSION:

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

BBOX

Deze parameter maakt het mogelijk het kaartbereik te specificeren in kaarteenheden overeenkomstig het huidige CRS. Coördinaten moeten worden gescheiden door een komma.

De parameter BBOX wordt gevormd als min_a,min_b,max_a,max_b, maar de asdefinitie voor a en b is verschillend, volgens de huidige parameter VERSION:

  • in WMS 1.1.1 is de asvolgorde altijd Oost/Noord

  • in WMS 1.3.0 is de asvolgorde afhankelijk van de autoriteit voor het CRS

Bijvoorbeeld in het geval van EPSG:4326 en WMS 1.1.1, is a de longitude (Oost) en b fe latitude (Noord), wat ledit tot een verzoek als:

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

Maar in geval van WMS 1.3.0 is de asvolgorde, gedefinieerd in de database van EPSG, Noord/Oost, dus a is de latitude en b de longitude:

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

WIDTH

Deze parameter maakt het mogelijk de breedte van de uit te voeren afbeelding in pixels te specificeren.

HEIGHT

Deze parameter maakt het mogelijk de hoogte van de uit te voeren afbeelding in pixels te specificeren.

FORMAT

Deze parameter kan worden gebruikt om de indeling van de kaartafbeelding te specificeren. Beschikbare waarden zijn:

  • jpg

  • jpeg

  • image/jpeg

  • image/png

  • image/png; mode=1bit

  • image/png; mode=8bit

  • image/png; mode=16bit

  • application/dxf Alleen lagen die leestoegang hebben in de WFS-service worden geëxporteerd in de indeling DXF.

    Voorbeeld 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

Deze Booleaanse parameter kan worden gebruikt om de transparantie van de achtergrond te specificeren. Beschikbare waarden zijn (niet hoofdlettergevoelig):

  • TRUE

  • FALSE

Deze parameter wordt echter genegeerd indien de indeling van de kaart, aangegeven met FORMAT, anders is dan PNG.

MAP

Deze parameter maakt het mogelijk het te gebruiken projectbestand van QGIS te definiëren.

Zoals vermeld in tabel parameters GetMap, is MAP verplicht omdat een verzoek een project van QGIS nodig heeft om feitelijk te kunnen werken. Echter, de omgevingsvariabele QGIS_PROJECT_FILE mag worden gebruikt om een standaardproject voor QGIS te definiëren. In dit specifieke geval is MAP niet langer een vereiste parameter. Voor meer informatie kunt u kijken naar Gevorderde configuratie.

BGCOLOR

Deze parameter maakt het mogelijk een kleur voor de achtergrond aan te geven voor de kaartafbeelding. Het kan echter niet worden gecombineerd met de parameter TRANSPARENT in geval van afbeeldingen PNG (transparantie heeft prioriteit). De kleur mag letterlijk zijn of in hexadecimale notatie.

Voorbeeld URL met de letterlijke notatie:

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

Voorbeeld URL met de hexadecimale notatie:

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

DPI

Deze parameter kan worden gebruikt om de resolutie voor de verzochte uitvoer te specificeren.

IMAGE_QUALITY

Deze parameter wordt alleen gebruikt voor afbeeldingen JPEG. Standaard is de compressie voor JPEG -1.

U kunt de standaard per project van QGIS wijzigen in het menu OWS Server ► WMS-mogelijkheden van het dialoogvenster Project ► Eigenschappen. Indien u het wilt overschrijven in een verzoek GetMap kunt u dat doen met behulp van de parameter IMAGE_QUALITY.

OPACITIES

Kommagescheiden lijst van waarden voor doorzichtbaarheid. Doorzichtbaarheid kan worden ingesteld op niveau van de laag of van een groep. Toegestane waarden reiken van 0 (volledig transparant) tot en met 255 (ondoorzichtig).

FILTER

Een subset van lagen kan worden geselecteerd met de parameter FILTER. De syntaxis is in principe hetzelfde als voor de tekenreeks voor de subset in QGIS. Er zijn echter enige beperkingen om injecties met SQL in databases via QGIS Server te vermijden. Als een gevaarlijke tekenreeks wordt gevonden in de parameter, zal QGIS Server de volgende fout teruggeven:

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

Voorbeeld URL:

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

In dit voorbeeld wordt hetzelfde filter (veld col2 is gelijk aan de tekenreeks blabla) toegepast op de lagen mylayer1 en mylayer2, terwijl het filter op col1 alleen wordt toegepast op mylayer1.

Notitie

Het is mogelijk zoekacties naar attributen uit te voeren via GetFeatureInfo en de parameter X/Y weg te laten als er een FILTER is. QGIS Server geeft dan informatie terug over de overeenkomende objecten en maakt een gecombineerd begrenzingsvak in de uitvoer XML.

SELECTION

De parameter SELECTION kan objecten accentueren van één of meer lagen. Vectorobjecten kunnen worden geselecteerd door middel van kommagescheiden lijsten met object-ID’s.

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

De volgende afbeelding laat het antwoord zien van een verzoek GetMap met behulp van de optie SELECTION, bijv. http://myserver.com/…&SELECTION=countries:171,65.

Omdat deze object-ID’s in de gegevensset van de bron corresponderen met Frankrijk en Roemenië zijn zij in geel geaccentueerd.

../../_images/server_selection_parameter.png

Fig. 3.1 Antwoord van de server voor een verzoek GetMap met parameter SELECTION

FORMAT-OPTIONS

Deze parameter kan worden gebruikt op opties voor de geselecteerde indeling te specificeren. Alleen voor FORMAT=application/dxf. Een lijst van paren sleutel:waarde, gescheiden door puntkomma:

  • SCALE: om te worden gebruikt voor regels voor symbologie, filters en stijlen (niet een feitelijk schalen van de gegevens - gegevens blijven op de originele schaal).

  • MODE: correspondeert met de opties voor exporteren in het dialoogvenster van QGIS Desktop voor exporteren naar DXF. Mogelijke waarden zijn NOSYMBOLOGY, FEATURESYMBOLOGY en SYMBOLLAYERSYMBOLOGY.

  • LAYERSATTRIBUTES: specificeer een veld dat de waarden voor de laagnamen in DXF bevat - indien niet gespecificeerd worden de originele laagnamen van QGIS gebruikt.

  • USE_TITLE_AS_LAYERNAME: indien ingeschakeld zal de titel van de laag als laagnaam worden gebruikt.

  • CODEC: specificeer een te gebruiken codec voor codering. Standaard is ISO-8859-1, controleer het dialoogvenster DXF exporteren van QGIS Desktop voor geldige waarden.

  • NO_MTEXT: Gebruik TEXT in plaats van MTEXT voor labels.

  • FORCE_2D: 2D uitvoer forceren. Dit is vereist voor breedte van polylijn.

TILED

Om redenen van uitvoering kan QGIS Server gebruikt worden in de modus Getegeld. In deze modus verzoekt de cliënt verscheidene, vaste grootte, tegels, en maakt daarvan één gehele kaart. Door dit te doen zou het kunnen zijn dat symbolen op of nabij de grenzen tussen twee bestanden afgesneden zouden kunnen verschijnen, omdat zij slechts aanwezig zijn in één van de tegels.

Stel de parameter TILED in op TRUE om QGIS Server te vertellen om te werken in de modus getegeld, en de Tegelbuffer toe te passen die is geconfigureerd in het project van QGIS (bekijk Uw project configureren)..

Als TILED is TRUE en wanneer een niet-nul Tegelbuffer is geconfigureerd in het project van QGIS, worden objecten buiten het tegelbereik getekend om het afbreken van symbolen op grenzen van tegels te vermijden.

TILED is standaard FALSE.

3.1.2. GetFeatureInfo

Standaardparameters voor het verzoek GetFeatureInfo overeenkomstig de specificaties van OGC WMS 1.1.1 en 1.3.0:

Parameter

Vereist

Omschrijving

SERVICE

Ja

Naam van de service (WMS)

VERSION

Nee

Versie van de service

REQUEST

Ja

Naam van het verzoek (GetFeatureInfo)

QUERY_LAYERS

Ja

Te bevragen lagen

LAYERS

Ja

Weer te geven lagen (identiek aan QUERY_LAYERS)

STYLES

Nee

Stijl van de laag

SRS / CRS

Ja

Coördinaten referentiesysteem

BBOX

Nee

Kaartbereik

WIDTH

Ja

Breedte van de afbeelding in pixels

HEIGHT

Ja

Hoogte van de afbeelding in pixels

TRANSPARENT

Nee

Transparante achtergrond

INFO_FORMAT

Nee

Indeling uitvoer

FEATURE_COUNT

Nee

Maximale aantal terug te geven objecten

I

Nee

Pixelkolom van het te bevragen punt

X

Nee

Hetzelfde als parameter I, maar in WMS 1.1.1

J

Nee

Pixelrij van het te bevragen punt

Y

Nee

Hetzelfde als parameter J, maar in WMS 1.1.1

WMS_PRECISION

Nee

De precisie (aantal cijfers) dat moet worden gebruikt bij het teruggeven van geometrie (bekijk hoe geometrie toe te voegen aan feature response). De standaardwaarde is -1 wat betekent dat de precisie die is gedefinieerd in het project wordt gebruikt.

In aanvulling op de standaard ondersteunt QGIS Server de volgende extra parameters:

Parameter

Vereist

Omschrijving

MAP

Ja

Specificeer het QGIS-projectbestand

FILTER

Nee

Subset van objecten

FI_POINT_TOLERANCE

Nee

Tolerantie in pixels voor puntlagen

FI_LINE_TOLERANCE

Nee

Tolerantie in pixels voor lijnlagen

FI_POLYGON_TOLERANCE

Nee

Tolerantie in pixels voor polygoonlagen

FILTER_GEOM

Nee

Filteren van geometrie

WITH_MAPTIP

Nee

Kaarttips toevoegen aan de uitvoer

WITH_GEOMETRY

Nee

Geometrie toevoegen aan de uitvoer

Voorbeeld 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

Deze parameter is GetFeatureInfo in het geval van het verzoek GetFeatureInfo.

INFO_FORMAT

Deze parameter kan worden gebruikt om de indeling van het resultaat te specificeren. Beschikbare waarden zijn:

  • text/xml

  • text/html

  • text/plain

  • application/vnd.ogc.gml

  • application/json

QUERY_LAYERS

Deze parameter specificeert de weer te geven lagen op de kaart. Namen moeten zijn gescheiden door een komma.

In aanvulling daarop introduceert QGIS Server enkele opties om op lagen te selecteren:

  • verkorte naam

  • laag-ID

Bekijk de paramater LAYERS gedefinieerd in GetMap voor meer informatie.

FEATURE_COUNT

Deze parameter specificeert het maximale aantal terug te geven objecten per laag. Als bijvoorbeeld QUERY_LAYERS is ingesteld op laag1,laag2 en FEATURE_COUNT is ingesteld op 3 dan zal een maximum van 3 objecten uit laag1 worden teruggegeven. Op dezelfde wijze zal een maximum van 3 objecten van laag2 worden teruggegeven.

Standaard wordt slechts 1 object per laag teruggegeven.

I

Deze parameter, gedefinieerd in WMS 1.3.0, stelt u in staat de pixelkolom van het te bevragen punt te specificeren.

X

Dezelfde parameter als I, maar gedefinieerd in WMS 1.1.1

J

Deze parameter, gedefinieerd in WMS 1.3.0, stelt u in staat de pixelrij van het te bevragen punt te specificeren.

Y

Dezelfde parameter als J, maar gedefinieerd in WMS 1.1.1

FI_POINT_TOLERANCE

Deze parameter specificeert de tolerantie in pixels voor puntlagen.

FI_LINE_TOLERANCE

Deze parameter specificeert de tolerantie in pixels voor lijnlagen.

FI_POLYGON_TOLERANCE

Deze parameter specificeert de tolerantie in pixels voor polygoonlagen.

FILTER_GEOM

Deze parameter specificeert een geometrie WKT waarmee objecten moeten kruisen.

WITH_MAPTIP

Deze parameter specificeert of kaarttips aan de uitvoer moeten worden toegevoegd.

Beschikbare waarden zijn (niet hoofdlettergevoelig):

  • TRUE

  • FALSE

WITH_GEOMETRY

Deze parameter specificeert of geometrieën moeten worden toegevoegd aan de uitvoer. U moet eerst de optie Geometrie aan feature response toevoegen in het project van QGIS inschakelen om deze mogelijkheid te kunnen gebruiken. Bekijk Configureer uw project.

Beschikbare waarden zijn (niet hoofdlettergevoelig):

  • TRUE

  • FALSE

3.1.3. GetPrint

QGIS Server heeft de mogelijkheid om uitvoer van afdruklay-outs te maken in PDF- of pixelindeling. Vensters van afdruklay-outs in het gepubliceerde project worden als sjablonen gebruikt. In het verzoek GetPrint heeft de cliënt de mogelijkheid om parameters te specificeren van de opgenomen kaarten en labels.

Parameters voor het verzoek GetPrint zijn:

Parameter

Vereist

Omschrijving

MAP

Ja

Specificeer het QGIS-projectbestand

SERVICE

Ja

Naam van de service (WMS)

VERSION

Nee

Versie van de service

REQUEST

Ja

Naam van het verzoek (GetPrint)

LAYERS

Nee

Weer te geven lagen

TEMPLATE

Ja

Te gebruiken lay-outsjabloon

SRS / CRS

Ja

Coördinaten referentiesysteem

FORMAT

Nee

Indeling uitvoer

ATLAS_PK

Nee

Objecten van Atlas

STYLES

Nee

Stijl van de laag

TRANSPARENT

Nee

Transparante achtergrond

OPACITIES

Nee

Doorzichtbaarheid van laag of groep

SELECTION

Nee

Objecten accentueren

mapX:EXTENT

Nee

Bereik van de kaart ‘X’

mapX:LAYERS

Nee

Lagen van de kaart ‘X’

mapX:STYLES

Nee

Stijl van de lagen van de kaart ‘X’

mapX:SCALE

Nee

Schaal van de lagen van de kaart ‘X’

mapX:ROTATION

Nee

Rotatie van de kaart ‘X’

mapX:GRID_INTERVAL_X

Nee

Raster-interval op de X-as van de kaart ‘X’

mapX:GRID_INTERVAL_Y

Nee

Raster-interval op de Y-as van de kaart ‘X’

Voorbeeld 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

Onthoud dat de sjabloon van de lay-out meer kan bevatten dan één kaart. Op deze manier dient u, als u een specifieke kaart wilt configureren, parameters mapX: te gebruiken, waar X een positief getal is dat u kunt ophalen met het verzoek GetProjectSettings.

Bijvoorbeeld:

<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

Deze parameter moet GetPrint zijn in het geval van het verzoek GetPrint.

TEMPLATE

Deze parameter kan worden gebruikt om de naam van een sjabloon van lay-out te specificeren voor het afdrukken.

FORMAT

Deze parameter specificeert de indeling van de kaartafbeelding. Beschikbare waarden zijn:

  • png (standaardwaarde)

  • image/png

  • jpg

  • jpeg

  • image/jpeg

  • svg

  • image/svg

  • image/svg+xml

  • pdf

  • application/pdf

Als de parameter FORMAT anders is dan een van deze waarden dan zal een uitzondering worden teruggegeven.

ATLAS_PK

Deze parameter maakt het mogelijk het renderen als atlas te activeren door aan te geven welke objecten we willen afdrukken. Het symbool * mag worden gebruikt (overeenkomstig het maximum aantal toegestane objecten in de configuratie van het project), om een atlas met alle objecten op te halen.

Als FORMAT is pdf, wordt één enkel document PDF, dat de pagina’s van objecten combineert, teruggegeven. Voor alle andere indelingen wordt één enkele pagina teruggegeven.

mapX:EXTENT

Deze parameter specificeert het bereik van een kaartitem van een lay-out als xmin,ymin,xmax,ymax.

mapX:ROTATION

Deze parameter specificeert de kaartrotatie in graden.

mapX:GRID_INTERVAL_X

Deze parameter specificeert de dichtheid van de rasterlijn in de richting X.

mapX:GRID_INTERVAL_Y

Deze parameter specificeert de dichtheid van de rasterlijn in de richting Y.

mapX:SCALE

Deze parameter specificeert de schaal voor de kaart voor een kaartitem van afdruklay-out. Dit is nuttig om te zorgen voor op schaal gebaseerde zichtbaarheid van de lagen en labels, zelfs als cliënt en server verschillende algoritmen hebben om de noemer voor de schaal te berekenen.

mapX:LAYERS

Deze parameter specificeert de lagen voor een kaartitem van lay-out. Bekijk lagen GetMap voor meer informatie over deze parameter.

mapX:STYLES

Deze parameter specificeert de stijlen voor de lagen voor een specifiek kaartitem van lay-out. Bekijk stijlen GetMap voor meer informatie over deze parameter.

3.1.4. GetLegendGraphics

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)

  • FORMAT, image/jpeg, image/png of application/json. Voor JSON worden symbolen gecodeerd met Base64 en met de meeste andere opties die zijn gerelateerd aan lay-out of lettertypen wordt geen rekening gehouden, omdat de legenda moet wordne gebouwd aan de zijde van de cliënt.

  • LAYERSPACE verticale ruimte tussen lagen (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

  • LAYERFONTBOLD / ITEMFONTBOLD TRUE om een vet lettertype te gebruiken

  • LAYERFONTSIZE / ITEMFONTSIZE Grootte lettertype in punten

  • LAYERFONTITALIC / ITEMFONTITALIC TRUE om cursief lettertype te gebruiken

  • LAYERFONTCOLOR / ITEMFONTCOLOR Hexadecimale kleurcode (bijv. #FF0000 voor rood)

  • LAYERTITLE FALSE om alleen de afbeeldingen van de Legenda te verkrijgen, zonder titel van de laag

  • RULELABEL:

    • FALSE afbeeldingen van de Legenda, zonder labels voor de items

    • AUTO labels voor items verbergen voor lagen met rendering Enkel symbool

Op inhoud gebaseerde Legenda. Deze parameters laten de cliënt een legenda verzoeken die alleen de symbolen voor de objecten laat zien die binnen het verzochte gebied vallen:

  • 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

  • SRCWIDTH / SRCHEIGHT indien ingesteld zouden deze overeen moeten komen met de parameters WIDTH en HEIGHT voor het verzoek GetMap, om QGIS Server symbolen te laten schalen overeenkomstig de afbeeldingsgrootte van de kaartweergave.

Op inhoud gebaseerde objecten van de legenda zijn gebaseerd op de implementatie UMN MapServer:

  • SHOWFEATURECOUNT indien ingesteld op TRUE voegt het in de legenda het aantal objecten toe, zoals in de volgende afbeelding:

    ../../_images/getfeaturecount_legend.png
  • RULE stel het in op een bepaalde naam voor een regel om alleen het symbool voor de genoemde regel te verkrijgen

  • WIDTH/HEIGHT de gemaakte grootte voor de afbeelding van de legenda als de parameter RULE is ingesteld

3.1.5. GetProjectSettings

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

  • weergeven als een groep in de boom van de lagen wederzijds exclusief is

3.2. Web Feature Service (WFS)

De WFS standaarden 1.0.0 en 1.1.0, geïmplementeerd in QGIS Server, verschaffen een interface voor HTTP voor het verzoeken van geografische objecten uit een project van QGIS. Een typisch WFS-verzoek definieert het te gebruiken project van QGIS, en de te bevragen laag.

Specificatiedocument overeenkomstig het versienummer van de service:

Standaardverzoeken verschaft door QGIS Server:

Verzoek

Omschrijving

GetCapabilities

Geeft XML-metadata terug met informatie over de server

GetFeature

Geeft een selectie van objecten terug

DescribeFeatureType

Geeft een beschrijving van typen objecten en eigenschappen terug

Transaction

Staat toe dat objecten worden ingevoegd, bijgewerkt of verwijderd

3.2.1. GetFeature

Standaardparameters voor het verzoek GetFeature overeenkomstig de specificaties van OGC WFS 1.0.0 en 1.1.0:

Parameter

Vereist

Omschrijving

SERVICE

Ja

Naam van de service

VERSION

Nee

Versie van de service

REQUEST

Ja

Naam van het verzoek

TYPENAME

Nee

Naam van de lagen

OUTPUTFORMAT

Nee

Indeling uitvoer

RESULTTYPE

Nee

Type resultaat

PROPERTYNAME

Nee

Naam van de eigenschappen die moeten worden teruggegeven

MAXFEATURES

Nee

Maximale aantal terug te geven objecten

SRSNAME

Nee

Coördinaten referentiesysteem

FEATUREID

Nee

Objecten filteren op ID

FILTER

Nee

OGC codering filter

BBOX

Nee

Kaartbereik

SORTBY

Nee

Sorteer de resultaten

In aanvulling op de standaard ondersteunt QGIS Server de volgende extra parameters:

Parameter

Vereist

Omschrijving

MAP

Ja

Specificeer het QGIS-projectbestand

STARTINDEX

Nee

Paginanummer

GEOMETRYNAME

Nee

Type terug te geven geometrie

EXP_FILTER

Nee

Expressie filteren

SERVICE

Deze parameter moet WFS zijn in het geval van het verzoek GetFeature.

Bijvoorbeeld:

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

VERSION

Deze parameter maakt het mogelijk de versie van de te gebruiken service te specificeren. Beschikbare waarden voor de parameter VERSION zijn:

  • 1.0.0

  • 1.1.0

Indien geen versie wordt aangegeven in het verzoek, dan wordt standaard 1.1.0 gebruikt.

Voorbeeld URL:

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

REQUEST

Deze parameter is GetFeature in het geval van het verzoek GetFeature.

Voorbeeld URL:

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

RESULTTYPE

Deze parameter kan worden gebruikt om het terug te geven resultaat te specificeren. Beschikbare waarden zijn:

  • results: het standaard gedrag

  • hits: geeft alleen het aantal objecten terug

Voorbeeld URL:

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

GEOMETRYNAME

Deze parameter kan worden gebruikt om het terug te geven soort geometrie te specificeren. Beschikbare waarden zijn:

  • extent

  • centroid

  • none

Voorbeeld URL:

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

STARTINDEX

Deze parameter is standaard in WFS 2.0, maar het is een uitbreiding voor WFS 1.0.0. In feite kan het gebruikt worden om enkele objecten in de resultaatset over te slaan en, in combinatie met MAXFEATURES, verschaft het de mogelijkheid door de resultaten te bladeren.

Voorbeeld URL:

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

3.3. Web Map Tile Service (WMTS)

De WMTS standaard 1.0.0, geïmplementeerd in QGIS Server, verschaft een interface voor HTTP voor het verzoeken van getegelde kaartafbeeldingen uit een project van QGIS. Een typisch WMTS-verzoek definieert het te gebruiken project van QGIS, enkele parameters voor WMS zoals te renderen lagen en ook parameters voor de tegels.

Specificatiedocument van de service:

Standaardverzoeken verschaft door QGIS Server:

Verzoek

Omschrijving

GetCapabilities

Geeft XML-metadata terug met informatie over de server

GetTile

Geeft een tegel terug

GetFeatureInfo

Haal gegevens op (geometrie en waarden) voor de locatie van een pixel

3.3.1. GetCapabilities

Standaardparameters voor het verzoek GetCapabilities overeenkomstig de specificaties van OGC WMTS 1.0.0:

Parameter

Vereist

Omschrijving

SERVICE

Ja

Naam van de service (WMTS)

REQUEST

Ja

Naam van het verzoek (GetCapabilities)

In aanvulling op de standaard ondersteunt QGIS Server de volgende extra parameters:

Parameter

Vereist

Omschrijving

MAP

Ja

Specificeer het QGIS-projectbestand

Voorbeeld URL:

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

SERVICE

Deze parameter moet WMTS zijn in het geval van het verzoek GetCapabilities.

REQUEST

Deze parameter is GetCapabilities in het geval van het verzoek GetCapabilities.

MAP

Deze parameter maakt het mogelijk het te gebruiken projectbestand van QGIS te definiëren.

3.3.2. GetTile

Standaardparameters voor het verzoek GetTile overeenkomstig de specificaties van OGC WMTS 1.0.0:

Parameter

Vereist

Omschrijving

SERVICE

Ja

Naam van de service (WMTS)

REQUEST

Ja

Naam van het verzoek (GetTile)

LAYER

Ja

Identificatie laag

FORMAT

Ja

Indeling uitvoer van de tegel

TILEMATRIXSET

Ja

Naam van de piramide

TILEMATRIX

Ja

Mazen

TILEROW

Ja

Rijcoördinaat in de mazen

TILECOL

Ja

Kolomcoördinaat in de mazen

In aanvulling op de standaard ondersteunt QGIS Server de volgende extra parameters:

Parameter

Vereist

Omschrijving

MAP

Ja

Specificeer het QGIS-projectbestand

Voorbeeld 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

Deze parameter moet WMTS zijn in het geval van het verzoek GetTile.

REQUEST

Deze parameter is GetTile in het geval van het verzoek GetTile.

LAYER

Deze parameter maakt het mogelijk de op de tegel weer te geven laag te specificeren.

In aanvulling daarop introduceert QGIS Server enkele opties om lagen te selecteren op:

  • een verkorte naam

  • de laag-ID

De verkorte naam van een laag kan worden geconfigureerd via Eigenschappen ► Metadata in het menu Laag. Als de korte naam is gedefinieerd, dan wordt die standaard gebruikt in plaats van de naam van de laag:

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

Meer nog, er is een projectoptie die het mogelijk maakt lagen te selecteren op hun ID in het menu OWS Server ► WMS-mogelijkheden van het dialoogvenster Project ► Eigenschappen…. Het keuzevak Laag-ID’s als namen gebruiken moet zijn geselecteerd om deze optie te activeren.

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

FORMAT

Deze parameter kan worden gebruikt om de indeling van de tegelafbeelding te specificeren. Beschikbare waarden zijn:

  • jpg

  • jpeg

  • image/jpeg

  • image/png

Als de parameter FORMAT anders is dan een van deze waarden dan zal in plaats daarvan de standaard indeling PNG worden gebruikt.

TILEMATRIXSET

Deze parameter definieert het te gebruiken CRS bij het berekenen van de onderliggende piramide. Indeling: EPSG:XXXX.

TILEMATRIX

Deze parameter maakt het mogelijk de te gebruiken matrix voor het uitvoerbestand te specificeren.

TILEROW

Deze parameter maakt het mogelijk de rij van de op te halen tegel in de matrix te selecteren.

TILECOL

Deze parameter maakt het mogelijk de kolom van de op te halen tegel in de matrix te selecteren.

MAP

Deze parameter maakt het mogelijk het te gebruiken projectbestand van QGIS te definiëren.

Zoals vermeld in tabel parameters GetMap, is MAP verplicht omdat een verzoek een project van QGIS nodig heeft om feitelijk te kunnen werken. Echter, de omgevingsvariabele QGIS_PROJECT_FILE mag worden gebruikt om een standaardproject voor QGIS te definiëren. In dit specifieke geval is MAP niet langer een vereiste parameter. Voor meer informatie kunt u kijken naar Gevorderde configuratie.

3.3.3. GetFeatureInfo

Standaardparameters voor het verzoek GetFeatureInfo overeenkomstig de specificaties van OGC WMTS 1.0.0:

Parameter

Vereist

Omschrijving

SERVICE

Ja

Naam van de service (WMTS)

REQUEST

Ja

Naam van het verzoek (GetFeatureInfo)

LAYER

Ja

Identificatie laag

INFOFORMAT

Nee

Indeling uitvoer

I

Nee

X-coördinaat van een pixel

J

Nee

Y-coördinaat van een pixel

TILEMATRIXSET

Ja

Bekijk GetTile

TILEMATRIX

Ja

Bekijk GetTile

TILEROW

Ja

Bekijk GetTile

TILECOL

Ja

Bekijk GetTile

In aanvulling op de standaard ondersteunt QGIS Server de volgende extra parameters:

Parameter

Vereist

Omschrijving

MAP

Ja

Specificeer het QGIS-projectbestand

Voorbeeld URL:

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

SERVICE

Deze parameter moet WMTS zijn in het geval van het verzoek GetFeatureInfo.

REQUEST

Deze parameter is GetFeatureInfo in het geval van het verzoek GetFeatureInfo.

MAP

Deze parameter maakt het mogelijk het te gebruiken projectbestand van QGIS te definiëren.

Zoals vermeld in tabel parameters GetMap, is MAP verplicht omdat een verzoek een project van QGIS nodig heeft om feitelijk te kunnen werken. Echter, de omgevingsvariabele QGIS_PROJECT_FILE mag worden gebruikt om een standaardproject voor QGIS te definiëren. In dit specifieke geval is MAP niet langer een vereiste parameter. Voor meer informatie kunt u kijken naar Gevorderde configuratie.

LAYER

Deze parameter maakt het mogelijk de op de tegel weer te geven laag te specificeren.

In aanvulling daarop introduceert QGIS Server enkele opties om lagen te selecteren op:

  • een verkorte naam

  • de laag-ID

De verkorte naam van een laag kan worden geconfigureerd via Eigenschappen ► Metadata in het menu Laag. Als de korte naam is gedefinieerd, dan wordt die standaard gebruikt in plaats van de naam van de laag:

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

Meer nog, er is een projectoptie die het mogelijk maakt lagen te selecteren op hun ID in het menu OWS Server ► WMS-mogelijkheden van het dialoogvenster Project ► Eigenschappen…. Het keuzevak Laag-ID’s als namen gebruiken moet zijn geselecteerd om deze optie te activeren.

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

INFOFORMAT

Deze parameter kan worden gebruikt om de indeling van de uitvoer van het resultaat te definiëren. Beschikbare waarden zijn:

  • text/xml

  • text/html

  • text/plain

  • application/vnd.ogc.gml

De standaardwaarde is text/plain.

I

Deze parameter maakt het mogelijk de X-coördinaat van de pixel te definiëren waarvoor we de onderliggende informatie willen ophalen.

J

Deze parameter maakt het mogelijk de Y-coördinaat van de pixel te definiëren waarvoor we de onderliggende informatie willen ophalen.

3.4. WFS3 (OGC API Features)

WFS3 is de eerste implementatie van de nieuwe generatie protocollen van OGC. Het is beschreven in het document OGC API - Features - Part 1: Core.

Hier is een snel informeel overzicht van de meest belangrijke verschillen tussen het welbekende protocol WFS en WFS3:

  • WFS3 is gebaseerd op een REST API

  • WFS3 API moet de specificaties volgen van OPENAPI

  • WFS3 ondersteunt meerdere indelingen voor uitvoer, maar legt er geen verplicht op (alleen GeoJSON en HTML zijn momenteel beschikbaar in QGIS WFS3) en het gebruikt content negotiation om te bepalen welke indeling aan de cliënt moet worden geserveerd

  • JSON en HTML zijn eerste klas burgers in WFS3

  • WFS3 is zelf-gedocumenteerd (via het eindpunt /api)

  • WFS3 is volledig te navigeren (via links) en door te bladeren

Belangrijk

Hoewel de implementatie van WFS3 in QGIS gebruik kan maken van de parameter MAP om het projectbestand te specificeren, zijn geen extra parameters voor query toegestaan door de specificatie van OPENAPI. Om deze reden wordt sterk aanbevolen dat MAP niet wordt weergegeven in de URL en dat het projectbestand in de omgeving op een andere wijze wordt gespecificeerd (d.i. instellen van QGIS_PROJECT_FILE in de omgeving met een regel rewrite voor een webserver).

Notitie

Het eindpunt API verschaft uitgebreide documentatie voor alle ondersteunde parameters en indelingen voor de uitvoer van uw service. De volgende alinea’s zullen alleen de meest belangrijke beschrijven.

3.4.1. Weergavebronnen

De QGIS Server WFS3 implementatie ondersteunt momenteel de volgende weergavebronnen (uitvoer) indelingen:

  • HTML

  • JSON

De indeling die feitelijk wordt geserveerd is afhankelijk van de onderhandeling van de inhoud, maar een specifieke indeling mag expliciet worden verzocht door een specificatie voor de indeling toe te voegen aan de eindpunten.

Ondersteunde extensies voor specificatie van de indeling zijn:

  • .json

  • .html

Aanvullende aliassen voor specificaties van indelingen mogen worden gedefinieerd voor specifieke eindpunten:

  • .openapi: alias voor .json ondersteund door het eindpunt API

  • .geojson: alias voor .json ondersteund door de eindpunten Features en Feature

3.4.2. Eindpunten

De API verschaft een lijst met eindpunten die de cliënten kunnen ophalen. Het systeem is op een dusdanige manier ontworpen dat elk antwoord een set links verschaft om te navigeren door alle verschafte bronnen.

Punten voor eindpunten, verschaft door de QGIS implementatie zijn:

Naam

Pad

Omschrijving

Startpagina

/

Algemene informatie over de service en verschaft links naar alle beschikbare eindpunten

Conformance

/conformance

Informatie over de conformiteit van de service aan de standaarden

API

/api

Volledige beschrijving van de eindpunten, verschaft door de service en de teruggegeven documentstructuur

Collecties

/collections

Lijst van alle collecties (d.i. ‘vectorlagen’) verschaft door de service

Collectie

/collections/{collectionId}

Informatie over een collectie (naam, metadata, bereik etc.)

Functionaliteit

/collections/{collectionId}/items

Lijst met objecten, verschaft door de collectie

Object

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

Informatie over één enkel object

Startpagina

Het belangrijkste eindpunt is de Startpagina. Vanaf die pagina is het mogelijk om naar alle beschikbare eindpunten van de service te navigeren. De Startpagina moet links verschaffen naar

  • de definitie van de API (pad /api linkrelaties service-desc en service-doc),

  • de declaratie voor Conformance (pad /conformance, linkrelatie conformance), en

  • de Collecties (pad /collections, linkrelatie data).

../../_images/server_wfs3_landing_page.png

Fig. 3.2 Server WFS3 startpagina

API Definitie

De API Definitie is een OPENAPI-compliant beschrijving van de API die wordt verschaft door de service. In zijn weergave HTML is het een door te bladeren pagina waar alle eindpunten en hun indelingen voor antwoorden nauwgezet zijn vermeld en gedocumenteerd. Het pad van dit eindpunt is /api.

De API definitie verschaft een uitgebreide en betrouwbare documentatie van de service, inclusief alle ondersteunde parameters en teruggegeven indelingen.

Notitie

Dit eindpunt is analoog aan WFS’s GetCapabilities

Lijst Collecties

Het eindpunt Collecties verschaft een lijst met alle beschikbare collecties in de service. Om dat de service één enkel project van QGIS “dient” zijn de collecties de vectorlagen uit het huidige project (indien zij werden gepubliceerd als WFS in de projecteigenschappen). Het pad van dit eindpunt is /collections/.

../../_images/server_wfs3_collections.png

Fig. 3.3 Server WFS3 pagina met lijst van collecties

Detail collectie

Hoewel het eindpunt Collecties geen gedetailleerde informatie verschaft over elke beschikbare collectie, is die informatie beschikbaar in de eindpunten /collections/{collectionId}. Typische informatie omvat het bereik, een beschrijving, CRSen en andere metadata.

De weergave HTML verschaft ook een door te bladeren kaart met de beschikbare objecten.

../../_images/server_wfs3_collection.png

Fig. 3.4 Server WFS3 pagina met detail collectie

Lijst met objecten

Dit eindpunt verschaft een lijst van alle objecten in een collectie, waarvan de ID voor de collectie bekend is. Het pad van dit eindpunt is /collections/{collectionId}/items.

De weergave HTML verschaft ook een door te bladeren kaart met de beschikbare objecten.

Notitie

Dit eindpunt is analoog aan GetFeature in WFS 1 en WFS 2.

../../_images/server_wfs3_features.png

Fig. 3.5 Server WFS3 pagina met lijst met objecten

Detail object

Dit eindpunt verschaft alle beschikbare informatie over één enkel object, inclusief de attributen van het object en zijn geometrie. Het pad van dit eindpunt is /collections/{collectionId}/items/{itemId}.

De weergave HTML verschaft ook een door te bladeren kaart met de geometrie van het object.

../../_images/server_wfs3_feature.png

Fig. 3.6 Server WFS3 pagina detail object

3.4.3. Paginering

Paginering van een lange lijst met objecten is geïmplementeerd in de OGC API door middel van links next en prev, QGIS server construeert deze links door het toevoegen van limit en offset als parameters voor de tekenreeks van de query.

Voorbeeld URL:

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

Notitie

De maximale te accepteren waarde voor limit kan worden geconfigureerd met de instelling voor de configuratie van de server QGIS_SERVER_API_WFS3_MAX_LIMIT (zie: Omgevingsvariabelen).

3.4.4. Objecten filteren

De beschikbare objecten in een collectie kunnen worden gefilterd/doorzocht door één of meer filters te specificeren.

Filter Datum en tijd

Collecties met attributen date en/of datetime kunnen worden gefilterd door een argument datetime te specificeren in de tekenreeks voor de query. Standaard wordt het eerste veld date/datetime gebruikt voor filteren. Dit gedrag kan worden geconfigureerd door het instellen van een dimensie “Date” of “Time” in het gedeelte QGIS Server ► Dimension van het dialoogvenster Laageigenschappen.

De syntaxis voor filteren van datum en tijd is volledig beschreven in de API Definitie en ondersteunt ook bereiken (begin- en eindwaarden inbegrepen) in aanvulling op enkele waarden.

Voorbeelden URL:

Geeft alleen de objecten terug met de dimensie date die overeenkomt met 2019-01-01

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

Geeft alleen de objecten terug met de dimensie datetime die overeenkomt met 2019-01-01T01:01:01

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

Geeft alleen de objecten terug met de dimensie datetime in het bereik 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

Filter Begrenzingsvak

Een ruimtelijk filter voor een begrenzingsvak kan worden gespecificeerd met de parameter bbox:

De volgorde van de door komma’s gescheiden elementen is:

  • Linkerbenedenhoek, WGS 84 longitude

  • Linkerbenedenhoek, WGS 84 latitude

  • Rechterbovenhoek, WGS 84 longitude

  • Rechterbovenhoek, WGS 84 latitude

Notitie

De specificaties van OGC staan ook een specificatie voor een 6-items begrenzingsvak toe, waarbij de derde en zesde items de componenten Z zijn, dit wordt nog niet ondersteund door QGIS server.

Voorbeeld URL:

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

Als het CRS van het begrenzingsvak niet WGS 84 is, kan een ander CRS worden gespecificeerd met de optionele parameter bbox-crs. De identificatie voor de indeling van het CRS moet zijn in de indeling OGC URI:

Voorbeeld 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

Filters voor attributen

Filters voor attributen kunnen worden gecombineerd met het filter voor het begrenzingsvak en zij mogen in de algemene vorm: <attribute name>=<attribute value> zijn. Meerdere filters mogen worden gecombineerd met de operator AND.

Voorbeeld URL:

filtert alle objecten waarvan het attribuut name gelijk is aan “my value”

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

Gedeeltelijke overeenkomsten worden ook ondersteund door een operator * (“ster”):

Voorbeeld URL:

filtert alle objecten waarvan het attribuut name eindigt op “value”

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

3.4.5. Sorteren van objecten

Het is mogelijk de volgorde van de set met resultaten te sorteren op veldwaarde met de parameter voor de query sortby.

De resultaten worden standaard in oplopende volgorde gesorteerd. Een Booleaanse vlag (sortdesc) kan worden ingesteld om de resultaten in aflopende volgorde te sorteren:

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

3.4.6. Selecteren van attributen

De attributen van een object, die worden teruggegeven door een aanroep Lijst met objecten, kunnen worden beperkt door een kommagescheiden lijst met namen van attributen toe te voegen in het optionele argument properties van de tekenreeks voor de query.

Voorbeeld URL:

geeft alleen het attribuut name terug

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

3.4.7. De HTML-pagina’s aanpassen

De weergave HTML gebruikt een set sjablonen voor HTML om het antwoord te maken. De sjabloon wordt geparset door een sjabloonprogramma, genaamd inja. De sjablonen kunnen worden aangepast door ze te overschrijven (zie: Overschrijven van sjabloon). De sjabloon heeft toegang tot dezelfde gegevens, als die welke beschikbaar zijn voor de weergave JSON, en een aantal aanvullende functies zijn voor de sjabloon beschikbaar:

Aangepaste functies voor sjabloon

  • path_append( path ): voegt een pad naar een map toe aan de huidige URL

  • path_chomp( n ): verwijdert het gespecificeerde aantal “n” mapcomponenten uit het huidige pad voor de URL

  • json_dump( ): drukt de gegevens voor JSON af die zijn doorgegeven aan de sjabloon

  • static( path ): geeft de volledige URL terug naar het gespecificeerde statische pad. Bijvoorbeeld: “static( “/style/black.css” )” met een bronpad “http://localhost/qgisserver/wfs3” zal teruggeven “http://localhost/qgisserver/wfs3/static/style/black.css”.

  • links_filter( links, key, value ): Geeft gefilterde links terug uit een lijst met links

  • content_type_name( content_type ): Geeft een verkorte naam terug uit een type inhoud, bijvoorbeeld “text/html” zal “HTML” teruggeven

Overschrijven van sjabloon

Sjablonen en statische gegevens worden opgeslagen in submappen van de standaardmap voor de API-bron van de QGIS server (/usr/share/qgis/resources/server/api/ op een systeem van Linux), de basismap kan worden aangepast door de omgevingsvariabele QGIS_SERVER_API_RESOURCES_DIRECTORY te wijzigen.

Een typische installatie voor Linux zal de volgende boom voor de mappen hebben:

/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

U kunt, om de sjablonen te overschrijven. de gehele boom kopiëren naar een andere locatie en QGIS_SERVER_API_RESOURCES_DIRECTORY laten verwijzen naar de nieuwe locatie.

3.5. Extra parameters ondersteund door alle typen verzoeken

De volgende extra parameters worden ondersteund door alle protocollen

  • FILE_NAME: indien ingesteld, zal het antwoord van de server worden verzonden naar de cliënt als een bestandsbijlage met de gespecificeerde bestandsnaam.

Notitie

Niet beschikbaar voor WFS3.

  • MAP: Soortgelijk aan MapServer, mag de parameter MAP worden gebruikt om het pad naar het projectbestand van QGIS te specificeren. U kunt een absoluut pad of een relatief pad naar het uitvoerende programma van de server specificeren (qgis_mapserv.fcgi). Indien niet gespecificeerd, zoekt QGIS Server naar bestanden .qgs in de map waar het uitvoerende programma van de server is geplaatst.

    Voorbeeld:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?\
      REQUEST=GetMap&MAP=/home/qgis/projects/world.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.

3.6. REDLINING

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

Het equivalent GetPrint is in de indeling (merk op dat de parameter mapX: is toegevoegd om aan te geven welk kaart rode markeringen heeft):

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

Hier is de afbeelding die is uitgevoerd door het bovenstaande verzoek waarin een polygoon en een label zijn getekend bovenop de normale kaart:

../../_images/server_redlining.png

Fig. 3.7 Antwoord van de server voor een verzoek GetMap met parameters redlining

U kunt zien dat er verscheidene parameters in dit verzoek staan:

  • HIGHLIGHT_GEOM: U kunt POINT, MULTILINESTRING, POLYGON etc. toevoegen. 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_LABELFONT: Deze parameter beheert het lettertype van het label. (bijv. Arial)

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

3.7. Externe WMS-lagen

QGIS Server staat het toe om lagen uit externe WMS-servers op te nemen in verzoeken WMS GetMap en WMS GetPrint. Dit is in het bijzonder nuttig als een webclient een externe achtergrondlaag in de webkaart gebruikt. Om redenen van uitvoering zouden dergelijke lagen direct moeten worden verzocht bij de webcliënt (niet gestapeld via QGIS server). Voor afdrukken echter zouden deze lagen moeten worden gestapeld via QGIS server om te kunnen verschijnen op de afgedrukte kaart.

Externe lagen kunnen worden toegevoegd aan de parameter LAYERS als EXTERNAL_WMS:<layername>. De parameters voor de externe WMS-lagen (bijv: URL, indeling, dpiMode, crs, lagen, stijlen) kunnen later worden opgegeven als parameters voor de service <layername>:<parameter>. In een verzoek GetMap zou dit er uit kunnen zien als:

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

Soortgelijk kunnen externe lagen worden gebruikt in verzoeken 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-catalogus

De QGIS Server-catalogus is een eenvoudige catalogus die de lijst met projecten van QGIS weergeeft die worden geserveerd door de QGIS Server. Het verschaft een gebruikersvriendelijke, volledig door te bladeren website met basismogelijkheden voor in kaart brengen om snel door de gegevenssets te bladeren die worden weergegeven door deze projecten van QGIS.

De QGIS Server-catalogus gebruikt de variabelen QGIS_SERVER_LANDING_PAGE_PROJECTS_DIRECTORIES en QGIS_SERVER_LANDING_PAGE_PROJECTS_PG_CONNECTIONS (bekijk Omgevingsvariabelen)

../../_images/server_project_list.png

Fig. 3.8 Server-catalogus pagina met lijst projecten

U kunt de metadata raadplegen die is geassocieerd aan een project en de services die het verschaft. Koppelingen naar deze services worden ook gegeven.

../../_images/server_project_metadata_services.png

Fig. 3.9 Server-catalogus, metadata geassocieerd aan een project en services (koppelingen naar) die het verschaft.

Door door een project te bladeren vermeldt het de gegevenssets die het bevat.

../../_images/server_browse_dataset.png

Fig. 3.10 Bladeren door een gegevensset, geserveerd door een project in de Server-catalogus

Klik met rechts om de attributentabel weer te geven die ermee is geassocieerd.

../../_images/server_attribute_table.png

Fig. 3.11 Attributentabel geassocieerd met een laag

Het is mogelijk informatie over elementen in de kaart te raadplegen, zoals weergegeven in de afbeelding hieronder:

../../_images/server_info_results.png

Fig. 3.12 Informatie raadplegen over een kaartelement