Cs:Prvky

From OpenStreetMap Wiki
Jump to navigation Jump to search

Prvky (anglicky elements) jsou základní stavební součásti datového modelu OpenStreetMap sloužící k popisu reálného světa. Základní prvky jsou uzel (node) (popisující bod v prostoru), cesta (Way) (popisující linie a hranice ploch) a relace (relation) (která popisuje, jak spolu jiné prvky souvisí). Každý z nich je pak možno blíže popsat značkami (Tags).

Uzel / Bod (Node) uzel

Hlavní článek: Uzel

Uzel (Node) nazývaný také Bod, označuje konkrétní bod na povrchu Země, které je určeno svou zeměpisnou šířkou a délkou. Každý uzel se skládá přinejmenším z dvojice souřadnic a svého jednoznačného identifikačního čísla (id).

Uzel může být použit k zakreslení samostatného objektu. Například můžete uzlem zakreslit lavičku v parku nebo studánku.

Uzly se také používají k určení průběhu cesty. Pokud jsou použity jako body na cestě, pak většinou nemají žádné značky, i když některé je mít mohou, například highway=motorway_junction označuje výjezd z dálnice a power=tower reprezentuje stožár elektrického vedení.

Uzel může být členem relace. Relace pak může určovat jeho roli, tedy jeho význam v souboru vzájemně souvisejících prvků.

Cesta (Way) cesta uzavřená cesta plocha

Hlavní článek: Cesta

Cesta (Way) je uspořádaný seznam 2 až 2 000 uzlů, které definují lomenou čáru. Cesty se používají pro reprezentaci lineárních objektů, jako jsou třeba řeky nebo silnice. Cesta

Cestami jsou také určovány hranice plošných objektů, jako jsou budovy nebo lesy. V tomto případě cesta začíná i končí ve stejném uzlu. Takovou cestu nazýváme Uzavřená cesta Uzavřená cesta nebo Plocha Plocha.

V některých případech ovšem uzavřené cesty nereprezentují plochy, ale pouze smyčky, jako třeba v případě kruhového objezdu. Aby se určil konkrétní význam uzavřené cesty, musí se prozkoumat její značky (Tags).

Plochy, ve kterých jsou díry, nebo jejichž hranice obsahují více než 2 000 uzlů, nelze zakreslit jedinou cestou. Takovéto případy vyžadují použití složitější datovou strukturu - relace multipolygon.

Relace (Relation) relace

Hlavní článek: Relace

Relace je víceúčelová datová struktura, které popisuje vztahy mezi více prvky (uzly, cestami a třeba i dalšími relacemi). Příklady relací jsou:

  • Relace trasa, která sdružuje cesty, které dohromady tvoří nějakou označenou silnici (např. mezinárodní silnice E14), turistickou trasu nebo autobusovou linku.
  • Relace zákaz odbočení, která sděluje, že je zakázáno v daném místě odbočit z jedné silnice na druhou.
  • Relace multipolygon, která umožňuje zakreslit plochy s dírami. Jejich vnějšími okraji jsou cesty s rolí 'outer' a vnitřní díry jsou zakresleny cestami s rolí 'inner'.

Relace tedy mohou mít různé významy. Význam relace je určen jejími značkami. Obvykle je určen její typ značkou type=* a další její značky je pak třeba vyhodnocovat v souvislosti s jejím typem.

Relace je v první řadě uspořádaný seznam bodů, cest nebo i jiných relací. Tyto objekty se nazývají členy relace.

Každý člen relace může volitelně mít v rámci relace svou roli. Například relace zákaz odbočení bude mít členy s rolemi "z (from)" a "do (to)", které popisují konkrétní směry zákazu odbočení.

Každý prvek, třeba konkrétní cesta, se může v relaci vyskytovat vícekrát.

Značka (Tag) značka

Hlavní článek: Značka

Ke všem druhům datových prvků (uzlům, cestám a relacím, ale také k sadám změn) lze přidat značky. Značky popisují vlastnosti prvků, ke kterým jsou připojeny.

Značka se skládá z dvojice textových polí - 'klíč (key)' a 'hodnota (value)'. Každé z nich může obsahovat libovolný text v kódování Unicode o délce až 255 znaků. Například značka highway=residential má klíč 'highway', hodnotu 'residential' a označuje silnici v zastavěné oblasti, jejíž hlavním účelem je umožňovat lidem dojet k jejich domům. Prvek nemůže mít dvě značky se stejným 'klíčem', 'klíče' musí být unikátní. Tedy nemůžete mít prvek označený zároveň amenity=restaurant a amenity=bar.

Neexistuje žádný daný slovník všech použitelných značek, ale máme mnoho konvencí jejich používání popsaných na této wiki (zejména na stránce Legenda mapy). Jak často jsou jednotlivé značky používány, se dá zjistit pomocí aplikace Taginfo(en). Pokud existuje více způsobů, jak označit nějakou vlastnost, pak je nejlepší přidržet se značení, které je používáno častěji.

Každý prvek nemusí mít značku. Platí to zejména pro uzly, které jsou součástí nějaké cesty. A pokud jsou součástí relace, tak mohou být nijak neoznačené jako uzly, tak cesty.

Obecné vlastnosti

V databázi OSM ukládáme tyto obecné vlastnosti pro všechny uzly, cesty nebo relace. Vaše aplikace nemusí nutně používat všechny z nich a také výtahy z databáze vytvořené jinými aplikacemi je nemusí všechny obsahovat.

Název Česky Hodnota Popis
id identifikátor celé číslo (64-bit) Používá se k jednoznačné identifikaci prvku. Každý druh prvku má své vlastní číslování, takže na serveru může existovat uzel s id=42 i cesta s id=42, které ovšem spolu pravděpodobně nijak nesouvisí.
Kladné hodnoty (>0) jsou používány pro všechny již existující prvky a zůstanou přiřazeny, když jsou změněny nebo smazány; záporné hodnoty (<0) jsou rezervovány (používají se v aktuální sadě změn a nikdy se neukládají do databáze) a používají se pouze při zasílání dat do databáze OSM pro identifikaci nových objektů, které se mají vytvořit a odkazech na ně z jiných vytvořených nebo upravených objektů (server nahradí tyto dočasné identifikátory každého vytvořeného objektu zaslané editorem kladnými čísly).
user uživatel řetězec znaků Jméno uživatele, který naposledy změnil objekt (pouze informativně a může být prázdné). Uživatel si může zobrazované jméno sám kdykoliv změnit (již existující prvky budou reflektovat tuto změnu bez potřeby změny verze).
uid identifikátor uživatele celé číslo Číselný identifikátor uživatele, který naposledy změnil objekt. Identifikátor každého uživatele se nikdy nemění.
timestamp časové razítko datum a čas ve formátu W3C(en) Datum a čas poslední změny (např. "2016-12-31T23:59:59.999Z")
visible viditelný? true - ano
false - ne
Určuje, zda je objekt stále viditelný, nebo byl již vymazán. Pokud má objekt nastaveno visible="false", pak by měl být zobrazen pouze v dotazech na historii databáze.
version verze celé číslo Verze objektu. Nově vytvořený objekt má verzi 1 a hodnota verze je zvyšována s každou jeho změnou. Při nahrávání změněných dat na server budou odmítnuty všechny nové verze objektů, pokud číslo jejich verze neodpovídá verzi uložené na serveru.
changeset sada změn celé číslo (64-bit) Číslo sady změn, ve které byl objekt vytvořen, nebo změněn (podpora 64-bitů je doporučována pro aplikace z důvodu kompatibility s dlouhodobým vývojem databáze OSM, ovšem aplikace, které se na data pouze dotazují, aniž by je měnily, můžou tento informativní atribut ignorovat).

Samozřejmě také do databáze ukládáme značky a kompletní historii změn každého prvku.