Tvorba vlastních aplikací postavených na knihovnách QGIS

Některé procesy je výhodné vykonávat automatizovaně, místo množství ruční práce. Na našich kurzech se snažíme tento přístup propagovat a nebude překvapením, že je možné vedle nástrojů pro práci s prostorovými daty typu Fiona, RasterIO nebo GDAL, můžeme využít i knihovny QGIS.

Základem je modul qgis.core, který je potřeba pro většinu úkolů spojených se zpracováním dat. Ale pomocí knihoven QGIS lze také celkem jednoduše vytvořit vlastní aplikaci s kompletním grafickým rozhraním, a to pomocí modulu qgis.gui, který zpřístupňuje různá části grafického rozhraní, jako je canvas pro vykreslení mapy, ale i další.

Základní kostra projektu

Pro to, aby šlo využít knihovny QGIS, je potřeba trochu režie při inicializaci projektu i při jeho ukončení:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env python3

# Minimalistický skript, který inicializuje knihovny QGIS a připraví je k
# použití

from qgis.core import *

# Nejprve musíme nastavit cestu k instalaci QGIS
QgsApplication.setPrefixPath("/usr/local/", True)

# vytvoříme instanci aplikace QGIS. Druhý argument nastavuje, jestli se bude
# jednat o aplikaci využívající grafické rozhraní nebo ne
qgs = QgsApplication([], False)

# načtení poskytovatelů dat
qgs.initQgis()

#
# Na toto místo přijde vlastní kód aplikace, využívající knihovnu QGIS
#

# Na konci programu je potřeba zavolat exitQgis(), aby došlo k odregistrovaná
# poskytovatelů dat a vymazání vrstev z paměti počítače
qgs.exitQgis()

Po nastavení práv pro spuštění souboru chmod 755 standalone.py můžeme program spustit a nechat proběhnout.

Note

Pravděpodobně bude potřeba ještě nastavit správnou proměnnou PYTHONPATH s cestou k instalaci QGIS knihoven pro Python.