Styly pro vykreslování dat OpenStreetMap

MAPNIK XML

  • Formát/Jazyk Mapnik XML vzniká generováním a konfigurováním v opensourcovém nástroji pro vykreslování dat Mapnik. Jedná se tedy o formát či soubor vytvořený právě v tomto nástroji.
  • Mapnik XML v sobě obsahuje seznam vrstev (vrstva aplikuje konkrétní styl na konkrétní zdroj dat) a seznam s vytvořenými styly, které mohou vrstvy používat. 
  • Jedním z příkladů použití nástroje Mapnik a jeho jazyka (formátu) Mapnik XML je vrstva (styl) domovské stránky OSM, a to OSM Standardní.
  • V poslední době se začaly používat moderní stylové jazyky, jako je CartoCSS, MapCSS nebo Mapbox style, které nabízejí jednodušší a přehlednější zápis, a tedy i snazší a rychlejší vývoj stylů pro mapy. Tyto jazyky také nabízejí některé funkce, které nejsou k dispozici v jazyce Mapnik XML, jako je například možnost použití proměnných, dědičnosti nebo funkce pro manipulaci s barvami.
(OPENSTREETMAP WIKI 2023h)

Základní vlastnosti Mapniku XML

  • Mapové prvky (Map elements): Element <Map> definuje základní informace o mapě, jako jsou její rozměry, souřadnicový systém a další parametry.
  • Vrstvy (Layers): Elementy <Layer> definují jednotlivé vrstvy mapy, obsahující data a informace o jejich zobrazení.
  • Styl (Style): Elementy <Style> definují styly, které se používají pro zobrazení jednotlivých vrstev. Každý styl definuje vlastnosti, jako jsou barvy, šířky linií a další vlastnosti.
  • Symbolizéry (Symbolizers): Elementy <Symbolizer> definují konkrétní způsoby zobrazení prvků vrstvy, jako jsou body, linie a plochy. Symbolizers se vkládají do stylů.
  • Filtr (Filter): Element <Filter> definuje podmínky, které určují, které prvky se mají zobrazit v jednotlivých vrstvách.
  • Zdroj dat (Datasources): Element <Datasource> definuje zdroje dat, ze kterých se budou zobrazovat prvky na mapě.
  • Pravidla (Rules): Element <Rule> definuje konkrétní pravidla pro aplikaci stylů a symbolizers v rámci jednotlivých vrstev. Pravidla určují, jaké prvky se mají zobrazit a jaké vlastnosti se mají použít pro jejich zobrazení.
(MAPNIK 2023 GET-MAP.ORG 2022; GITHUB 2018a)

Ukázka kódu

Ukázka Mapnik XML
Zdroj: vlastní zpracování

Tento kód definuje pro silnice II. třídy černou barvu, velikost linie na 2 pixely a průhlednost na 0,8.

Popis kódu silnice II. třídy

  • <Map> značí začátek Mapnik XML dokumentu.
  • <Style> definuje styl pro vrstvu "roads". Název stylu je "default". 
  •  <Rule> definuje pravidla pro použití prvků v mapě. V tomto případě se použije LineSymbolizer pro vykreslení linií reprezentujících silnice s vlastností stroke – černá barva (#000000), šířka 2 a průhlednost 0,8. Dále se použije filtr, který slouží k vybírání dat, pro prvky (značku) s vlastností highway=secondary.
  • <Layer> definuje vrstvu, ze které se data zobrazují. Název použité vrstvy je "roads" a používá se souřadnicový systém EPSG:4326 (WGS 84).
  • <StyleName> odkazuje na styl "default", který se použije pro zobrazení prvků na této vrstvě. 
  • <Datasource> definuje datový zdroj pro vrstvu. Typ datového zdroje je shapefile a umístění souboru je určeno parametrem "file".

Ukázka Mapnik XML
Zdroj: vlastní zpracování

Tento kód zobrazuje zastávku jednu ze zastávek autobusu na Konečného náměstí v Brně.  Zastávka je vizualizována pomocí vložené ikony s označením bus_stop.png o velikosti 20x20 pixelů.

(GET-MAP.ORG 2022; GITHUB 2018a)

Popis kódu zastávky autobusu (trolejbusu) na Konečného náměstí, Brno

  • <Map> značka značí začátek Mapnik XML dokumentu.
  • <Style> značka definuje styl použitý pro vykreslení bodů, které představují zastávky autobusů. Název stylu je "bus-stop-style".
  • <Rule> značka definuje pravidla pro použití symbolů v mapě, v tomto případě se použije PointSymbolizer souboru "bus_stop.png" s šířkou a výškou 20 pixelů.
  • <Layer> značka definuje vrstvu, na které se data zobrazují. Název vrstvy je "bus-stop-layer" a používá se souřadnicový systém EPSG:4326 (WGS 84). Parametr status="on" specifikuje, že je tato vrstva viditelná na výstupní mapě.
  • <StyleName> značka odkazuje na styl "bus-stop-style", který se použije pro zobrazení bodů na této vrstvě.
  • <Datasource> značka definuje datový zdroj pro vrstvu. Typ datového zdroje je OSM,  bbox parametr specifikuje oblast zájmu v zeměpisných souřadnicích a filtr parametr určuje, které prvky v OSM datovém zdroji mají být vybrány. Konkrétně se vybírají pouze uzly (node) s tagem highway=bus_stop.
(GET-MAP.ORG 2022; GITHUB 2018a)

Zdroje

GET-MAP.ORG (2022): Mapnik XML, https://get-map.org/mapnik-lost-manual/book.html (27. 1. 2023).

GITHUB (2018a): Mapnik configuration XML, https://github.com/mapnik/mapnik/wiki/XMLConfigReference (2. 3. 2023).

MAPNIK (2023): Mapnik,  (27.3.2023).

OPENSTREETMAP WIKI (2023h): Mapnik, https://wiki.openstreetmap.org/wiki/Mapnik (21.1.2023).