gisvyvojari.cz

Dopravní značení s dynamicky definovaným textem

Dynamické parametry SVG v QGIS

6. 6. 2022

Při používání složitějších typů symbologie či při specifickém zaměření projektu může být vhodné použít jako symboly SVG obrázky. QGIS umožňuje tento typ symbolů upravovat podobně jako rastrové obrázky. Tedy nastavovat jim výšku, šířku popřípadě odsazení (offset). Pro práci s takovýmto symbolem však může být nutné měnit další jeho vlastnosti, zejména jeho barvu výplňe (fill) nebo obrys (stroke).

Formulář pro úpravu SVG symbolů v QGIS
Formulář pro úpravu vlastností SVG symbolů v QGIS

Tyto hodnoty jde i ve starších verzích QGIS měnit dynamicky ve formuláři. Je však nutné originální obrázek správným způsobem upravit. Aby bylo možné tyto hodnoty měnit parametricky, je třeba jako jejich hodnotu použít text param(název_atributu), např. „param(fill)„.

Nastavení dynamických SVG parametrů fill a stroke
Nastavení SVG pro použití dynamických parametrů fill a stroke v QGIS

Vytváření dynamických parametrů ve formuláři QGIS

Od verze 3.18 je přímo v QGIS implementováno rozhraní pro práci s parametry SVG. To umožňuje upravovat parametry, které nejsou standardně zahrnuty v úpravách symbologie. Okno umožňuje výběr názvu parametru který je v obrázku a novou hodnotu, která nahrazuje výraz parametru. Například, máme nadefinovaný parametr „param(text1)„, který může značit např. označení začátku obce. Následně v rozhraní formuláře v QGIS je vybrán název tohoto parametru (text1) a expression, tedy výraz, který bude vyhodnocen pro získání samotné hodnoty. Může jít o označení sloupce nebo nějaký složitější výraz (kombinace hodnot, získání hodnoty z jiné vrstvy apod.) V tomto případě jde o získání prvního (nultého) prvku z pole, které je obsaženo ve sloupci „popisky“.

Okno pro přiřazení dynamických parametrů SVG v QGIS
Okno ve formuláři symbologie pro přiřazení dynamických parametrů SVG v QGIS

Parametr musí být opět zmíněn na správném místě v příslušném SVG. V případě těchto dynamických parametrů nahrazuje výsledek výrazu (expression) celý text s parametrem. V tomto případě se tedy do struktury SVG místo „param(text1)“ dosadí text „BRNO„.

Vlastní parametr pro dynamické dosazení textu do SVG
Vlastní parameter pro dosazení textu do SVG při použití dynamických parametrů v QGIS

Dosazování textu do obrázku může být přínosné například při vytváření symbologie pro vrstvu dopravního značení. Textové pole v SVG umožňuje jednoduché zachování stylu textu a jeho správné umístění v rámci značky. V této roli je jeho využití jednodušší než vytváření textového symbolu (Font Marker), který také umožňuje použití dynamicky definovaného textu. Výsledkem  uvedeného postupu mohou být značky označující začátek/konec obce se správně uvedeným názvem, viz níže.

Dopravní značení s dynamicky definovaným textem
Svislé dopravní značení s textem definovaným v dynamických parametrech SVG

Pro komplexní využití dynamických 

Galerie obrázků