Uk:Елементи
Елементи (або примітиви даних) є основними компонентами концептуальної моделі даних подання реального світу в OpenStreetMap. Вони складаються з:
- точок (визначає точку в просторі),
- ліній (визначають лінійні об’єкти та межі полігонів), та
- зв’язків (які використовуються, щоб показати як елементи поєднуються один з одним).
Всі перелічені елементи можуть мати один або кілька теґів (які описують зміст конкретного елемента).
Точка (Node) 
- Основна стаття: Uk:Node
Точка представляє конкретну точку на земній поверхні, яка зазначається своїми координатами (широтою і довготою). Кожна точка, щонайменше, містить власний ідентифікатор та координати.
Точки можуть використовуватись для визначення самостійних точкових об’єктів. Наприклад: лавка в парку чи колодязь.
Точки також використовуються для визначення форми ліній. Точки, що складають лінію часто не мають власних теґів. Проте є специфічні моменти, коли теґи до таких точок потрібно додавати. Наприклад, highway=traffic_signals використовується для світлофорів на лінії дороги, а power=tower позначає опору лінії електропередач.
Точка може входити до складу зв’язку в якості його члена. Члени зв’язку також можуть мати ролі: тобто, опис функції точки в даному конкретному наборі пов’язаних елементів даних.
Лінія (Way)

- Основна стаття: Uk:Way
Лінія — це впорядковане послідовне поєднання від 2 до 2,000 точок, що утворюють ламану лінію. Лінії використовуються для позначення лінійних об’єктів, таких як річки та дороги.
Лініями також позначають межі полігонів, таких як будівлі та ліси. В такому випадку перша та остання точки матимуть однакові координати. Це називається — "замкнена лінія"
Зверніть увагу, що замкнені лінії іноді представляють кільця, наприклад, кільцевий рух на автомобільних дорогах, а не полігони. Для того, щоб визначити, з чим маємо справу, потрібно проаналізувати теґи.
Полігони з отворами, або з межами що складаються більше ніж 2,000 точок, не можуть бути представлені у вигляді однієї лінії. Замість цього потрібно використовувати інший елемент даних — мультиполігон.
Зв’язок (Relation) 
- Основна стаття: Uk:Relation
Зв’язок — багатоцільова структура даних, яка включає взаємовідносини між двома чи більше елементами даних (точками, лініями та/або з іншими зв’язками). Наприклад:
- Зв’язок з маршрутом, до якого входять лінії, що утворюють певний маршрут (пронумеровану автомагістраль), велосипедний маршрут, або маршрут громадського транспорту.
- Заборони поворотів, які вказують на неможливість повернути в певному напрямку з однієї дороги на іншу.
- Мультиполігони — описують полігони, що містять отвори ('зовнішні' та 'внутрішні' контури).
Таким чином, зв’язки можуть мати різні значення. Чим є зв’язок, визначається його теґами. Як правило, зв’язок матиме теґ 'type'. Інші теґи зв’язка потрібно інтерпретувати у світлі значення теґу type.
Зв’язок переважно є впорядкованим переліком точок, ліній та інших зв’язків. Ці об’єкти є членами зв’язку.
Кожен елемент зв’язку може мати власну роль. Наприклад, зв’язок заборони повороту має членів з ролями "from" та "to", що зазначають можливість повороту в той чи інший бік.
Поодинокий елемент, такий як якась певна лінія, може з’являтись у зв’язку кілька разів.
Теґ 
- Основна стаття: Uk:Tags
Всі елементи даних (точки, лінії та зв’язки), так само як і набори змін, можуть мати теґи. Теґи описують зміст конкретного елемента, якому вони призначені.
Теґ складається з пари двох текстових полів вільного формату: 'ключа' та 'значення'. Кожне з цих полів може складатись з 255 символів юнікоду. Наприклад, highway=residential використовується для позначення дороги, основним призначенням якої є надання можливості людям дістатись їх домівки. Один елемент не може мати два теґи з однаковим 'ключем', 'ключі' мають бути унікальними. Наприклад, ви не можете позначити один об’єкт теґами amenity=restaurant та amenity=bar одночасно.
Не існує сталого словника теґів, але існує багато домовленостей, задокументований в цій вікі (почніть з вивчення сторінки Об’єкти мапи). Про статистику застосування певного теґу можна дізнатись за допомоги Taginfo. Якщо існує більше ніж один спосіб позначити певний об’єкт, краще використовувати той, що є найбільш поширеним.
Не всі елементи мають теґи. Точки, якщо вони є елементами ліній, переважно не мають теґів. Лінії та точки також можуть не мати теґів, якщо вони є членами зв’язків.
Загальні атрибути
У базі даних OSM, ми зберігаємо наступні атрибути для точок, ліній та зв’язків. Можливо для ваших застосунків вони всі і не потрібні, а деякі сторонні ресурси з вибірками даних з OSM можуть й не містити їх всі.
назва | значення | опис |
---|---|---|
id | integer
(64-bit) |
Використовується для ідентифікації елементів. Типи елементів мають власні простори ID, тож може існувати точка з id=100 разом з лінією з id=100, які навряд чи можуть бути пов’язані або бути географічно поруч.
Для наявних в базі даних елементів використовуються позитивні значення (більші за нуль). Навіть після модифікації або вилучення елемента його id залишається за ним. Від’ємні id (менші за нуль) є зарезервованими (область їх застосування обмежується поточним набором правок та не зберігається в базі) та використовуються лише під час надсилання даних до бази OSM для ідентифікації новостворених об’єктів та посилання на них в інших новостворених об’єктах (під час збереження сервер замінює від’ємні id, що надсилаються програмами-редакторами, на постійні позитивні для кожного об’єкту та проводить відповідні зміни для всіх пов’язаних об’єктів). |
user | string | Містить ім’я учасника, який останнім змінював об’єкт (подається лише для інформації та може бути порожнім). Учасники в змозі змінювати власні ім’я в будь-який момент (наявні в базі елементи посилатимуться на нове ім’я без додаткових дій з боку учасника). |
uid | integer | Числовий ідентифікатор учасника, який останнім змінював об’єкт. Цей ідентифікатор є незмінним. |
timestamp | W3C Date and Time Formats | Час внесення останніх змін (напр. "2016-12-31T23:59:59.999Z"). |
visible | "true" "false" |
Показує чи об’єкт позначено вилученим у базі даних, якщо visible="false" – інформація про об’єкт виводиться тільки у відповідь на запити до історії об’єкта. |
version | integer | Версія об’єкта. Новостворені об’єкти мають версію 1, яка збільшується з кожним завантаженням змін об’єкта на сервер. Сервер може відкинути нову версію об’єкта якщо, версія що надсилається не збігається з версією в базі даних на сервері. |
changeset | integer | Набір змін в якому об’єкти були створені або змінені. (рекомендується підтримка 64-bit в застосунках для тривалої сумісності з базою OSM. Якщо застосунки тільки отримують дані з бази, без надсилання змін до неї, вони можуть ігнорувати цей атрибут). |
Звичайно, на додачу ми зберігаємо теґи, а також повну історію редагування кожного елемента.
Дивіться також
|