Mapování pro OpenStreetMap

Po úvodním představení projektu OpenStreetMap se zkusme podívat na konkrétní mapování. Mělo by jít o jednoduchý návod, jakým způsobem zanést různé reálné věci do mapy. Základní referencí je sice určitě Wiki OSM, ale určitě nebude na škodu ucelenější, ale zato volnější přehled, který by mohl sloužit začínajícím mapovačům (a taky mně, když něco zapomenu) a také upozornit na problémy, které mohou nevhodným mapováním nastat. Určen je pro použití hlavně v České republice, protože některé věci jsou specifické pro různé státy (jiný kraj, jiný mrav).

Struktura OpenStreetMap

Části článku:
  1. Úvod
  2. Komunikace (silnice, cesty, cestičky)
  3. Plochy (lesy, pole, farmy, zastavěné oblasti, budovy)
  4. Adresy
NA STRÁNCE SE STÁLE PRACUJE

Začněme tím, jak je vlastně OpenStreetMap (dále jen OSM) postavena. Mapová data jsou uložena v databázi, která lze vyexportovat ve formě XML souboru. To je také její hlavní charakteristika. Obsahuje v zásadě jen tři elementy, zbytek je charakterizován tagy (opět termín z XML). Tyto tři elementy jsou:

Tyto tři typy samy o sobě neříkají nic o tom, co na mapě reprezentují, říkají jen jejich polohu (node), spojení (way) a sdružení (relation). O jaký typ objektů se jedná, definuje až tag, kterých může být pro každý element více. Určují tedy to, jestli je to nějaké komunikace, pole, les, řeka apod.

Tag je parametry, který je přiřazen k jednotlivým elementům a má název a hodnotu. Například tag s názvem highway určuje, že se jedná o nějaký typ komunikace, parametr primary pak značí, že je to silnice první třídy. Tag může mít libovolný název i hodnotu, ale jen některé tagy jsou využívány pro nakreslení mapy, případně navigaci. Tyto tagy jsou takzvaně schválené komunitou a jejich seznam lze najít na Wiki OSM zde. pokuste se jiné spíše nepoužívat a pokud nevíte, zeptejte se zkušenějších mapovačů například na mailing listu.

Pomocí tagů lze i nechat vzkaz dalším mapujícím lidem, pokud je třeba v mapě něco nejasné. Často není u cest (hlavně v lesích) zřejmé, kudy přesně vedou, proto můžete vloženou cestu označit tagem note, což je poznámka pro ostatní, a do ní napsat například "upřesnit".

Programy pro kreslení

Pro kreslení mapy (tedy jednotlivých elementů) a přiřazování tagů slouží OSM editory, což jsou vlastně grafické programy. Nejprve si stáhnou z OSM oblast, kterou chceme editovat, tedy již zakreslené objekty, po provedení úprav zase nahrají změny zpět na OSM server. Tři nejpoužívanější editory jsou tyto:

Je na Vás, který z nich budete používat, občas se hodí všechny, protože každý má jiné vlastnosti, jiné přednosti a jiné nectnosti. Pro skutečné kreslení se hodí nejlépe JOSM nebo Merkaartor. Při kreslení se hodí, když si pod Vaší mapu necháte podkreslit nějaký podklad (pomocí dat z WMS serveru), podle kterého lze obkreslovat, lze i načíst GPX trasy, zaznamenané pomocí GPS.

Získání dat

Asi nejdůležitějším bodem je samotné získání dat pro zakreslení do mapy. Zde musím připomenout, že byste měli mapovat jen to, co znáte. Nesnažte se moc kreslit oblasti, které neznáte, nebo kam nepojedete, abyste si to ověřili. Prvním zdrojem je totiž hlavně Vaše GPSka. Tu lze použít pro projití trasy s jejím záznamem a poté nakreslením cest do mapy. Berte v úvahu, že GPSka je nepřesná (i o desítky metrů) a tak se moc nesnažte opravovat jiné cesty podle Vašich záznamů. Přesnější jsou totiž jiné zdroje dat.

Jiný zdroj dat může být pouze takový, aby nebyla narušena původní licence. Obkreslovat z jiné mapy je až na výjimky zakázáno. Věřte tomu, že to lze často snadno odhalit, protože právě v komerčních mapách je spousta chyb a pokud tam tuto chybu překreslíte, tak je jasné, odkud pochází. Na tyto mapy tedy v podstatě zapomeňte, lze je občas použít jen pro srovnání, ale v žádném případě z nich neobkreslujte.

Nevěšte ale hlavu, existují různé zdroje, podle kterých lze kreslit. V podstatě jsou to ale jen oficiální úřední mapy, které jsou ale na druhou stranu velice přesné. První je UHUL ortofoto mapa, což je černobílá fotomapa, podle které lze kreslit hlavně lesy, rybníky, hranice obcí, ale často i silnice. Na zakreslování cest v lese se nehodí, protože nejsou vidět. Také kvalita UHULu není nic moc, navíc zdroj dat je docela starý, takže opět platí - ověřovat v praxi! Druhý zdroj dat je oficiální katastrální mapa, podle které lze kreslit téměř vše, aktualizuje se velice často a je velice přesná. Tu lze brát v podstatě jako referenci (i když i zde se najdou chyby). Používám ji jak pro zakreslení silnic, tak i lesních cest (ne vždy tam jsou), budov a také adres. Adresy je dobré ověřovat podle Územně identifikačního registru adres (UIR), kde lze najít všechny adresy v ČR. Ty nemají WMS server, ale jen webové rozhraní.

Tyto tři zdroje dat jsou v podstatě jediné legální, ale s jednou podmínkou - musí být uveden zdroj dat. Pokud tedy z těchto zdrojů něco nakreslíte, vždy k danému objektu přidejte tag source s názvem zdroje - např. uhul:wms, cuzk:kn, uir apod.

Nyní se již podívejme, jak tagovat jednotlivé objekty mapy. Nebudeme probírat jejich vkládání v různých editorech, jen čistě to, jaké tagy máme přiřazovat různým objektům. Začněme s tím nejdůležitějším - silničními komunikacemi.

Komunikace

Komunikace nebo lidově silnice a cesty budou asi to, co bude nejvíce v mapě využíváno. Ať už jen pro hledání v mapě, nebo pro navigaci. Aby vše fungovalo jak má, je nutné dodržovat základní pravidla pro jejich označení. Název tagu, který určuje, že jde o komunikace je highway. Jednotlivé typy silnic jsou popsány na Wiki OSM, my si popíšeme český způsob přiřazování, hodnotu tagu pro silnice najdete v následující tabulce. Přiřazování silnic, které tvoří oficiální silniční síť, by se měla řídit oficiálním značením. Je to důležité pro navigaci, která podle toho určuje jak dobu jízdy, tak i třeba odbočování. Jeden názor je, že by měl typ určovat fyzický stav cesty, to je ale značně subjektivní, navíc se fyzický stav silnice může změnit a nikdo to pak již v mapě neopraví. Řiďte se tedy oficiálním státním přiřazením.

motorway dálnice, u nás označená jako silnice Dx (tedy D1, D2 atd.) Má určité parametry, takže nezaměňovat s rychlostními komunikacemi Rx. Každý směr dálnice má samostatnou cestu, která má přiřazen i tag oneway (jednosměrná silnice). Nájezd na dálnici je mimoúrovňový a označuje se jako motorway_link.
trunk Silnice pro motorová vozidla, u nás označená jako silnice Rx, každý směr dálnice má opět samostatnou cestu, která má přiřazen i tag oneway (jednosměrná silnice). Pro navigace je důležité rozlišovat mezi motorway a trunk silnicemi, protože na nich jsou různé průměrné rychlosti (jsou jinak definované poloměry zatáček, možné stoupání apod.), což je důležité pro výpočet doby cesty. Nájezd na rychlostní komunikaci je mimoúrovňový a označuje se jako trunk_link.
primary Silnice první třídy, která tvoří základní síť silnic, určenou pro dálkovou přepravu, spravovanou státem. Jsou označeny např. I/2, kde první je římská číslice, označující silnici první třídy, druhá je číslo silnice, maximálně o dvou číslicích.
secondary Silnice druhé třídy, určená pro přepravu mezi okresy, spravované krajem. Jsou označeny např. II/325.
tertiary Silnice třetí třídy, která propojuje obce, spravované krajem. Buď jsou be označení nebo mají čtyř nebo pětimístné označení, např. III/12345.
unclassified Neklasifikovaná silnice, často jen místního charakteru, ale stále většinou mimo obcí. Parametry může mít jako silnice třetí třídy nebo je většinou užší, takže protijedoucí auta musí při míjení zpomalit.
residential Místní komunikace v obci, určená pro dopravu místních obyvatel. Jde v podstatě o obytné ulice.
living_street Místní komunikace, označena jako obytná zóna. Vozidla se zde setkávají s chodci přímo na vozovce.
pedestrian Ulice pouze pro pěší, například pěší zóny, kam mají auta většinou vjezd zakázán.
service Silnice určená pro servisní účely - příjezd na benzínku, příjezd do fabriky, příjezd na soukromý pozemek apod.

Trochu jinou kapitolou jsou lesní a polní cesty, cyklostezky apod. U nich nemusí být žádné značení a je nutné volit hlavou, jaký typ zvolíme.

cycleway Oficiální cyklostezka, která je tak i označená příslušnou značkou, ať už svislou nebo vodorovnou značkou na zemi. Typicky je asfaltová, ale může být i prašná, široká bývá minimálně 3m.
bridleway Cesta pro koně, ať už zpevněná nebo nezpevněná, každopádně musí jít o oficiální cestu označenou značkou, pokud jde o nějakou cestu nebo pěšinu v lese, rozťápanou od koní, tak to není bridleway, ale track nebo path.
track
grade1
Cesty označené jako track jsou lesní a polní cesty, široké na průjezd jednoho auta (cca 3m), dodatkový tag tracktype určuje, v jakém stavu je tato cesta. Nejlepší je grade1, která značí vyasfaltovanou cestu kvality podobné, jako má silnice, lze na ní bez problémů jet na silničním kole, s kočárkem nebo s vozíkem za kolo. V podstatě má kvalitu cyklostezky.
track
grade2
Lesní nebo polní cesta, zpevněná hutným štěrkem, který je často spojen nějakým pojivem. Takto označuji i horší rozbité asflatky, zaručeno je to, že zde není bahno. V pohodě sjízdné na trekovém kole a s vozíkem pro dítě.
track
grade3
Vysypaná cesta štěrkem či pískem, ale bez zpevnění, může prorůstat trávou a místy může být se zeminou a za deště s bahnem.
track
grade4
Cesta bez zpevnění, měkké podloží (písek, hlína, jehličí, listí)), ale jakž takž udržovaná nebo používaná, může být horší kvality, rozježděná apod.
track
grade5
Cesta vzniklá "jen" projetím autem či traktorem, může být jen sezónní, např. na poli, projetá lesáky při tahání dřeva, málo používaná, často zarostlá i vyšší trávou, hrozí bahno a někdy je i špatně vidět. V podstatě srovnatelná s pěšinou, ale široká, nezaručena průjezdnost na kole.
path Vyšlapaná pěšina v přírodě, pro upřesnění možného použití lze doplnit tagy foot, bicycle, horse, ski, snowmobile s hodnotou designated nebo no.
footway Upravený chodník, typicky ve městě, typicky dlážděný nebo něčím vysypaný, pouze pro pěší, provoz kol, motorek a aut je zakázán. Používá se pro samostatné chodníky, pokud jsou součástí silnice, tak se nekreslí, ale k silnici se doplní tag footway=left/right/both. Cesty a pěšiny v lese jsou označeny tagem path!

Jednotlivé typy cest lze dále upřesňovat tím, jaká vozidla jsou na dané cestě povolena či zakázána. Platí to jak pro silnice, tak pro lesní a turistické stezky. Lze jednak definovat, pro který typ vozidla je cesta vytvořena, nebo naopak definovat, kdo na ní nesmí. Následující tabulka ukazuje, jaká názvy tagu jsou povoleny (resp. které budou/mohou brát navigace v potaz). Hodnota tagu pak může být designed, což znamená, že je cesta vytvořena pro dané vozidlo, yes znamená povolený vjezd nebo no, že je těmto vozidlům zakázán vstup. Kompletní seznam povolených tagů a jejich hodnot najdete zde. Některé typy cest již ze své podstaty zakazují vjezd některým vozidlům, např. na footway nesmí auto ani cyklista, na motorway zase nesmí cyklista ani chodec, apod.

Pár příkladů neuškodí (další najdete zde):
Vhodné je také doplnit informaci o tom, jaký je povrch cesty. U silnic to není potřeba, protože se automaticky rozumí, že je zde asfalt (nebo jiný tvrdý povrch), u lesních cest, chodníků nebo cyklostezek se to ale hodí. K tomu slouží tag surface (povrch). Kompletní seznam možných hodnot tagů najdete opět na OSM, ty nejčastěji používané si uveďme: Pro navigace je důležitý také další údaj - maximální rychlost, kterou lze na silnici jet. K tomu se používá tag maxspeed, hodnota je rychlost v km/h, například maxspeed=50. tato hodnota by se měla dávat jen tam, kde je rychlost nějakým způsobem omezena značkou. Například v obci je často omezena rychlost na 40 nebo 30 km/h. Pokud jde o standardní rychlosti, tak ty se neznačí, ty by měla navigace odvodit podle hranic obce. Bohužel v současnosti takový schválený tag pro urbanistické hranice obce neexistuje, takže toto navigace nepoužívají. Sice existuje administrativní hranice obce, ta ale nelze použít, protože ty jsou větší než samotná zastavěná obec, navíc na sebe navazují, takže u nás by celá republika byla jen obec. Jistým řešením je použití tagu landuse=residential, ten ale musí být vytvořen tak, aby i překrýval silnici.

Plochy

Plochy se kreslí dvěma způsoby. Jednodušší způsob je opět jako klasická cesta/way, která je ale uzavřená. První node je tak shodný s tím posledním. Plocha je pak ohraničená touto hranicí - vytvoří se polygon. Připojené tagy pak definují, o jakou plochu se jedná.

Druhý způsob je pro plochy, které mají uvnitř nějaké díry. Pak se vytvoří relace (relation), která obsahuje více opět uzavřených cest, které definují plochu. Jde pak o multipolygon, který má jeden nebo více vnějších hranic a libovolný počet vnitřních hranic. Typickým příkladem je les, uprostřed kterého je mýtina. Každá součást relace se definuje dvěma parametry - jedním je ID prvku (tedy v našem případě ID cesty) a druhým je role, který je nepovinný a definuje další parametr v závislosti na typu a požadavcích. My do něj napíšeme, zda se jedná o vnější (outer) nebo vnitřní (inner) hranici. Ve skutečnosti není nutné inner ani outer uvádět, protože lze odvodit podle struktury ploch (pokud jedna leží uvnitř jiné, tak je předpoklad, že je vnější outer a vnitřní inner). Plochy se samozřejmě nemají překrývat, pak to nefunguje. U každé relace se v tagu type udává ještě typ, v našem případě to bude multipolygon. Pokud na něj zapomeneme, tak se plocha na mapě nevykreslí nebo ji mohou programy ignorovat. Tagy, které definují plochu ohraničenou polygonem, se dávají přímo této relaci, ne na hranice/cesty, které jsou její součástí. Pokud přidáme tag přímo cestě, tak platí jen pro ni, ale ne pro celou relaci (existuje výjimka z historického hlediska, kterou využívá mapnik, ta se ale již nemá používat a proto ji zde ani nebudu uvádět, jiné programy se podle ní nechovají)!

Nejčastější typy ploch si vyjmenujme, lze je i vzájemně kombinovat:
tag
hodnota
popis
building yes Dává se pro všechny budovy
landuse forest Obhospodařovaný les, určený pro těžbu dřeva
natural wood Volně rostoucí les či vysoké křoví, které není určeno k těžbě dřeva
landuse residential Rezidenční oblast, kde jsou domy, pohybují se lidé, hřiště a vše co s tím souvisí. Ohraničuje buď celou vesnici nebo ve větších měst její části, bloky budov apod. Nejde o hranice obce, ale o zastavěnou část, přestože např. MC Navi ji může použít pro odhad maximální rychlosti na silnici, která touto zónou prochází.
landuse industrial Průmyslová oblast, kde jsou fabriky či jiné výrobní prostředky.
landuse commercial Komerční prostory, oblast s kancelářskými prostorami, sklady, prodejny apod.
landuse farm Farma, tedy plocha pro pěstování plodin nebo chov zvířat, sem nepatří samotné zázemí farmy, ale jen pastviny a pole.
landuse farmyard Zázemí farmy, kde nejdeme budovy jako stáje, chlév nebo kravín, dále i garáže techniky nebo i obydlí a kanceláře, které jsou jejich součástí.
landuse reservoir Vodní plocha, která je vytvořena uměla. Jde o rybníky, nádrže, přehrady.
natural water Vodní plocha, která je "vytvořena" přírodou. Jde tedy o jezera.
natural wetland Mokré území, může se překrývat s jinými typy (typicky les, louka). Můžeme doplnit tag wetland, který blíže specifikuje typ mokřadu.

Pokud vodní plochou protéká potok nebo řeka, není vhodné vodní tok přes vodní plochu přerušovat, tím se zničí stromová struktura vodních toků. O této věci se debatuje, vhodné bude doplnit k vodnímu toku tag underwater=yes, který určí pro případné zpracování, že je v místě toku nějaká nádrž, rybník nebo přehrada.

NA STRÁNCE SE PRACUJE

Adresy

K definování adres se používá kombinace několika tagů, jejichž název začíná na addr:. U nás má téměř každá adresa jedno, dvě nebo tři čísla, jde o číslo orientační, číslo popisné a číslo evidenční. Číslo orientační není jedinečné, ale je přidělováno v jedné ulici tak, jak se jde od středu města. Slouží pro orientaci ve městě a pro snadnější hledání adres. Používá se jen někde. Číslo popisné je jedinečné v rámci obce nebo její části, pokud má obec více částí. Přiděluje se tak, jak se stavějí nové domy, takže čísla jdoucí po sobě mohou být kdekoliv v obci. Číslo evidenční se přiděluje většinou jen chatám a většinou také žádný dům nemá evidenční i popisné číslo (existují výjimky).

Dalším údajem adresy je ulice. Ta je u nás opět jedinečná a to v rámci obce, pokud má obec více částí, tak nesmí mít ulici stejného jména ani v jiné části. Ne všechny obce ale mají ulice, například mnoho vesnic označuje adresu jen názvem obce a číslem, např. Borkovice 77.

Systém adres u nás používá ještě část obce, což platí jen pro některé obce. V rámci části obce je číslo popisné nebo evidenční jedinečné. V adrese se většinou část obce neuvádí, avšak až na výjimky.

Zadaná adresa v mapě musí být vždy jedinečná. Kombinace obec-ulice-číslo je vždy jedinečná. Nastávají ale občas situace, kdy v obci ulice chybí. Pokud má zároveň více částí, tak může nastat situace, že číslo popisné není jedinečné a obě adresy musí rozlišit část obce. V některých větších obcích se pak používá za číslem popisným lomítko s římskou číslicí jako část obce, například 200/III.

Adresa lze dávat na node nebo way, který definuje obrys budovy. Preferována je první možnost, tedy že se vytvoří samostatný node, který se umístí doprostřed budovy nebo u větších budov do části, kde je vchod do budovy. Použijí se tyto tagy pro definici adresy - kombinace těch, které jsou pro danou adresu definovány:

Další tagy není bezpodmíněečně nutné uvádět, protože se nechají odvodit z jiných onformací. Bývá ale zvykem je rovněž uvádět, protože to usnadňuje práci jak lidem, tak různým programům. Někdy se uvádí i tag is_in, kde se v pořadí napíše vše, tedy část obce, obec, kraj, CZ. Toto je obecný tag pro vše, není určen pro definici adresy.

K definici adres a jejich správnému přiřazení k obcím jsou důležité i obce a hranice obcí. Obce totiž mohou mít stejná jména, uvedení názvu obce v adrese pak není jednoznačné. To se řeší tím, že se adresa přiřadí k nejbližší obci nebo se hledá, uvnitř které hranice obce se nachází.

Poloha obce se definuje pomocí node, ke kterému se přiřadí jméno pomocí tagu name a tag place s touto hodnotou:

Další hodnoty se definují pro označení různých míst nebo částí obce, nepoužívají se pro definici adres, ale jen při kreslení mapy:

Obec, definována pomocí tagu place s hodnotou city, town nebo village musí být uvnitř stejnojmenné hranice. Jelikož hranice obce je rovněž hranicí sousední obce, tak kvůli zabránění duplikacím se definuje relace cest, ohraničující obec. Relace musí mít definovány tagy:

Překlad boundary je hranice, tag admin_level definuje, čeho se hranice týká. U nás je to: Území, které ohraničuje hranice s vyšším číslem, je vždy součástí území s hranicí s nižším číslem. Sice OSM umožňuje sdílení cest pro různé účely, z mnoha různých důvodů to ale není vždy vhodné. Administrativní hranice mohou ležet třeba na řece nebo potoce a tak se nabízí využít do relace již hotovou cestu. Došlo k dohodě, že se to u administrativních hranic nebude dělat, protože pak dochází k problémům při následné editaci nebo úpravách. Administrativní hranice byly u nás naimportovány hromadným importem podle katastrální mapy, jsou samostatné a nebudou se spojovat s jinými cestami. Prosíme, dodržujte to.

Tímto způsobem je zajištěno spolehlivé členění adres a jejich správné přiřazování k obcím, okresům, krajům a státům. Tento způsob je téměř identický pro celý svět, pouze čísla admin_level jsou rozdílná (nwkde nemají kraje nebo okresy nebo mají něco jiného) a také označení addr:conscriptionnumber, addr:provisionalnumber a addr:streetnumber nemusí být používány. Tag addr:housenumber je ale používán vždy. Rovněž hodnoty tagu place jsou všude stejné (i když podle definice OSM se má přiřazovat podle velikosti, u nás se přiřazuje podle administrativního statutu obce).



Tento článek najdete na GPS Routes & Training Logs
http://www.gps-routes.info
Datum: st 11.srpen 2010, 0:00
Téma: Routes

Adresa tohoto článku je:
http://www.gps-routes.info/index.php?name=News&file=article&id=36