QGIS Server¶
QGIS Server je FastCGI/CGI (Common Gateway Interface) aplikace implementující OGC webové služby WMS (Web Map Service) 1.3, WFS (Web Feature Service) 1.0.0 a WCS (Web Coverage Service) 1.1.1.
Poznámka
Více k tématu webových služeb OGC ve školení Open Source GIS.
QGIS Server je podobně jako samotný QGIS napsán v jazyce C++, pro svůj běh vyžaduje webový server (například Apache). QGIS knihovny jsou potom serverem využívány pro GIS logiku a vykreslování mapy. Oba softwary používají totožné vizualizační knihovny, proto se výstup zobrazuje stejně při publikaci přes QGIS Server ale i přímo v QGISu. Takovýmto způsobem lze tedy jednoduše publikovat např. WMS službu na základě existujícího QGIS projektu a příslušných dat.
Zjednodušeně by šlo tuto technologii popsat jako možnost prezentace či sdílení dat, či odvozených datasetů pomocí standardizovaných služeb jakými jsou WMS či WFS, případně další. Způsob publikace je díky jednoduchému nastavení rychlý a umožňuje využít již existující projekty. Díky možnosti použít značně pokročilé způsoby stylování je možné vypublikovat graficky propracované výstupy s vysokou obsahovou kvalitou.
Infrastruktura do které lze QGIS Server začlenit může být vystavěna různým způsobem. V případě jakýchkoli projektů je však vhodné využívat ukládání dat v databázích, nikoli pouze využívat souborovou strukturu.
Technologie je popsaná na stránkách QGISu.
Instalace a první použití¶
Pro jednoduché testování je možné využít návod na výše uvedených stránkách pro základní instalaci a na jednoduchém příkladu vyzkoušet nastavení služeb, jako je uvedeno níže.
Výchozí nastavení QGIS projektu umožňuje jeho přímou publikaci jako
jednoduché WMS služby, bez jakéhokoli dalšího nastavení. Přidáme
novou službu WMS z URL
http://server:91/cgi-bin/qgis_mapserv.fcgi?service=WMS&REQUEST=GetCapabilities&MAP=user/diagram1.qgs
,
kde pomocí parametru MAP definujeme cestu k projektu.
Poznámka
QGIS verze 3 umožňuje projekt uložit kromě tradičního
souboru s příponou .qgs
také nově i v komprimovaném formátu s
příponou .qgz
. V tomto případě bude výše uvedená URL končit na
diagram1.qgz
.
Nastavení publikačních služeb v projektu¶
Specifikace a detailní nastavení služeb pro každý projekt je možné měnit pomocí nastavení samotného QGIS projektu v
v záložce OWS Server.WMS služba¶
QGIS Server podporuje následující typy požadavků na WMS službu:
- GetCapabilities
- GetMap
- GetFeatureInfo
- GetLegendGraphics
- DescribeLayer
- GetStyles
`GetCapabilities`
Jedním z požadavků klienta na server je požadavek na vypsání informací GetCapabilities. Jde o specifikaci služeb ve dvou základních částech - Service a Capability.
Jak již bylo uvedeno, tak pro základní publikaci služby není nutné žádné speciální nastavení. V takovém případě ale požadavek GetCapabilities vrátí odpověď, která je nastavená ve výchozím souboru wms_metadata.xml v adresáři cgi-bin.
Sestavený požadavek pro náš příklad může vypadat následovně:
http://server:91/cgi-bin/qgis_mapserv.fcgi?service=WMS&REQUEST=GetCapabilities&MAP=user/diagram1.qgs
Na následujícím obrázku je ukázka odpovědi na požadavek před úpravou projektu, nastavení projektu a následní odpověď na stejný požadavek po uložení projektu. Jak je na obrázku zvýrazněno, je nutné mít zaškrtnutou volbu Schopnosti služby.
Službu WMS lze definovat i detailněji. V záložce Schopnosti WMS jsou k dispozici detailnější nastavení, které modifikují výchozí nastavení. Lze zde upravit Rozsah poskytovaného obsahu, podporované souřadnicové systémy, vyloučit jednotlivé tvůrce mapy. Nejdůležitější je omezení (vyloučení) vrstev. Lze tedy definovat vrstvy, které služba nebude zahrnovat - z velkého projektu lze nadefinovat službu poskytující jenom určitý obsah. Z dalších nastavení je podstatné zejména kvalita obrázků a nastavení maximální velikosti pro požadavek GetMap.
Dotazování na prvek můžeme rozšířit i výpisem geometrie dotazovaného prvku pomocí volby Add geometry to feature response. Geometrie je pak vypsaná jako samostatný atribut ve formě WKT.
WFS služba¶
Nastavení služby WFS je v samostatné části. Lze zde nastavit WFS službu pro každou vrstvu zvlášť. A dokonce je možné nastavit práva ke každé vrstvě pro publikaci, aktualizaci, vkládání a mazání samostatně (tedy využívat standard WFS-T – WFS - Transactional).
Tip
V nastavení projektu je ještě položka Otestovat nastavení, kde je možné spustit kontrolu nastavení jednotlivých služeb. Kontrolují se například názvy vrstev a jejich kódování. Jako výstup testování se vypíše krátká správa o stavu nastavení.
Poznámka
Ve stávající verzi podporuje QGISServer OGC WFS ve verzi 1.0.0, což už je poněkud překonaná verze.
Pokročilé nastavení¶
`GetFeatureInfo` - nastavení vrstvy
Dalším nastavením je možnost povolit vrstvu k identifikování, což určuje zda je k dispozici požadavek GetFeatureInfo u služby WMS. Toto nastavení je v Identifikovat vrstvy. Jak je vidět i na Obr. 168 nastavení je formou voleb u každá vrstvy samostatně.
záložka`GetFeatureInfo` - nastavení atributů
Rozlišit možnost přístupu k datům lze i na úrovni atributů. Pokud bychom chtěli poskytovat jenom určité atributy u vrstev, tak i toto chování lze jednoduše docílit. Ve vlastnostech každé vrstvy je záložka Pole, kde jsou uvedeny všechny atributy dané vrstvy. Mimo běžných informací např. o datovém typu každé vlastnosti je u každé kolonka s volbou pro WMS a WFS službu. Ve výchozím nastavení jsou pro obě služby dostupné všechny atributy. Jednoduchou úpravou docílíme, že atribut pro zvolenou službu nebude dostupný.