Uk:Relation:connectivity
![]() |
![]() |
Опис |
---|
Тип звʼязку from-via-to, який дозволяє вказати, як смуги на дорозі "from" зʼєднуються зі смугами дороги "to". ![]() |
Учасники |
|
Статус: затверджений![]() |
Інструменти |
|
Звʼязок "connectivity" – це тип звʼязку, який використовується для позначення того, як зʼєднуються смуги двох відрізків дороги. У більшості випадків визначити спосіб зʼєднання смуг можна без використання звʼязку, але є багато випадків, коли вам знадобиться такий звʼязок.
Як та коли використовувати звʼязок connectivity
Є кілька ситуацій, коли звʼязок connectivity може бути корисним.
- Кількість смуг на автомагістралі змінюється, але теґ placement=* не дозволяє визначити як смуги попереднього відрізка зʼєднуються зі смугами наступного.
- Напрямки проїзду перехрестя майже неможливо точно замапити використовуючи лише turn:lanes=*. Таке трапляється на складних перехрестях, що складаються з кількох перетинів, які знаходяться близько один до одного, і потрібно обрати правильну смугу, наближаючись до нього, щоб виїхати з такого перехрестя у потрібному напрямку не порушуючи правил дорожнього руху.
- За формою дорожньої розмітки важко визначити реальну картину, як смуги на підʼїзді зʼєднуються зі смугами на виїзді з перехрестя. Наприклад смуга для повороту ліворуч, яку також можна використовувати для руху прямо чи повороту праворуч на наступному перетині.
У всіх цих випадках можна використовувати один або кілька звʼязків connectivity, кожен з яких зʼєднує смуги руху двох відрізків доріг.
Для додавання звʼязку connectivity створіть новий звʼязок з трьома членами:
- Лінія
from, що є початком
- Одна точка
via, або один чи більше відрізків
via, що проходять через перехрестя
- Ліня
to, є місцем призначення в цьому випадку
В більшості випадків членами via будуть точки
, однак є й такі, коли потрібні лінії
. Такі випадки трапляються коли на дорозі позаду та на дорозі попереду немає розмітки. В цьому випадку використання точки з роллю
via не є можливим, оскільки відрізок без розмітки не в змозі відповісти на питання, як зʼєднуються смуги з відрізків позаду та попереду нього між собою. В цьому разі найпростішим розвʼязанням такого завдання буде призначення відрізка без розмітки ролі
via (як проїзду, або "довгої точки") у звʼязку connectivity, вказавши як смуги перед ним та після нього зʼєднуються одна з одною під час перетину члена
via звʼязку.
В загальному випадку звʼязок connectivity вказує, як смуги члена from зʼєднуються зі смугами члена звʼязку
to перетинаючи
via.
Кожен такий звʼязок повинен мати два теґи:
Теґ | Опис |
---|---|
type=connectivity | Вказує на тип звʼязку, тут – "connectivity" |
connectivity=* | Вказує як подорожній з кожної смуги з відрізка ![]() ![]() ![]() Значення має відповідати наступному синтаксису [номер смуги Смуга лінії |
⚠️ Відлік смуг відбувається зліва на право за напрямком руху.
Приклади
Звʼязок в OSM | Зображення | Теґування |
---|---|---|
9496175![]() |
![]() |
Звʼязок складається з членів ![]() ![]() ![]() Звʼязок повинен мати теґи type=connectivity та connectivity=2:1|3:2. Значення теґу connectivity читається наступним чином: Смуга 2 Смуга 3
|
9680471![]() |
![]() |
Звʼязок connectivity використовується в цьому випадку для того, щоб вказати які смуги використовуються для повороту праворуч, які смуги ![]() ![]() Звʼязок позначено теґами type=connectivity та connectivity=1:(1),(2),3|2:4,(5), де |
9607206![]() |
![]() |
Звʼязок застосовується до правої проїжджої частини автомагістралі, щоб показати як смуга для розгону праворуч виводить трафік на дорогу, а смуга ліворуч призначена для зміни напрямку руху перед перехрестям.
Звʼязок позначено теґами type=connectivity та connectivity=1:(1),2|2:3|3:4|4:(4), де: |
9529781![]() |
![]() |
Тут звʼязок використовується для зазначення з яких смуг ![]() ![]() Звʼязок позначено теґами type=connectivity та connectivity=1:1|2:2,(3), де:
Зауважте, що смуга 3 |
9646478![]() |
![]() Звʼязок використовується для зазначення з яких смуг | |
9526433![]() |
![]() Звʼязок використовується для позначення того, як дорога з 3 смуг на відрізку
Дужки вказують на те, що потрібно змінити смугу, щоб опинитися на смузі, номер якої вказано в дужках. Це може бути корисно для навігації, тому що шосе незабаром розгалужується, праві дві смуги відокремлюються від лівих двох смуг. Знання того, в яких напрямках які смуги ведуть заздалегідь, є корисним для навігації. | |
9619789![]() |
![]() |
Звʼязок connectivity використовується позначення того, як дорога з двох смуг стає дорогою з трьома смугами.
Звʼязок позначено теґами type=connectivity та connectivity=1:1,2|2:3, де: |
Зелений: 9729600![]() Червоний: 9708721 |
![]() |
Два звʼязки connectivity використовуються для позначення того як зʼєднуються смуги на цьому невеликому перехресті, бо turn:lanes=* може іноді бути недостатньо.
Зелений звʼязок – type=connectivity та connectivity=bw:(1), де смуги Червоний звʼязок – type=connectivity та connectivity=bw:bw|1:1|2:2|3:3, де всі смуги зʼєднуються одна з одною. Центральна смуга також, технічно, є зʼєднувачем, тому ми її теж включаємо. |
9502717![]() |
![]() |
Звʼязок connectivity використовується, щоб показати як 3 смуги перетворюються на 6.
Звʼязок позначено теґами type=connectivity та connectivity=1:(1),(2),3|2:4|3:5,(6), де: |
9516178![]() |
![]() |
Звʼязок connectivity може також використовуватись для опису того, як проїжджати через такі "скошені" перехрестя, де відрізок між прилеглими дорогами має роль ![]() Звʼязок позначено теґами type=connectivity та connectivity=2:1, де: Зауважте, що це перехрестя геометрично можна замапити по іншому, так, щоб не використовувати звʼязок connectivity, однак це може змінити інші фактори (наприклад кути під якими приєднуються бічні дороги), що може бути небажаним. |
9502616![]() |
![]() |
Тут звʼязок connectivity використовується для позначення того як 4 смуги ![]() ![]() ![]() ![]() ![]() ![]() ![]() Звʼязок позначено теґами type=connectivity та connectivity=1:2|2:3|3:4|4:5. Оскільки крайня ліва смуга |
16622295![]() |
![]() |
Цей незвичайний знак, який віддзеркалює відповідну дорожню розмітку, розташований на Т-перехресті поблизу іншого перехрестя. Три смуги призначені для виїзду на конкретні смуги після перетину Т-перехрестя. |
Типове зʼєднання між смугами
Основний підсумок
У більшості випадків звʼязок не потрібен, оскільки зʼєднання між смугами можна припустити на основі інших факторів.
Якщо кількість смуг from, якою можна дістатись
to дорівнює кількості смуг
to, скоріш за все використання звʼязку буде зайвим ускладненням. Кількість смуг розраховується на підставі turn:lanes=* відрізку
from.
В деяких випадках, звʼязок connectivity може використовуватись для того, щоб знехтувати смугами з turn:lanes=*, що дозволяє використовувати його для позначення стандартного зʼєднання смуг між собою.
Теґ placement=* також може використовуватись для позначення переходу одних смуг в інші. Якщо дві дороги зʼєднуються у точці, і теґи placement були додані до обох, перехід смуг однієї дороги в смуги іншої можна вирахувати на підставі цих значень.
У випадку використання placement=*, ми передбачаємо, що нові смуги (смуги, які починаються, але напряму не приєднанні до смуг відрізка from відповідно до значень у placement=* на
from та
to) є відгалуженням від наявних смуг. Це означає, що якщо дорога з двома смугами з placement=right_of:1 переходить в дорогу з 3-ма смугами placement=right_of:1, передбачається, що може матись на увазі звʼязок 1:1|2:2,(3), а не 1:1|2:2.
Теґ placement=* не повинен використовуватися для зазначення переходу між смугами, якщо у точці via зʼєднується понад дві дороги. Зазвичай це відбувається на перехрестях, розвʼязках автомагістралей або місцях, де дві дороги зливаються разом.
У випадку, коли кілька доріг зливаються в одну, можна припустити, що крайні ліві смуги дороги зʼєднуються з лівими смугами to, і що крайні праві смуги зʼєднуються з крайніми правими смугами
to. Наприклад, якщо дві дороги з двома смугами кожна зливаються разом у дорогу з чотирма смугами, передбачається, що звʼязок буде 1:1|2:2 для дороги ліворуч, і 1:3|2:4 для дороги праворуч, і звʼязок тоді не потрібен.
Коли три чи більше доріг зʼєднуються в одній точці, дороги праворуч та ліворуч від from можуть мати певну звʼязаність з
from, однак дороги між ними потребуватимуть явного позначення зʼєднаності смуг для уникнення двозначностей.
Підбиваючи підсумок, звʼязаність смуг може передбачатись в наступних випадках:
- Кількість смуг
from дорівнює кількості смуг у
to.
- Теґ placement=* може визначати звʼязаність смуг між двома відрізками по за перехрестями.
- Кілька доріг, які зливаються разом, передбачають звʼязаність смуг ліворуч та праворуч у
from залишаючись на своїх місцях у лінії
to.
Псевдокод з точки зори споживачів даних
Споживачі даних повинні отримати звʼязок для смуг між двома відрізками в OSM наступним чином:
if (connectivityRelationExistsBetweenRoadsAtVia) {
використовуємо звʼязок
} else if ((кількість смуг у лінії from) == (кількість смуг лінії to)) {
використовуємо звичайне зʼєднання смуг
} else if (значення placement ліній from/to дозволяють мати звʼязаність смуг AND тільки два відрізки зʼєднуються в точці via) {
використовуємо placement ліній from/to включаючи стандартні значення placement
} else if (кілька доріг з одностороннім рухом зʼєднуються разом утворюючи єдину дорогу на виході) {
крайня ліва смуга from переходить в крайню ліву смугу to
крайня права смуга from переходить в крайню праву смугу to
смуги в середині зʼєднуються з відповідним смугами to якщо їх кількість збігається
} else {
звʼязок відсутній та звʼязаність смуг не можу бути визначена автоматично
}
Додаткові примітки
- Члени
via можуть бути відрізками
– дивіться цей приклад. Будь-яка кількість відрізків може мати роль
via, але у випадках, коли ви вагаєтесь що використовувати точку чи лінію, робіть простіше – використовуйте точку.
- Всі смуги перелічені в значені теґу turn:lanes у
from та
to можуть входити до складу звʼязка connectivity. Наприклад, якщо велосипедні доріжки позначені в теґу turn:lanes відрізків
from та
to, то вони повинні бути включені у відповідний звʼязок connectivity так, ніби вони були є звичайною смугою. Смуги для руху громадського транспорту – так само.
- Цей звʼязок слід використовувати лише в місцях, де зʼєднаність смуг не є типовою – див. вище.
- Смуги both_ways також підтримуються в цьому звʼязку: використовуйте значення bw замість номера смуги. Наприклад, теґ connectivity=bw:bw|1:1|2:2 говорить про те що смуги both_ways у
from та
to зʼєднані між собою, а смуга 1 та 2 зі смугою 1 та 2 відповідно.
- Наступний синтаксис є помилковим – connectivity=1,2:1|3:2. Не використовуйте дві різні смуги
from в одному значенні (1,2:1 – має смуги 1 та 2 одночасно). Використовуйте натомість – connectivity=1:1|2:1|3:2.
- Ці звʼязки можна використовувати для доріг з двостороннім рухом без додаткових теґів. Вкажіть номер смуги відповідно до її напрямку.
- Передбачається, що там де використовується звʼязок, на зʼєднанні відрізків не можлива зміна смуг. Наприклад, якщо лінія
from та лінія
to обидві мають по дві смуги – зміна смуг не передбачається, ви не можете перестрибнути з лівою смуги на праву в місці
via.
- Зʼєднання смуг, що діє за певної умови, або зʼєднання смуг, що змінюється в залежності від часу, мають мапитись з використанням type=connectivity та connectivity=*, де connectivity:conditional=* використовується, щоб перевизначити стандартне зʼєднання смуг, коли діє умова. Такі випадки досить рідкісні, тож вам майже не доведеться використовувати connectivity:conditional=*. Дивіться цей приклад на mapillary, щоб побачити цей модульний знак, що вказує рух по смугах, щоб перевірити, що таке можливе.
- Цей звʼязок не вказує в якому напрямку "turn" виконується маневр з лінії from до лінії to – для цього потрібно використовувати теґ turn:lanes=* на відрізку лінії
from, там де ця інформація знаходиться насправді. Інший варіант – це використання звʼязків type=manoeuvre чи type=maneuver, підтримка яких є в OSRM, але вони не є поширеними.
- Якщо на відрізках
from/
to немає "lanes", або дорожньої розмітки, кількість смуг вважається 1 в термінах синтаксису connectivity=*, оскількі одна смуга дозволяє рух транспортних засобів.
Підтримка програмним забезпеченням
Втулок Lane Connectivity (вказаний як intersection в переліку втулків в JOSM) дозволяє візуально створювати звʼязки connectivity в JOSM. JOSM також може перевіряти їх правильність починаючи з випуску r16295.
Редактор iD має шаблон та поле для вводу звʼязків connectivity. У ньому відсутній редактор смуг, але ви з легкістю можете створити звʼязок connectivity, скориставшись редактором обмежень маневрів. Для цього виділіть точку зʼєднання двох відрізків, створіть звʼязок turn restriction з лініями from та
to для потрібних вам ліній, оберіть створений звʼязок та змініть його на Connectivity, переконайтесь, що теґ restriction=* був вилучений. Такий підхід дозволяє встановити відповідні ролі
from,
via, та
to членам звʼязку.
Рушій Valhalla працює зі старим, несумісним синтаксисом з цієї пропозиції. Цей тікет використовується для відстеження процесу переходу на затверджений тут синтаксис.
Дивіться також
- Lanes – використання суфікса ":lanes"
- lanes=* – до загальної кількості смуг не включаються велосмуги
- Bus lanes – смуги призначені для руху громадського транспорту
- Пропозиція щодо звʼязку connectivity