Outdated version of the documentation. Find the latest one here.

QGIS als OGC Data Server

QGIS Server is een open bron WMS 1.3, WFS 1.0.0 en WCS 1 1.1.1 implementatie die, in aanvulling daarop, gevorderde cartografische mogelijkheden voor thematische kaarten implementeert. De QGIS Server is een FastCGI/CGI (Common Gateway Interface)-toepassing, geschreven in C++ die samenwerkt met een webserver (bijv., Apache, Lighttpd). Het heeft ondersteuning voor plug-ins van Python die snelle en efficiënte ontwikkeling en het uitrollen van nieuwe mogelijkheden mogelijk maakt. De originele ontwikkeling van QGIS Server werd financieel mogelijk gemaakt door de EU-projecten Orchestra, Sany en de stad Uster in Zwitserland.

QGIS Server gebruikt QGIS als achterliggend programma voor de logica van GIS en voor het renderen van de kaarten. Verder wordt de bibliotheek Qt gebruikt voor afbeeldingen en platform-onafhankelijk programmeren in C++. In tegenstelling tot andere software voor WMS software, gebruikt QGIS Server cartografische regels als configuratie-taal, zowel voor de configuratie van de server als voor de door de gebruiker gedefinieerde cartografische regels.

Omdat QGIS desktop en QGIS Server dezelfde bibliotheken voor visualisatie gebruiken, zien de kaarten die op het web worden gepubliceerd er hetzelfde uit als in desktop GIS.

In de volgende gedeelten zullen we een voorbeeld configuratie opnemen om een QGIS Server in te stellen op Debian/Ubuntu Linux. We adviseren om één van de volgende URL’s te lezen voor meer informatie over door gebruiker bijgedragen installatie op andere platformen of distributies:

QGIS Server op Debian/Ubuntu installeren

Op dit punt zullen we een korte en eenvoudige How-to geven voor een voorbeeld-installatie met behulp van Apache2 op Debian Squeeze )of met verwaarloosbare variaties op Unbuntu 14.04). Vele andere OS-en verschaffen ook pakketten voor QGIS Server. Bekijk de URL’s hierboven als u het allemaal vanaf de bron moet bouwen.

Voeg als eerste de volgende GIS opslagplaats voor Debian toe:

$ cat /etc/apt/sources.list.d/debian-gis.list
deb http://qgis.org/debian trusty main
deb-src http://qgis.org/debian trusty main

$ # Add keys
$ sudo gpg --keyserver keyserver.ubuntu.com --recv-key 3FF5FFCAD71472C4
$ sudo gpg --export --armor 3FF5FFCAD71472C4 | sudo apt-key add -

$ # Update package list
$ sudo apt-get update && sudo apt-get upgrade

Installeer nu QGIS-Server:

$ sudo apt-get install qgis-server python-qgis

Installatie van een voorbeeld plug-in HelloWorld voor het testen van de servers. U maakt een map waarin de plug-ins voor de server koken te staan. Dat zal worden gespecificeerd in de configuratie van de virtual host en worden doorgegeven aan de server door middel van een omgevingsvariabele:

$ sudo mkdir -p /opt/qgis-server/plugins
$ cd /opt/qgis-server/plugins
$ sudo wget https://github.com/elpaso/qgis-helloserver/archive/master.zip
$ # In case unzip was not installed before:
$ sudo apt-get install unzip
$ sudo unzip master.zip
$ sudo mv qgis-helloserver-master HelloServer

Installeer de Apache server in een afzonderlijke virtual host luisterend naar poort 80. Schakel de module rewrite in om HTTP BASIC auth headers door te kunnen geven:

$ sudo a2enmod rewrite
$ cat /etc/apache2/conf-available/qgis-server-port.conf
Listen 80
$ sudo a2enconf qgis-server-port

Dit is de configuratie voor de virtual host, opgeslagen in /etc/apache2/sites-available/001-qgis-server.conf :

<VirtualHost *:80>
  ServerAdmin [email protected]
  DocumentRoot /var/www/html

  ErrorLog ${APACHE_LOG_DIR}/qgis-server-error.log
  CustomLog ${APACHE_LOG_DIR}/qgis-server-access.log combined

  # Longer timeout for WPS... default = 40
  FcgidIOTimeout 120
  FcgidInitialEnv LC_ALL "en_US.UTF-8"
  FcgidInitialEnv PYTHONIOENCODING UTF-8
  FcgidInitialEnv LANG "en_US.UTF-8"
  FcgidInitialEnv QGIS_DEBUG 1
  FcgidInitialEnv QGIS_SERVER_LOG_FILE /tmp/qgis-000.log
  FcgidInitialEnv QGIS_SERVER_LOG_LEVEL 0
  FcgidInitialEnv QGIS_PLUGINPATH "/opt/qgis-server/plugins"

  # Needed for QGIS HelloServer plugin HTTP BASIC auth
  <IfModule mod_fcgid.c>
      RewriteEngine on
      RewriteCond %{HTTP:Authorization} .
      RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
  </IfModule>

  ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
  <Directory "/usr/lib/cgi-bin">
      AllowOverride All
      Options +ExecCGI -MultiViews +FollowSymLinks
      # for apache2 > 2.4
      Require all granted
      #Allow from all
  </Directory>
 </VirtualHost>

Schakel nu de virtual host in en start Apache opnieuw:

$ sudo a2ensite 001-qgis-server
$ sudo service apache2 restart

Test de server met de plug-in HelloWorld:

$ wget -q -O - "http://localhost/cgi-bin/qgis_mapserv.fcgi?SERVICE=HELLO"
HelloServer!

U kunt de standaard GetCapabilities van de QGIS server bekijken op: http://localhost/cgi-bin/qgis_mapserv.fcgi?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities

Tip

Als u werkt met een object dat vele knopen heeft dan zal het aanpassen en toevoegen van een nieuw object mislukken. In dit geval is het mogelijk de volgende code in te voegen in het bestand 001-qgis-server.conf

<IfModule mod_fcgid.c>
FcgidMaxRequestLen 26214400
FcgidConnectTimeout 60
</IfModule>

Een server voor WMS/WFS/WCS uit een project van QGIS maken

We moeten een projectbestand van QGIS met enige gegevens hebben om een nieuw QGIS Server WMS, WFS of WCS te verschaffen. Hier gebruiken we het shapefile ‘Alaska’ uit de voorbeeld gegevensset van QGIS. Definieer de kleuren en stijlen van de lagen in QGIS en het CRS voor het project, als die nog niet gedefinieerd zijn.

Figure Server 2:

../../../_images/ows_server_definition.png

Definities voor een project QGIS Server WMS/WFS/WCS

Ga dan naar het menu OWS Server van het dialoogvenster Project ‣ Projecteigenschappen en geef enige informatie over de OWS in de velden onder Service-mogelijkheden. Dit zal verschijnen in het antwoord GetCapabilities van de WMS, WFS of WCS. Als u checkbox Service-mogelijkheden niet selecteert zal QGIS Server de informatie gebruiken die is opgegeven in het bestand wms_metadata.xml dat is opgeslagen in de map cgi-bin.

Waarschuwing

Indien u het project van QGIS gebruikt met opmaak gebaseerd op SVG-bestanden die relatieve paden gebruiken dan zou u moeten weten dat de server het pad beschouwt als relatief ten opzichte van zijn bestand qgis_mapserv.fcgi (nie ten opzichte van het bestand qgs). Dus, indien u een project opzet op de server en de bestanden van SVG zijn niet overeenkomstig geplaatst, zouden de uitgevoerde afbeeldingen niet hoeven voldoen aan de opmaak van de Desktop. U kunt eenvoudigweg de SVG-bestanden relatief kopiëren ten opzichte van qgis_mapserv.fcgi om er voor te zorgen dat dit niet voorkomt. U kunt ook een symbolische koppeling maken in de map waar het fcgi-bestand staat, die verwijst naar de map die de SVG-bestanden bevat (op Linux/Unix).

WMS-mogelijkheden

In het gedeelte WMS-mogelijkheden kunt u het bereik definiëren dat zal worden opgenomen in het antwoord van de WMS GetCapabilities door de minimum en maximum waarden voor X en Y in de velden onder Opgegeven bereik in te voeren. Klikken op Huidige bereik van kaartvenster gebruiken stelt deze waarden in op het bereik dat momenteel wordt weergegeven in het kaartvenster van QGIS. Door checkbox CRS-beperkingen te selecteren kunt u beperken in welke coördinaten referentiesystemen (CRS) QGIS Server zal aanbieden de kaarten te renderen. Gebruik de knop signPlus onderin om het CRS te selecteren uit de selectie voor Coördinaten ReferentieSysteem, of klik op Huidige gebruikte om het in het project van QGIS gebruikte CRS aan de lijst toe te voegen.

Als u printvormgevingen hebt gedefinieerd in uw project, zullen zij worden vermeld in het antwoord GetCapabilities en zij kunnen worden gebruikt in het verzoek GetPrint om afdrukken te maken, met behulp van een van de lay-outs voor de printvormgeving als een sjabloon. Dit is een QGIS-specifieke uitbreiding aan de specificatie voor WMS 1.3.0. Indien u niet wilt dat een printvormgeving wordt gepubliceerd door de WMS, selecteer dan checkbox Printvormgeving uitsluiten en klik op de knop signPlus onderin. Selecteer dan een printvormgeving vanuit het dialoogvenster Selecteer printvormgeving om die toe te voegen aan de lijst met uitgesloten printvormgevingen.

Indien u niet wilt dat een laag of groep lagen wordt gepubliceerd door de WMS, selecteer dan checkbox Kaartlagen uitsluiten en klik op de knop signPlus onderin. Dit opent het dialoogvenster Selecteer lagen en groepen met restricties dat u in staat stelt de lagen en groepen te kiezen die u niet wilt publiceren. Gebruik de toetsen Shift of Ctrl als u meerdere items wilt selecteren.

U kunt de door u verzochte GetFeatureInfo als platte tekst, XML en GML ontvangen. XML is standaard, de indelingen tekst of GML zijn afhankelijk van de indeling die wordt gekozen in het verzoek GetFeatureInfo.

Als u dat wilt kunt u checkbox Geometrie aan feature response toevoegen selecteren. Dit zal in het antwoord van GetFeatureInfo de geometrieën opnemen van de objecten in tekstindeling. Als u wilt dat QGIS Server specifieke URL’s voor verzoeken opneemt in het antwoord van WMS GetCapabilities, voer dan de overeenkomende URL in in het veld Opgegeven URL. Verder kunt u de maximale grootte van de kaarten instellen die worden teruggegeven door het verzoek GetMap door de maximum breedte en hoogte in te voeren in de respectievelijke velden onder Maxima voor GetMap-verzoek.

Als één van uw lagen de weergave Kaarttip gebruikt (d.i. om tekst met behulp van expressies weer te geven) zal dit worden vermeld binnen de uitvoer van GetFeatureInfo. Als de laag een Value Map gebruikt voor één van zijn attributen, wordt die informatie ook weergegeven in de uitvoer van GetFeatureInfo.

QGIS ondersteunt de volgende verzoeken voor de WMS-service:

  • GetCapabilities
  • GetMap
  • GetFeatureInfo
  • GetLegendGraphic (SLD-profiel)

  • DescribeLayer (SLD-profiel)

  • GetStyles (aangepast QGIS-profiel)

WFS-mogelijkheden

In het gebied WFS-mogelijkheden kunt u de lagen selecteren die u wilt publiceren als WFS, en specificeren of zij de bewerkingen Bijwerken, Toevoegen en Verwijderen zullen toestaan. Als u een URL invoert in het veld Opgegeven URL van het gedeelte WFS-mogelijkheden, zal QGIS Server deze specifieke URL opnemen in het antwoord WFS GetCapabilities.

QGIS ondersteunt de volgende verzoeken voor de WMS-service:

  • GetCapabilities
  • DescribeFeatureType
  • GetFeature
  • Transaction

WCS-mogelijkheden

In het gebied WCS-mogelijkheden kunt u de lagen selecteren die u wilt publiceren als WCS. Als u een URL invoert in het veld Opgegeven URL van het gedeelte WCS-mogelijkheden, zal QGIS Server deze specifieke URL opnemen in het antwoord van WCS GetCapabilities.

Sla nu de sessie op in een projectbestand alaska.qgs. We maken een nieuwe map /usr/lib/cgi-bin/project met rechten als beheerder en voegen het projectbestand alaska.qgs en een kopie van het bestand qgis_mapserv.fcgi toe om het project te verschaffen als WMS/WFS - dat is alles.

Nu gaan we ons project WMS, WFS en WCS testen. Voeg de WMS, WFS en WCS toe, zoals beschreven in Laden van lagen WMS/WMTS, WFS- en WFS-T-cliënt en WCS-cliënt, aan QGIS en laad de gegevens. De URL is:

http://localhost/cgi-bin/project/qgis_mapserv.fcgi

QGIS ondersteunt de volgende verzoeken voor de WCS-service:

  • GetCapabilities
  • DescribeCoverage
  • GetCoverage

Cachen van GetCapabilities

QGIS Server cachet de antwoorden op de verzoeken GetCapabilities om de reactietijd te verbeteren. Indien een dergelijk verzoek komt, gaat QGIS Server het antwoord cachen en markeert de cache als geldig. tegelijkertijd bekijkt het de wijzigingen in het project. Als het project wordt gewijzigd wordt de cache gemarkeerd als ongeldig en QGIS Server wacht op een nieuw verzoek om de cache opnieuw in te richten.

Fijn afstemmen van uw OWS

Voor vectorlagen geeft het menu Velden van het dialoogvenster Laag ‣ Eigenschappen u de mogelijkheid om voor elk attribuut te definiëren of het mag worden gepubliceerd of niet. Standaard worden alle attributen gepubliceerd door uw WMS en WFS. Als u een specifiek attribuut niet wilt publiceren, deselecteer dan het overeenkomende keuzevak in de kolom WMS of WFS.

U kunt watermerken over uw door WMS geproduceerde kaarten leggen door tekstannotaties of SVG-annotaties toe te voegen aan het projectbestand. Zie het gedeelte gereedschap Annotatie in Algemeen gereedschap voor instructies over het maken van annotaties. Het keuzevak Vaste positie op kaart in het dialoogvenster Annotatie tekst moet worden gedeselecteerd om annotaties als watermerken te laten weergeven op de uitvoer van WMS. Toegang hiertoe kan worden verkregen door te dubbelklikken op een annotatie als een van de gereedschappen voor annotaties actief is. Voor SVG-annotaties dient u ofwel het project in te stellen om absolute paden op te slaan (in het menu Algemeen van het dialoogvenster Project ‣ Projecteigenschappen) of door het pad voor de SVG-afbeelding zo handmatig aan te passen dat het een geldig relatief pad weergeeft.

Configuratie van server en ondersteunde parameters

QGIS Server ondersteunt enkele parameters en verzoeken van fabrikanten die de mogelijkheden voor het aanpassen van zijn gedrag enorm uitbreiden. De volgende alinea’s vermelden de parameters van de fabrikanten en de omgevingsvariabelen die door de server worden ondersteund.

Extra parameters ondersteund door alle typen verzoeken

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

Extra parameters ondersteund door het verzoek WMS GetMap

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:

  • parameter DPI : De parameter DPI kan worden gebruikt om de resolutie voor de verzochte uitvoer te specificeren.

    Voorbeeld:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?REQUEST=GetMap&DPI=300&...
  • parameter OPACITIES: Doorzichtigheid kan worden ingesteld op niveau van de laag of van een groep. Toegestane waarden reiken van 0 (volledig transparant) tot en met 255 (ondoorzichtig).

    Voorbeeld:

    http://localhost/cgi-bin/qgis_mapserv.fcgi?\
      REQUEST=GetMap&LAYERS=mylayer1,mylayer2&OPACITIES=125,200&...
  • parameter FILTER : (Beschikbaar in QGIS 1.8 en hoger). Subsets van lagen

    kunnen worden geselecteerd met de parameter FILTER. Syntaxis is in de basis hetzelfde als voor de subset tekenreeks voor QGIS . Er zijn echter enige beperkingen om SQL-injecties in de database via QGIS server te voorkomen:

    Teksttekenreeksen dienen te zijn omsloten door aanhalingstekens (enkele aanhalingstekens voor tekenreeksen, dubbele aanhalingstekens voor attributen). Een spatie tussen elk woord / speciale teken is verplicht. Toegestane sleutelwoorden en speciale tekens zijn ‘AND’,’OR’,’IN’,’=’,’<’,’>=’, ‘>’,’>=’,’!=*,’(‘,’)’. Puntkomma’s zijn in expressies van tekenreeksen niet toegestaan

    Voorbeeld:

    http://myserver.com/cgi/qgis_mapserv.fcgi?REQUEST=GetMap&LAYERS=mylayer1,mylayer2&FILTER=mylayer1:"OBJECTID" = 3;mylayer2:'text' = 'blabla'&....

Notitie

Het is mogelijk zoekacties op attributen uit te voeren via GetFeatureInfo en de parameter X/Y weg te laten als een FILTER is ingesteld. QGIS server geeft dan info terug over de overeenkomende objecten en genereert een gecombineerd begrenzingsvak in de uitvoer XML.

  • parameter SELECTION : (Beschikbaar in QGIS 1.8 en hoger)

    Vectorobjecten kunnen worden geselecteerd door middel van kommagescheiden lijsten met OBject-ID’s in GetMap en GetPrint.

    Voorbeeld:

    http://myserver.com/cgi/qgis_mapserv.fcgi?REQUEST=GetMap&LAYERS=mylayer1,mylayer2&SELECTION=mylayer1:3,6,9;mylayer2:1,5,6&...

Extra parameters ondersteund door het verzoek WMS GetFeatureInfo

QGIS Server WMS GetFeatureInfo-verzoeken ondersteunen de volgende extra optionele parameters om de tolerantie voor punt-, lijn- en polygoonlagen te definiëren:

  • parameter FI_POINT_TOLERANCE : Tolerantie voor verzoeken GetFeatureInfo in puntlagen, in pixels.

  • parameter FI_LINE_TOLERANCE : Tolerantie voor verzoeken GetFeatureInfo in lijnlagen, in pixels.

  • parameter FI_POLYGON_TOLERANCE : Tolerantie voor verzoeken GetFeatureInfo in polygoonlagen, in pixels.

GetPrint-verzoek

QGIS server heeft de mogelijkheid om uitvoer van Printvormgeving te maken in PDF- of pixelindeling. Venster van Printvormgeving 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 van Printvormgeving.

Voorbeeld:

Het gepubliceerde project heeft twee kaarten van printvormgeving. In het antwoord GetProjectSettings worden zij vermeld als mogelijke afdruksjablonen:

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

De cliënt heeft nu de informatie voor een verzoek om uitvoer af te drukken:

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 het verzoek GetPrint zijn:

  • <map_id>:EXTENT geeft het bereik weer voor een kaart in printvormgeving als Xmin,Ymin,Xmax,Ymax.

  • <map_id>:ROTATION rotatie kaart in graden

  • <map_id>:GRID_INTERVAL_X, <map_id>:GRID_INTERVAL_Y Dichtheid voor een rasterlijn in een kaart van Printvormgeving in de richtingen X en Y

  • <map_id>:SCALE Stelt een schaal voor de kaart in voor een kaart van Printvormgeving. 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

  • <map_id>:LAYERS, <map_id>:STYLES mogelijkheid om laag en lijst met stijlen op te geven voor kaarten van printvormgeving (nuttig in het geval van overzichtskaarten die alleen een subset lagen zouden moeten hebben)

GetLegendGraphics-verzoek

Verscheidene aanvullende parameters zijn beschikbaar om de elementen van de Legenda te wijzigen:

  • BOXSPACE ruimte tussen frame van Legenda en inhoud (mm)

  • 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 / RULELABEL (vanaf QGIS 2.4) stel ze in op ‘FALSE’ om alleen de afbeeldingen van de Legenda te verkrijgen, zonder labels

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

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

Op inhoud gebaseerde objecten voor Legenda zijn gebaseerd op de implementatie UMN MapServer:

GetProjectSettings-verzoek

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

DXF Export

Het is mogelijk lagen te exporteren in de indeling DXF door middel van een verzoek GetMap. Alleen lagen die toegang tot lezen hebben in de WFS-service worden geëxporteerd in de indeling DXF. Hier is een geldig REQUEST en documentatie van de beschikbare 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=application/dxf
  • FILE_NAME=uwvoorgestelde_bestandsnaam-voor_downloaden.dxf

  • FORMAT_OPTIONS=zie opties hieronder, paren sleutel:waarde, gescheiden door puntkomma’s

Parameters FORMAT_OPTIONS:

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

  • MODE:NOSYMBOLOGY|FEATURESYMBOLOGY|SYMBOLLAYERSYMBOLOGY correspondeert met de drie opties voor exporteren die worden aangeboden in het dialoogvenster voor DXF export in de QGIS Desktop.

  • LAYERSATTRIBUTES:uwkolom_met_waarden_die_moeten_worden_gebruikt_voor_DXF_laagnamen - indien niet gespecificeerd worden de originele laagnamen van QGIS gebruikt.

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

Extra parameters ondersteund door het verzoek WFS GetFeature

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 GeometryName : deze parameter kan worden gebruikt om het bereik of het zwaartepunt te verkrijgen als de geometrie of geen geometrie als none wordt gebruikt (d.i. alleen attributen). Toegestane waarden zijn extent, centroid of none.

  • StartIndex parameter: STARTINDEX is standard in WFS 2.0, but it’s an extension for WFS 1.0.0 which is the only version implemented in QGIS Server. STARTINDEX can be used to skip some features in the result set and in combination with MAXFEATURES will provide for the ability to use WFS GetFeature to page through results. Note that STARTINDEX=0 means start with the first feature, skipping none.

QGIS Server loggen

Stel de volgende omgevingsvariabelen in om naar de server verzonden verzoeken te loggen:

  • QGIS_SERVER_LOG_FILE: Specificeer pad en bestandsnaam. Zorg er voor dat de server de juiste rechten heeft om naar bestanden te schrijven. Het bestand zou automatisch gemaakt moeten worden, verzend eenvoudigweg enkele verzoeken naar de server. Als het er niet is, controleer dan de rechten.

  • QGIS_SERVER_LOG_LEVEL: Specificeer het gewenste niveau voor het loggen. Beschikbare waarden zijn:

    • 0 INFO (log alle verzoeken),

    • 1 WARNING,
    • 2 CRITICAL (log alleen kritische fouten, geschikt voor productiedoeleinden).

    Voorbeeld:

    SetEnv QGIS_SERVER_LOG_FILE /var/tmp/qgislog.txt
    SetEnv QGIS_SERVER_LOG_LEVEL 0

Notitie

  • Gebruik FcgidInitialEnv in plaats van SetEnv wanneer u de module Fcgid gebruikt!

  • Loggen van server is ingeschakeld, ook als het uitvoerbare bestand is gecompileerd in modus release.

Verkorte namen voor lagen, groepen en project

Een aantal elementen heeft zowel een <Naam> als een <Titel>. De Naam is een teksttekenreeks gebruikt voor communicatie van machine-naar-machine terwijl de Titel ten behoeve van mensen is.

Een gegevensset kan bijvoorbeeld de beschrijvende Titel Maximum Atmospheric Temperature hebben en kan worden bevraagd met de verkorte Naam ATMAX. Gebruikers kunnen al titels instellen voor lagen, groepen en het project.

OWS-naam is gebaseerd op de gebruikte naam in de boom van lagen. Deze naam is meer een label voor mensen dan een naam voor communicatie van machine-naar-machine.

QGIS Server ondersteunt:

  • bewerkingen voor verkorte naam voor laageigenschappen

  • WMS gegevensdialoogvenster om de boom voor de laag te groeperen (verkorte naam, titel, abstract). Door met rechts klikken op een lagengroep en de optie Groeperen WMS-gegevens instellen te selecteren zult u krijgen:

    Figure set group wms data:

    ../../../_images/set_group_wms_data.png
  • bewerkingen voor verkorte naam voor projecteigenchappen- voeg een validatie als reguliere expressie “^[A-Za-z][A-Za-z0-9._-]*” toe om bewerking voor verkorte naam toegankelijk te houden via een statische methode

  • voeg een validatie voor regexp “^[A-Za-z][A-Za-z0-9._-]*” toe om bewerking voor verkorte naam toegankelijk te houden via en statische methode

  • toevoegen van een element TreeName aan de fullProjectSettings

Als een verkorte naam is ingesteld voor lagen, groepen en project wordt die gebruikt door QGIS Server als de laagnaam.

Verbinding naar servicebestand

U dient, om Apache het PostgreSQL servicebestand te kunnen laten herkennen (zie het gedeelte Service verbindingsbestand), uw bestand *.conf er als volgt uit te laten zien:

SetEnv PGSERVICEFILE /home/web/.pg_service.conf

<Directory "/home/web/apps2/bin/">
  AllowOverride None
.....

lettertypen aan uw server van Linux toevoegen

Onthoud dat u projecten van QGIS kunt gebruiken die verwijzen naar lettertypen die niet als standaard op andere machines zijn geïnstalleerd. Dat betekent dat als u het project gaat delen, het er op andere machines anders uit kan zien (als de lettertypen niet bestaan op de doelmachine).

U dient eenvoudigweg de ontbrekende lettertypen te installeren op de doelmachine om er voor te zorgen dat dit niet gebeurt. Dit op machines als desktopsystemen te doen is gewoonlijk triviaal (dubbelklikken op de lettertypen).

Voor Linux, als u geen dekstopomgeving hebt geïnstalleerd (of als u liever via de opdrachtregel werkt) dient u:

  • Op Debian gebaseerde systemen:

    sudo su
    mkdir -p /usr/local/share/fonts/truetype/myfonts && cd /usr/local/share/fonts/truetype/myfonts
    
    # copy the fonts from their location
    cp /fonts_location/* .
    
    chown root *
    cd .. && fc-cache -f -v
  • Op Fedora gebaseerde systemen:

    sudo su
    mkdir /usr/share/fonts/myfonts && cd /usr/share/fonts/myfonts
    
    # copy the fonts from their location
    cp /fonts_location/* .
    
    chown root *
    cd .. && fc-cache -f -v

Omgevingsvariabelen

U kunt enkele aspecten van QGIS server configureren door omgevingsvariabelen in te stellen. Bijvoorbeeld QGIS server op Apache instellen om /pad/naar/config/QGIS/QGIS2.ini instellingenbestand te gebruiken, voeg aan config van Aapache toe:

SetEnv QGIS_OPTIONS_PATH "/path/to/config/"

of, bij gebruiken van fcgi:

FcgidInitialEnv QGIS_OPTIONS_PATH "/path/to/config/"

Dit is een lijst van door QGIS server ondersteunde variabelen:

  • QGIS_OPTIONS_PATH: Specificeert het pad naar de map met instellingen. Het werkt op dezelfde manieren als de optie voor de toepassing QGIS –optionspath. Het zoekt naar het bestand met instellingen in <QGIS_OPTIONS_PATH>/QGIS/QGIS2.ini.

  • QUERY_STRING: De query-tekenreeks, normaal gesproken doorgegeven door de webserver. Deze variabele kan nuttig zijn bij het testen van QGIS server binair vanaf de opdrachtregel.

  • QGIS_PROJECT_FILE: het .qgs projectbestand, normaal gesproken doorgegeven als een parameter in de query-tekenreeks, u kunt het ook instellen als een omgevingsvariabele (bijvoorbeeld door de module voor Apache mod_rewrite te gebruiken).

  • QGIS_SERVER_LOG_FILE: Specificeer pad en bestandsnaam. Zorg er voor dat de server de juiste rechten heeft om naar bestanden te schrijven. Het bestand zou automatisch gemaakt moeten worden, verzend eenvoudigweg enkele verzoeken naar de server. Als het er niet is, controleer dan de rechten.

  • QGIS_SERVER_LOG_LEVEL: Specificeer het gewenste niveau voor het loggen. Bekijk QGIS Server loggen

  • MAX_CACHE_LAYERS: Specificeer het maximale aantal gecachete lagen (standaard: 100).

  • DISPLAY: Dit wordt gebruikt om (nep) weergavenummer voor X server door te geven (nodig op Unix-achtige systemen).

  • QGIS_PLUGINPATH: Nuttig als u plug-ins voor Python voor de server gebruikt, dit stelt de map in waarin wordt gezocht naar plug-ins voor Python.