Зв’язки

Редакція 2017-06-06

В Керівництві для початківців ми розказали про три типи об’єктів, які можна додати в OpenStreetMap – точки (nodes), лінії (ways) та полігони (closed ways - замкнені лінії). Лінії містять числені точки, в той самий час як самі лінії мають атрибути, які говорять нам про те, що ці ліні означають. Полігони – такі ж самі лінії, лише з однією відмінністю, їх початок та кінець збігаються утворюючи контур.

Фактично, ми збрехали вам, тому що в OpenStreetMap є ще один тип об’єктів, який називається – зв’язок. Так само, як лінія складається з точок, зв’язок утворюється з точок, ліній та полігонів. Якщо ви хочете розширити свої навички редагування, вам важливо розуміти та знати, як правильно редагувати зв’язки.

Наприклад, уявіть, що ви хочете скласти мапу на якій будуть будівлі з дворами в середині. Вам доведеться накреслити зовнішній контур будівлі і ще один контур, який позначає внутрішній двір. Це найпростіший приклад зв’язку. Зв’язок міститиме кілька полігонів, а всі атрибути будівлі будуть призначені самому зв’язку, а не полігонам.

An example of a multipolygon

Зв’язки використовуються для об’єктів, що складаються з набору інших об’єктів. Інші приклади, це маршрут громадського транспорту (збірка з відрізків доріг), дуже великі та складні об’єкти (річки, озера, дороги) або кілька полігонів, що утворюють один об’єкт (наприклад будівля університету, що складається з корпусів, з’єднаних один з одним переходами).

Ви можете побачити переважно чотири типи зв’язків в OSM: мультиполігони, маршрути, кордони та обмеження маневрів (наприклад, поворот ліворуч заборонено). В цьому розділи ми розкажемо про мультиполігони та маршрути.

Створення мультиполігонів

Розглянемо як створювати мультиполігони, схожі на показані вище.

  • Спочатку, накресліть всі контури. В цьому випадку три замкнені лінії, одна – зовнішній контур, дві менші – внутрішні контури.

Multipolygon ways

  • Виділіть їх. Пам’ятаєте, ви може виділяти кілька об’єктів утримуючи натиснутою клавішу SHIFT.
  • В меню оберіть пункт Інструменти -> Створити мультиполігон.
  • У вікні Теґи/Членство тепер ваш новостворений мультиполігон.

New mp object

  • Натисніть кнопку Правити.

  • Відкриється редактор зв’язків в новому вікні. Все не так складно, як виглядає з першого погляду, просто тепер ви додаєте теґи до набору об’єктів.

Building relation

  • Верхня частина редактора призначена для додавання теґів зв’язку. Вони працюють так само, як і завжди.
  • В нижній частині – перелік членів зв’язку. Цей зв’язок має трьох членів – лінії, що входять до його складу.
  • Бачите, у нас вже є один теґ, type=multipolygon. Тепер нам треба додати інші теґи, щоб описати об’єкт, для якого ми створили зв’язок. Це будинок, тож нам треба додати теґ building=yes.
  • Клацніть у верхній частині редактора та додайте цей теґ.

Building yes

  • Ролі вже були правильно призначені членам нашого зв’язка. Кожен член зв’язка має власну роль, яка вказує на його призначення. Тут, зовнішній контур будинку має роль outer, а два внутрішні контури мають ролі inner. Це ролі, які доступні для членів мультиполігону.

  • Після того, як ви натиснете Так, створення вашого зв’язка буде закінчено!

New multipolygon

Коли ви створюєте подібний мультиполігон, він показуватиметься на мапі так:

Multipolygon in Mapnik

Мультиполігони можна використовувати для будь-яких складних об’єктів у яких є внутрішній та зовнішній контури, таких як будинки, або річки та озера з острівцями на них. Докладніше про мультиполігони читайте у Вікі OSM.

Маршрути

Зв’язки використовуються для створення маршрутів, наприклад, маршруту автобуса, чи велосипедного маршруту, що проходять частинами різних доріг. Для їх позначення ми створюємо зв’язок, членами якого є відрізки доріг. Додаткові елементи, як наприклад, автобусні зупинки також можуть бути членами зв’язку.

Route relation

Розглянемо як створити автобусний маршрут в JOSM:

  • Виділіть всі відрізки доріг по которих проходить маршрут. Можливо, вам доведеться розділити деякі вулиці на кілька частин, якщо маршрут проходить тільки по їх частині. Це робиться за допомоги інструмента “Розділити лінію” (“Split Way”).
  • Коли всі відрізки маршруту будуть виділені – Заготовки -> Транспорт -> Громадський транспорт -> Маршрут громадського транспорту (автобусний).

Public transport preset

  • У вікні, що з’явиться, ви можете додати інформацію про маршрут.

New route relation

Важливо не забувати вибрати правильний тип маршруту у випадаючим меню вгорі. Якщо ви вирішили додати маршрут тролейбуса, оберіть його в цьому меню. Також ви можете додати назву маршруту, його номер, початкову та кінцеву зупинки.

  • Клацніть кнопку “Новий зв’язок” (“New Relation”). Перед вами з’явиться редактор зв’язків, ви вже знайомі з ним після створення мультиполігону.

Bus route relation

  • Бачите, у нас вже є теґи, що описують цей зв’язок як маршрут, замість type=multipolygon у нас type=route. Також у нас є теґ, що описує наш маршрут, як маршрут автобуса, а не будь-який інший.
  • Ви можете запитати, а які ролі будуть мати його члени? Що ж, нам не треба призначати ролі відрізкам маршруту. Залишаючи їх порожніми ми ніби кажемо, що це просто частини маршруту. Ми б могли призначити роль route членам маршруту, але робити цього не треба.
  • Натисніть Так для завершення створення маршруту!

Якщо ви бажаєте переглянути всі наявні на мапі маршрути, відкрийте манель зв’язків клацнувши на цю кнопку relation panel button на панелі інструментів ліворуч. Вона активує панель зв’язків, де ви можете переглянути, виділити, створити або правити зв’язки.

Підсумки

Можливо для когось зв’язки й досі є складними для розуміння, але знати про їх існування важливо. Коли ви зрозумієте, що для того щоб додати певний об’єкт на мапу вам треба створити для цього зв’язок, ви зможете зробити це правильно, спираючись на отримані рекомендації. Ви завжди можете звернутись до Вікі OSM за докладною інформацією за потреби.