Uk:Зв’язки
Зв'язки — це впорядковані набори обʼєктів: точок, ліній та інших звʼязків. Разом з точками та [[Uk:Way|лінями] вони є одним з трьох базових примітивів моделі даних OpenStreetMap.
Звʼязок повинен мати принаймні теґ type=* та складатись з групи членів, яка є впорядкованим переліком що складається з однієї чи більше точок, ліній та/або інших звʼязків. Використовується для визначення логічних або географічних відносин між різними обʼєктами (наприклад, озером і островом, або кількома дорогами, що утворюють автобусний маршрут). Член звʼязку може опціонально мати роль, що описує функцію, яку він виконує у звʼязку. Теґи, що описують набір як єдине ціле, повинні міститися лише у звʼязку (наприклад, wikidata=*, destination=*, ...), за винятком назви, якщо така є, яка також може міститися у членах звʼязку.
Станом на березень 2024 в OpenStreetMap налічувалось понад 12 мільйонів звʼязків.


Використання
Зв’язки використовуються для моделювання логічних (і, як правило, локальних) або географічних стосунків між об’єктами.
Вони не призначені для зберігання вільно пов’язаних, але розташованих на значній території елементів. Було б неправильним, наприклад, використовувати зв’язки для гуртування 'всіх пішохідних маршрутів в Східній Англії'. Дивіться Звʼязки не для створення категорій.
Найпоширеніші прості звʼязки містять лише члени геометричних типів (точки або лінії). Звʼязки також можуть містити інші (дочірні) звʼязки, в цьому випадку вони неформально називаються «супер-звʼязками». Зазвичай звʼязок не містить як геометричних членів, так і дочірніх звʼязків, але це не заборонено.
Для того, щоб бути корисним, дерево звʼязків повинно містити геометричні члени, інакше воно буде практично невидимим, тому що не привʼязане ні до чого конкретного на мапі. Порожній звʼязок може існувати в базі даних, але він не дуже корисний, хіба що як заповнювач для майбутнього розширення. Редактор iD автоматично видаляє порожні звʼязки, що утворилися внаслідок видалення членів, оскільки в більшості випадків вони є помилковими.
Розмір
Існує технічне обмеження на 32 000 елементів у звʼязку. Рекомендується включати до одного зв’язку не більше 300 членів. Чим більше членів має один зв’язок, тим важче впоратись з ним, легко зламати, викликати конфлікти, і як показує досвід вони споживають значний обсяг ресурсів сервера та бази даних. Якщо вам доводиться працювати зі зв’язками з великою кількістю членів, створіть кілька окремих зв’язків та об’єднайте їх у Super-Relation.
Однак, наявність великих звʼязків іноді неминуча, особливо для звʼязків адміністративних кордонів країн, що мають велику протяжність та складаються з кількох тисяч елементів.
Ролі 
Роль — необов’язкове текстове поле, в якому зазначається функція члена зв’язку.
Наприклад, у мультиполігоні, ролі inner та
outer використовуються, щоб вказати, яка з ліній позначає внутрішні та зовнішні контури мультиполігону.
У зв’язку водних шляхів, що містить лінії річища waterway=river, можливо разом з притоками, для створення річкової системи, роль maine_stream на лінії буде означати основне річище, side_stream – відгалуження.
Приклади зв’язків 
Мультиполгони
Мультиполігони є одним зі способів мапінгу об’єктів в OpenStreetMap, що займають певну площу. В той час як більшість таких об’єктів представлено звичайною замкненою лінією
, будь-який з них може бути замаплений у вигляді мультиполігону. Без цього не обійтись, коли вам потрібно зробити отвори в полігоні (виключити певну частину з його складу), або якщо в об’єкта є ексклави, які потрібно включити до його складу, а також якщо контур об’єкта складається з більше ніж 2000 точок.
У зв’язку мультиполігона, ролі inner та
outer використовуються для зазначення того, чи є лінія внутрішнім чи зовнішнім контуром території полігону.
Наприклад, озеро та острів в ньому може збути замаплено як полігон, що складається з двох ліній (лінії без теґів), зовнішній контур озера буде мати роль "outer", а лінія контуру острова матиме роль "inner" (тому, що вона одночасно є внутрішнім контуром озера). Сам острів можна позначити чимось на кшталт natural=bare_rock – скеля посеред озера.
Автобусний маршрут
Кожен напрямок автобусного маршруту представляється за допомогою звʼязку type=route, з теґами route=bus, ref=* та from=*, to=*, operator=*.
На початку, у зв’язку автобусного маршруту знаходяться точки зупинок з роллю 'stop', вони впорядковуються за ходом руху автобуса. Потім, зазначаються дороги, по яких проходить автобусний маршрут. Відрізки доріг впорядковуються у послідовності за якою проходить маршрут, так само як і зупинки. Відрізки доріг не мають ролей. Вони мають утворити ланцюг без розривів від початкової до кінцевої зупинки (в JOSM легко це побачити в редакторі зв’язків).
Інші приклади
- Relation:boundary – застосовується виключно для опису адміністративних кордонів.
- Relation:restriction – описують обмеження маневрів, такі як “розворот заборонено”, “рух тільки прямо” й тому подібне
- Див також Types of relation та Category:Relations
Інструменти
- iD: [1]
- JOSM/Advanced_editing#Relations: Робота зі зв’язками в JOSM
- Potlatch 2/relations: Робота зі зв’язками в Potlatch
- Relatify: просте редагування автобусних та трамвайних маршрутів (у стандарті Public Transport v2 (PTv2))
- Перегляд зв’язку: Example id=11
- Перегляд історії змін зв’язку: Example id=11
- Показ зв’язку на мапі: Example id=11
- Relation Analyzer (http://ra.osmsurround.org) – пошук зв’язку за навою або для його аналізу, напр. пошук розривів в маршрутах
- Mapki's Deep Diff - для аналізу: наприклад, показувати зміни ролей окремих учасників, показувати модифікації списку учасників за допомогою перегляду історії обʼєктів для кожної версії обʼєкта
- Relation Diff — для порівняння звʼязків
- Створення gpx-файлу з звʼязка — наприклад, щоб візуалізувати звʼязок на мапі
- Rel2gpx — щоб вибрати лінії звʼязка
- Geofabrik - OSM Inspector - PTv2 помилки у зв’язках маршрутів – для перевірки на наявність пропусків чи невірного порядку елементів у зв’язках PTv2
- Public Transport Network Analysis — для перевірки пропусків, порядку шляхів, правил одностороннього руху та неузгодженості даних між маршрутом та майстер-звʼязком у звʼязках Public Transport v2 (також базова підтримка для маршрутів PTv1).
Навігація з використанням зв’язків
OSRM та Valhalla можуть використовувати певні зв’язки маршрутів автомобільних доріг для уточнення навігаційних інструкцій коли маршрут містить напрямки руху (США, Мексика, Південна Африка, Канада, Венесуела).
Наприклад, деякі веломаршрутизатори віддають перевагу маршрутам по дорогах із наявними велосипедними маршрутами (як індикатор зручності використання велосипеда). Також застосунки можуть використовувати маршрути для паломників (pilgrimage=*), або, загалом, намагатися прокласти маршрут уздовж мінімальної кількості пронумерованих маршрутів.
OSM XML
- Основна стаття: OSM XML
<relation id="13092746" visible="true" version="7" changeset="118825758" timestamp="2022-03-23T15:05:48Z" user="" uid="">
<member type="node" ref="5690770815" role="stop"/>
<member type="node" ref="5751940550" role="stop"/>
...
<member type="node" ref="1764649495" role="stop"/>
<member type="way" ref="96562914" role=""/>
...
<member type="way" ref="928474550" role=""/>
<tag k="from" v="Encre"/>
<tag k="name" v="9-Montagnes de Guyane"/>
<tag k="network" v="Agglo'bus"/>
<tag k="not:network:wikidata" v="Q3537943"/>
<tag k="operator" v="CACL"/>
<tag k="ref" v="9"/>
<tag k="route" v="bus"/>
<tag k="source" v="https://www.cacl-guyane.fr/wp-content/uploads/2021/01/PLAN-RESEAU-URBAIN-AGGLO-BUS-1.pdf"/>
<tag k="to" v="Lycée Balata"/>
<tag k="type" v="route"/>
<tag k="website" v="https://www.cacl-guyane.fr/lagglo-au-quotidien/se-deplacer/transport-urbain-2/"/>
</relation>
Дивіться також
|