Sk:Prvky
Prvky (anglicky elements) sú základými stavebnými súčasťami dátového modelu OpenStreetMap, ktoré slúžia k popisu reálného sveta. Existujú tri typy prvkov:
- uzly (nodes) (ktoré definujú body v priestore),
- cesty (ways) (ktoré definujú lineárne prvky a hranice oblastí)
- relácie (relations) (ktoré definujú, ako spolu iné prvky súvisia).
Všetky uvedené prvky môžu mať jednu alebo viac pridružených značiek (Tags), ktoré popisujú význam konkrétneho prvku.
Uzol (Node) 
Uzol predstavuje špecifický bod na zemskom povrchu definovaný jeho zemepisnou šírkou a dĺžkou podľa Svetového geodetického systému 1984[1]. Každý uzol obsahuje aspoň identifikačné číslo a pár súradníc.
Uzly možno použiť na definovanie samostatných bodových prvkov. Napríklad uzol môže predstavovať lavičku v parku alebo studničku.
Uzly sa tiež používajú na definovanie tvaru lomenej čiara - cesty (way). Keď sa uzly používajú ako body pozdĺž ciest, zvyčajne nemajú žiadne značky, hoci niektoré z nich značky mať môžu. Napríklad highway=traffic_signals
označuje svetelnú signalizáciu na ceste a power=tower
predstavuje stožiar pozdĺž elektrického vedenia.
Uzol môže byť zahrnutý ako člen relácie. Relácia môže tiež naznačovať rolu člena: to znamená funkciu uzla v tomto konkrétnom súbore súvisiacich dátových prvkov.
Cesta (Way)

Cesta je usporiadaný zoznam od 2 až 2 000 uzlov, ktoré definujú lomenú čiaru. Cesty sa používajú na znázornenie lineárnych prvkov, ako sú napríklad rieky alebo cesty.
Cesty môžu predstavovať aj hranice plošných objektov (uzatvorené polygóny), ako sú budovy alebo lesy. V tomto prípade cesta začína aj končí v tom istom uzle. Takáto cesta sa nazýva Uzavretá cesta alebo Plocha
.
V niektorých prípadoch však uzavreté cesty nereprezentujú plochy, ale iba sľučky, ako napr. v prípade kruhového objazdu. Aby sa určil konkrétny význam uzavretej cesty, musia sa preskúmať jej značky (Tags). Toto sa zvyčajne odvodzuje zo značiek (tagov) priradených k ceste, napríklad landuse=*
sa nikdy nemôže týkať lineárneho (neuzavretého) prvku. Niektoré objekty zo skutočného života (ako napríklad man_made=pier
(mólo) však môžu mať lineárnu uzavretú cestu alebo oblasť reprezentujúcu plochu.
. Aby sa predišlo nejednoznačnosti alebo nesprávnej interpretácii, je možné použiť tag
area=yes
alebo area=no.
Pozri tiež: Way#Differences between linear and area representation of features. (Rozdiely medzi lineárnou a plošnou reprezentáciou prvkov).
Plochy, v ktorých sú diery, alebo ktorých hranica obsahuje viac ako 2 000 uzlov, nie je možné zakresliť jednou cestou. Takéto prípady vyžadujú zložitejšiu dátovú štruktúru – reláciu typu multipolygón.
Relácia (Relation) 
- Hlavný článok: Relácia
Relácia je viacúčelová dátová štruktúra, ktorá popisuje vzťah medzi dvoma alebo viacerými dátovými prvkami (uzlami, cestami a/alebo inými reláciami). Napr.:
- Relácia trasa, ktorá združuje cesty, ktoré spolu tvoria nejakú hlavnú (označenú) cestu (napr. medzinárodná cesta E14), turistickú trasu, alebo autobusovú linku.
- Relácia zákaz odbočenia, ktorá hovorí, že je zakázané v danom mieste odbočiť z jednej cesty na druhú.
- Relácia multipolygón, ktorá popisuje plochu s dierami. Vonkajšiu hranicu tvoria cesty v roli outer a vnútorné diery tvoria cesty v roli inner.
Relácie teda môžu mať rôzne významy. Význam relácie je určený jej tagmi (značkami). Obvykle je určený jej typ tagom type=*
. Ďalšie tagy relácie je potom potrebné interpretovať v súvislosti s jej typom.
Relácia je v prvom rade usporiadaný zoznam uzlov, ciest alebo iných relácií. Tieto objekty sa nazvývajú členy relácie.
Každý člen relácie môže mať v rámci relácie voliteľne svoju rolu. Napríklad relácia zákaz odbočenia bude mať členy s rolami 'from' (z) a 'to' (do), ktoré popisujú konkrétne smery zákazu odbočenia.
Každý člen relácie, napr. konkrétna cesta, sa môže v relácii vyskytovať viackrát.
Značka (Tag) 
Hlavní článek: Tag
Všetky typy dátových prvkov (uzly, cesty a relácie) môžu mať značky (tagy). Tagy popisujú význam konkrétneho prvku, ku ktorému sú pripojené.
Tag pozostáva z dvojice textových polí - 'kľúč (key)' a 'hodnota (value)'. Každé z nich môže obsahovať ľubovoľný text v kódovaní Unicode, s dĺžkou až 255 znakov. Napríklad tag highway=residential
obsahuje kľúč 'highway' s hodnotou 'residential' a označuje cestu v zastavanej oblasti, ktorej hlavným účelom je umožňovať ľuďom dôjsť k ich domom. Prvok nemôže mať dva tagy s rovnakým 'kľúčom'. 'Kľúče' musia byť unikátne. Teda nemôžeme mať prvok označený zároveň amenity=restaurant
a amenity=bar
. V niektorých prípadoch je možné použiť bodkočiarku na priradenie viacerých hodnôt k rovnakému kľúču, nie je to však univerzálne použiteľné.
Neexistuje žiadny pevný slovník značiek, ale na tejto wiki je zdokumentovaných veľa konvencií (počnúc stránkou Map Features (Funkcie mapy)). Tagy je možné vyhľadávať a vyhodnotiť pomocou aplikácie Taginfo. Ak existuje viac ako jeden spôsob tagovania danej funkcie, pravdepodobne bude najlepšie pridržať se značenia, které je používáné častejšie.
Každý prvok nemusí mať tag. Platí to predovšetkým pre uzly, které sú súčasťou nejakej cesty. A pokiaľ sú súčasťou relácie, tak namusia byť označené ani uzly, ani cesty.
Všeobecné vlastnosti
V rámci databázy OSM ukladáme tieto všeobecné vlastnosti pre všetky uzly (nodes), cesty (ways) a relácie (relations). Vaša aplikácia ich nemusí využívať všetky a niektoré výňatky z databázy OSM vytvorené inými aplikáciami ich nemusia všetky obsahovať
Názov | Hodnota | Popis |
---|---|---|
id identifikátor | integer (64-bit) | Používa sa na identifikáciu prvku. Typy prvkov majú svoju vlastnú oblasť ID, takže môže existovať uzol (node) s id=100 a cesta (way) id=100, u ktorých je nepravdepodobné, že by spolu súviseli alebo boli geograficky blízko seba.
Kladné (>0) hodnoty sa používajú pre všetky existujúce prvky (a zostanú priradené, keď sa upravia alebo odstránia); záporné hodnoty (<0) sú vyhradené (ich rozsah je obmedzený na aktuálnu sadu zmien a nikdy sa neukladajú do databázy) a používajú sa iba pri odosielaní údajov do databázy OSM na identifikáciu nových objektov, aby sa vytvorili a odkazovali na ne v iných vytvorených alebo upravených objektoch (tzv. server nahradí tieto dočasné identifikátory odoslané editačnou aplikáciou priradením skutočného kladného identifikátora pre každý vytvorený objekt a vráti mapovanie z použitých negatívnych identifikátorov na ich priradené kladné identifikátory). |
user užívateľ | character string | Zobrazované meno používateľa, ktorý naposledy upravil objekt (len informatívne a môže byť prázdne). Používateľ môže kedykoľvek zmeniť svoje zobrazované meno (existujúce prvky budú zobrazovať nové používateľské meno bez potreby zmeny verzie). |
uid Identifikátor užívateľa | integer | Číselný identifikátor používateľa, ktorý naposledy upravil objekt. Identifikátor používateľa sa nikdy nemení |
timestamp časové razítko | W3C standard date and time formats. | Čas poslednej úpravy (napr. "2016-12-31T23:59:59.999Z"). |
visible viditeľnosť | "true" or "false" | Bez ohľadu na to, či je objekt z databázy odstránený alebo nie, ak je visible= "false", potom by mal byť vrátený iba volaniami histórie. |
version verzia | integer | Verzia úprav objektu. Novovytvorené objekty začínajú na verzii 1 a hodnotu server zvýši, keď klient nahrá novú verziu objektu. Server odmietne novú verziu objektu, ak sa verzia odoslaná klientom nezhoduje s aktuálnou verziou objektu v databáze. |
changeset sada zmien | integer | Číslo changesetu, v ktorom bol objekt vytvorený alebo aktualizovaný (podpora 64-bitovej verzie sa odporúča v aplikáciách kvôli kompatibilite s dlhodobým vývojom databázy OSM, ale aplikácie, ktoré iba dopytujú dáta bez ich aktualizácie, môžu tento informatívny atribút ignorovať). |
Okrem toho samozrejme ukladáme do databázy tagy a tiež úplnú históriu úprav každého prvku.
História
Historicky existoval ešte jeden typ prvku. Je to:
- segments (segmenty). Segment býval primitívnym typom prvku, ktorý spájal dva uzly a tvoril cestu. Segmenty boli odstránené v októbri 2007 so zavedením API v0.5.
Elements (prvky)
Súbor prvkov v OSM XML, ktoré sa v dokumentácii označujú ako prvky, je podmnožinou skutočných prvkov XML nachádzajúcich sa v údajoch. T. j. pojem prvok v XML a pojem prvok v OSM XML nie sú synonymá. Prvky v údajoch OSM sú definované ako jeden z nasledujúcich: uzol, cesta a relácia. Prvky XML: tag, nd a member nie sú v OSM XML označované ako prvky, ale sú to skutočne prvky XML.
Toto nijako neznehodnocuje údaje, je to len sémantické zahmlievanie, ktoré sa vkradlo do dokumentácie a ktoré sa považuje za málo dôležité na to, aby sa opravilo.
Ids (identifiktory)
Používatelia nástrojov XML by si tiež mali uvedomiť, že uzly, cesty a relácie zdieľajú rovnaký priestor pre id objektu. Každý nástroj, ktorý sa na objekt OSM odvoláva výlučne prostredníctvom jeho id, sa stretne s nedefinovaným správaním (napr. Document.getElementById()). Na objekty OSM sa musí vždy odkazovať pomocou ich id a príslušného typu objektu (uzol, cesta, relácia).
|