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