Pl:Elementy
Elementy są podstawowymi składnikami konceptualnego modelu danych świata fizycznego OpenStreetMap. Elementy są trzech typów:
- węzły (definiujące punkty w przestrzeni),
- linie (definiujące obiekty liniowe i granice obszarów) oraz
- relacje (które są czasami używane do wyjaśnienia, w jaki sposób inne elementy współpracują ze sobą).
Wszystkie powyższe elementy mogą mieć jeden lub więcej powiązanych tagów (które opisują znaczenie danego elementu).
Węzeł
- Główny artykuł: Węzeł
Węzeł jest zdefiniowany jako jeden punkt geoprzestrzenny za pomocą szerokości i długości geograficznej. Trzeci, opcjonalny wymiar, wysokość ele=*, może być również użyty oraz węzeł może być również określony na konkretnym poziomie layer=* lub level=*. Węzły mogą być także używane do określania autonomicznych funkcji punktu, oraz użytego do określenia ścieżki w "linii".
Miasto lub wieś może być reprezentowane przez węzeł z tagami place=* and name=*. Węzeł może być stosowany bez znaczników jako część linii oraz kiedy użyty w ten sposób, nie wymaga aby były jakieś znaczniki. W niektórych przypadkach węzły wzdłuż linii mają znaczniki (np. power=tower do przedstawienia wieży lub pylonu wzdłuż linii energetycznej lub entrance=* aby pokazać drogę do budynku.
Węzeł może być włączony jako człon relacji z przydzieloną rolą.
Linia
- Główny artykuł: Linia
Linia (way) jest uporządkowaną listą od 2 do 2000 węzłów. Linie mogą być stosowane do przedstawienia obiektów liniowych (wektory) lub wieloboków (Obszary).
Linia może być włączona jako człon relacji powiązana rolą. Linie posiadające więcej niż 2000 węzłów należy podzielić na dwa lub więcej mniejszych odcinków. W miejscu gdzie linie się spotykają (skrzyżowanie), powinny mieć wspólny węzeł. Line mogą być otwarte (gdzie pierwszy węzeł nie łączy się z ostatnim) lub zamknięte, gdzie się łączą. W niektórych przypadkach zamknięta linia zostanie zinterpretowana jako linia zamknięta, a w innych jako obszar/wielokąt, a czasem jako obydwie rzeczy.
Linia otwarta
Linia otwarta jest linią łamaną, w której w sposób uporządkowany, wzajemne połączenie od 2 do 2000 węzłów tworzy obiekt liniowy, który nie łączy pierwszego i ostatniego węzła. Wiele dróg, strumieni i linii kolejowych jest opisane jako linia otwarta.
Linia zamknięta
Linia zamknięta jest linią łamaną w której ostatni węzeł łączy się z pierwszym węzłem. Przykładem zamkniętego wektora jest rondo (highway=tertiary + junction=roundabout).
Obszar
- Główny artykuł: Obszar
Obszar (także wielobok) jest powierzchnią otoczoną linią zamkniętą. Linie zamknięte z niektórymi tagami, takimi jak landuse=* są traktowane jako obszary, inne, takie jak highway=footway, traktowane są jako linie zamknięte, chyba że mają one również tag area=yes
Powierzchnie mogą być opisane za pomocą relacji typu wielokąt złożony.
Relacja
- Główny artykuł: Relacja
Relacja składa się z uporządkowanej listy węzłów, linii i czasami także innych relacji takich jak członów nowej relacji. Relacja może mieć tagi i każdy element może także, ewentualnie, być zdefiniowany jako rola w relacji. Pojedynczy element może pojawić się wiele razy w relacji i ta relacja może być ujęta jako człon innej relacji.
Tag
- Główny artykuł: Tagi
Tag nie powinien być traktowany jako "Element" sam dla siebie, ale raczej jako jednostka danych dołączona do jednego z tych elementów powyżej. Tag składa się z dwóch pól tekstowych, "klucz" (key) i "wartość" (value), z których każdy jest ciągiem, maksymalnie 255 znaków Unicode. Przykładowo, droga lokalna jest określona przy użyciu klucza highway i wartości residential, tworząc tag highway=residential. Klucze mogą ponadto korzystać z przyrostka, aby sprecyzować swoje cele, przykładowo maxspeed:winter=* oznacza, że jest oddzielne ograniczenie prędkości w czasie zimy.
Wspólne atrybuty
Węzły, linie i relacje mają następujące, wspólne atrybuty.
Nazwa | Wartość | Opis |
---|---|---|
id | liczba | Służy do identyfikacji tego elementu. Typy elementów ma własną przestrzeń ID, więc może to być węzła ID=100 i linii ID=100, co jest mało prawdopodobne, aby były z sobą związane lub geograficznie w pobliżu siebie. |
user | tekst | Nazwa użytkownika, który ostatnio modyfikował obiekt. Użytkownik może zmienić swoją wyświetlaną nazwę. |
uid | liczba | Numeryczny identyfikator użytkownika, który ostatnio modyfikował obiekt. ID użytkownika jest liczbą która zostanie na stałe. |
timestamp | W3C Date and Time Formats | Czas ostatniej modyfikacji. |
visible | "true" "false" |
Niezależnie czy obiekt zostanie usunięty lub nie z bazy danych, jeśli visible="false" , obiekt powinien być zwracany tylko przy odwołaniach historycznych.
|
version | liczba | Wersja edycji obiektu. Nowo utworzone obiekty zaczynają się od wersji 1, a następnie wartość jest zwiększana przez serwer gdy nowa wersja obiektu zostanie przesłana przez edytor. Serwer odrzuca nową wersję obiektu, jeśli wersja otrzymana od edytora nie pasuje do aktualnej wersji obiektu w bazie danych. |
changeset | liczba | Zestaw zmian w którym obiekt został utworzony lub zaktualizowany. |
Oczywiście, dodatkowo, możemy przechowywać znaczniki, a także pełną historię edycji każdego elementu.
|