Uk:Conditional restrictions

From OpenStreetMap Wiki
Jump to navigation Jump to search
Logo. Обʼєкт : Uk:Conditional restrictions
One example for Обʼєкт : Uk:Conditional restrictions
Опис
Використовується для позначення обмежень, що діють за певних умов
Теґи

access:conditional=*, maxspeed:conditional=*, maxweight:conditional=*, oneway:conditional=*, overtaking:conditional=*, restriction:conditional=*, *:conditional=*

Тут міститься пояснення того, як теґувати обмеження, які діють за певних умов.

Звичайні теґи для позначення безумовних обмежень, на кшталт access=private або maxspeed=60, широко використовуються для позначення таких випадків, як обмеження швидкості значенням 60 км/г. Якщо обмеження застосовуються лише до певних категорій транспортних засобів (видів пересування), ключ може бути доповнений додаванням такою інформації. Наприклад, oneway:bicycle=no та maxspeed:hgv=80. Тип транспортного засобу може використовуватись як самостійний ключ, якщо обмеження застосовується лише до цього виду траспортних засобів (видів пересування). Наприклад, hgv=no замість access:hgv=no.

В деяких випадках, заборони діють лише за наявності певних критеріїв. Наприклад, обмеження швидкості 60 км/г діє лише між 23:00 та 5:00. Відповідно до наявної схеми цей випадок може бути позначений наступним чином – maxspeed:conditional=60 @ (23:00-05:00). Цей запис перевизначає типове обмеження, скажімо maxspeed=50, вказуючи на те, що стандартне обмеження швидкості 50 км/г, але між 23:00 та 5:00 воно підвищується до 60 км/г.

Схема теґування, описана нижче, пояснює як зазначати в OpenStreetMap обмеження, які діють за певних умов.

Теґування

Схема використовує той самий синтаксис, що і для звичайних безумовних обмежень, але з наступними відмінностями: до ключа додається суфікс :conditional. Значення містить фактичне значення, за яким слідують символ '@' та умова за якої воно діє.

Загальний синтаксис виглядає наступним чином (де поля у квадратних дужках [..] є опціональними):

<restriction-type>[:<transportation mode>][:<direction>]:conditional
  = <restriction-value> @ <condition>[;<restriction-value> @ <condition>]

Якщо застосування теґу обмежується одним видом трафіку частина restriction-type: зазвичай упускається.

<transportation mode>[:<direction>]:conditional
  = <restriction-value> @ <condition>[;<restriction-value> @ <condition>]

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

Ключ

Використовується той самий ключ, що й для звичайних обмежень, з додаванням суфіксу :conditional.

Restriction type

Це може бути будь-який тип обмеження, який може мати умовний термін дії. Типовими прикладами є обмеження access=*, maxspeed=* та oneway=*. Restriction type має збігатись з "основним" дорожнім знаком. Знак Ukraine road sign 3.1.gif, за наявності додаткової таблички позначається за допомоги ключа access. З іншого боку, знак Ukraine road sign 3.19.gif позначається за допомоги ключа maxlength (так само як і для інших знаків max<dimension>).

Transportation mode

Ця частинка ключа використовується для зазначення типу траспортного засобу чи типу пересування до якого застосовується обмеження, напр. bicycle, motor_vehicle, foot, agricultural. Для обмеження доступу може використовуватись скорочена форма, без слова access: motorcar замість access:motorcar. Зауважте, що значення agricultural використовується для позначення певних траспортних засобів (як правило, це трактори та інші машини максимальна швидкість яких є не високою), а не для позначення того, з якою метою використовується дорога.

Див Uk:Key:access#Обмеження за типами пересування для ознайомлення зі всією ієрархією типів пересування та траспортних засобів.

Direction

Дія обмежень може бути обмежена напрямком. Використовуйте forward та backward для зазначення напрямку дії обмеження. Напрямок дії вказується відповідно до напрямку лінії, якою позначено дорогу в OpenStreetMap. Ознайомтесь зі статтею "forward", "backward", "left", and "right", де докладно пояснюється як його визначати.

Значення

Значення складається з самого обмеження, символу @ та умови. Символ @ відокремлюється пробілами.

Переважно зазначається одне значення обмеження з відповідними умовами. У виняткових випадках може використовуватись дві або більше пар значення-умова. Такі пари значення @ умова розділяються крапкою з комою ;. Таким випадком може бути обмеження швидкості в певний час доби Ukraine road sign 7.4.4.gif, а іншим – обмеження швидкості під час дощу Ukraine road sign 7.13.gif. Дивіться Суперечливі обмеження нижче, щоб зрозуміти як поводитись в таких випадках.

Restriction-value

Значення обмеження, напр. yes, private, 80, 55 mph. Обмеження може бути абсолютним (yes, no, permissive та інші значення які застосовуються для всіх), відповідно до класу дороги використовуйте (destination, delivery, customers, forestry, agricultural й т.д.) або явну заборону чи дозвіл (private, permit_holder).

Condition

Умова, зазначає коли обмеження є дійсним. Можна виділити різні типи умов.

  • Час та день: Використовується стандартний синтаксис значень теґу opening_hours=*. Якщо значення містить точку з комою (";"), така умова має міститись в круглих дужках (), напр. (Mo 06:00-24:00; Tu-Fr 00:00-24:00; Sa 00:00-13:00), Mo-Fr 07:00-19:00, sunrise-sunset або Jan-Mar.
  • Дорожні умови: Наприклад, Ukraine road sign 7.13.gif wet, Ukraine road sign 7.12.gifsnow. Варто зазначити, що також умова wet також відповідає суфіксу :wetmaxspeed:wet=*. Використання wet у вигляді умови рекомендується до використання саме в синтаксисі умовних обмежень (теґ "maxspeed:wet" використовувався до того, коли ще не був запропонований синтаксис умовних обмежень).
  • Властивість транспортного засобу: Серед таких властивостей weight (вага), axleload (максимальне навантаження на вісь), length (довжина), width (ширина), height (висота) та draught (осадка човна). Використовуйте відповідні оператори (<, >, =, <=, >=) для визначення умов. напр. (weight<7.5).
  • Користування траспортними засобами: Обмеження залежить від того, яким чином використовується транспортний засіб, скільки пасажирів зниходиться в ньому чи яку кількість вантажу він перевозить. Напри: (occupants>1) (типова умова для автомобілів для використання смуги "hov"), hazmat (автівки, що перевозять небезпечні вантажі).
  • Групи користувачів: Обмеження зазначає певні групи користувачів, напр. медичні працівники, водії/пасажири з інвалідністю, рятувальні сулжби, жінки й т.і.
  • Мета доступу: Для restriction types очікуються числові значення обмежень, наприклад для maxweight умовою може бути мета доступу (destination, delivery т.і.) або дозвіл (private, permit_holder й т.і.). Наприклад:
    maxweight=2.5
    maxweight:conditional=none @ destination.

За винятком простих умов таких як "wet" чи "Su", рекомендується заключати умови в круглі дужки.

Комбіновані умови: AND

Одна чи більше частин умови можуть поєднуватись оператором AND. Рекомендується використовувати верхній регістр для покращення сприйняття. AND означає, що мають виконуватись обидві частини умови. Наприклад access:conditional=destination @ (Sa-Su AND weight>7).

Типові обмеження

Не завжди зрозуміло, яке обмеження застосовується, коли умова не виконується. В таких випадках має зазначатись типове обмеження: maxspeed=120 + maxspeed:conditional=100 @ (20:00-06:00). В деяких випадках типові обмеження є очевидними і позначати їх необов’язково. Для більшості доріг передбачається вільний доступ, access=yes, в теґування якого немає потреби. Дивись OSM tags for routing/Access-Restrictions для ознайомлення з типовими обмеженнями для доріг різних класів. Однак буває досить корисним позначати типові обмеження в явній формі разом із використанням умовних обмежень.

Аналіз суперечливих обмежень

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

  1. Обмеження, що має більш конкретний опис траспортного засобу, замінює більш загальні визначення. Напр. теґ "psv" переважає "motor_vehicle" у випадку з громадським транспортом. Див Uk:Key:access#Обмеження за типами пересування для ознайомлення зі всією ієрархією типів пересування та траспортних засобів.
  2. Обмеження за напрямком переважає обмеження, в яких напрямок не зазначений для тих самих траспортних засобів.
  3. Умовні обмеження переважають безумовні обмеження для тих самих транспортних засобів та напрямку руху.
  4. Обмеження руху по смугах, аналізуються для кожної смуги окремо, та мають перевагу над загальними обмеженнями для тих самих траспортних засобів (для умовних та за напрямком дії)
  5. Умовні обмеження руху по смугах, аналізуються для кожної смуги окремо, та мають перевагу над безумовними обмеженнями, вказаними для кожної смуги.
  6. У випадку збігу з кількома умовами значення @ умова для того ж самого теґу, використовується остання умова. Тому важливо на перше місце поставити більш загальне обмеження, а на останнє – більш конкретне. Приклади:
    • (access=yes) + access:conditional=no @ (09:00-17:00); destination @ (09:00-17:00 AND disabled) – дозволяє доступ водіям з інвалідністю (остання умова) в той час, як доступ іншим заборонений з 9:00 до 17:00. Часовий інтервал має повторюватись, інакше інваліди мали б доступ лише до пункту призначення з17:00 до 9:00, тоді як всі інші використовували б загальні умови доступу.
    • (maxspeed=none) + maxspeed:conditional=120 @ (06:00-20:00); 80 @ wet – тут 80 км/г за вологої погоди переважає базове обмеження 120км/г, яке діє за часом, якщо йде дощ.
    • (access=no) + access:conditional=delivery @ (07:00-11:00); customers @ (07:00-17:00) – тут насправді немає конфлікту, оскільки може збігатися лише одне значення (мета доступу повинна бути destination, customers, delivery, agricultural або forestry).

Не використовується для:

Приклади

Фото Теґи Опис
Speedlimit120-timecondition.jpg maxspeed=130
maxspeed:conditional=120 @ (06:00-19:00)
Обмеження максимальної швидкості 120 км/г діє з 6:00 до 19:00, у весь інший час – 130 км/г (приклад з автостради в Голандії).
type=restriction

restriction:conditional=no_left_turn @ (Mo-Fr 07:00-09:00,16:00-18:00)

relation Поворот ліворуч заборонений в будні з 7:00 до 9:00 та з 14:00 і до 21:00.
Ottawa complicated conditional no left turn.jpeg type=restriction

restriction:conditional=no_left_turn @ (07:00-09:00,15:30-17:30)
except=bicycle

relation Поворот ліворуч заборонено з 7:00 до 9:00 та між 15:30 та 17:30, для всіх крім велосипедистів.
maxspeed=none
maxspeed:conditional=120 @ (06:00-20:00); 100 @ (22:00-06:00)
Два обмеження швидкості діють в різні проміжки часу (приклад з автобану в Німеччині).
Conditional-access-bicycle-and-delivery.jpg highway=pedestrian

motor_vehicle:conditional=delivery @ (Mo-Fr 06:00-11:00,17:00-19:00;Sa 03:30-19:00)
bicycle=yes
bicycle:conditional=no @ (Sa 08:00-16:00)
mofa=no
moped=no

Складний приклад для пішохідної зони в Голандії. Доставка вантіжів ("bevoorradingsverkeer") дозволена у певні проміжки часу. Рух велосипедів ("fietsen") дозволений крім проміку часу з 8:00 до 16:00 в суботу. Рух мопедами та скутерами ("snor- en bromfietsen") заборонений.
access:conditional=destination @ (weight>5.5) Рух траспортних засоби масою вище 5.5 тон дозволений лише для доставки вантажів в місці дії обмеження.
Maxweight except buses and for loading.jpg maxweight=7.5
maxweight:bus=none
maxweight:conditional=none @ delivery
Обмеження максимальної дозволеної ваги не діє на автобуси (maxweight:bus) та на траспортні засоби, які здійснють доставку вантажів в зоні дії обмеження (maxweight:conditional). Отже, обмеження максимальної ваги 7,5 т поширюється на всі транспортні засоби, крім автобусів та вантажів ("доставка").
maxweight:hgv=7.5
maxweight:hgv:conditional=none @ delivery
Зауважте, що дія знаку поширюється лише на вантажівки, тож таке позначення також є дійсним. Можливо тут навіть краще використовувати maxweightrating замість maxweight.
Length and time restriction 2.jpg motor_vehicle:conditional=no @ (10:00-18:00 AND length>5) Механічним транспортним засобам довжиною більше 5 метрів заборонено рух з 10:00 та до 18:00.
motor_vehicle:conditional=no @ (2018 May 22-2018 Oct 7) Відрізок дороги закритий для руху механічних траспортних засобів на кілька місяців (на час ремонту). Прокладання маршрутів через цей відрізок буде доступне після закінчення вказаного строку, навіть без оновлення даних.
Motorcycle restriction conditional.png motorcycle:conditional=no @ (Sa,Su,PH) Рух мотоциклів заборонений по вихідних та святкових днях.
UK motor restriction sign with exceptions.jpg highway=tertiary

motor_vehicle=no
motor_vehicle:conditional=yes @ (18:30-07:30)
psv=yes

Проїзд для автобусів (ворота) який контролюється камерою спостереження; доступ механічних траспортних засобів заборонений з 7:30 до 18:30, окрім громадського транспорту. Якщо ви бажаєте використовувати типове значення motor_vehicle=no, час має бути змінений відповідно.
Hgv-no-overtaking-condition.jpg overtaking:hgv:conditional=no @ (Mo-Fr 06:00-19:00) Обгін вантажівками забороненний з 6:00 до 19:00 по буднях.
oneway:conditional=yes @ Su

oneway:bicycle=no

Рух на вулиці стає одностороннім у неділю, проте це не стосується велосипедистів. Другий теґ має перевагу над умовним обмеження, через тещо він стосується конкретних траспортних засобів (велосипедів).
Speed limit of 60 for HGV with weight more than 7.5t.jpg maxspeed=80

maxspeed:hgv:conditional=60 @ (weight>7.5)

Приклад обмеження швидкості для певного виду траспортних засобів.
fee=no

fee:conditional=yes @ (stay > 2 hours)[1]

Стоянка, плата починає стягуватись після 2 годин стоянки.
fee=yes

fee:conditional=no @ (stay < 2 hours)

Стоянка, плата починає стягуватись після 2 годин стоянки. Теж саме, що і в попередньому прикладі, але з іншим типовим значенням (має сенс, якщо якесь ПЗ не опрацьовує умовні обмеження, а сприймає лише типові значення).
amenity=parking

maxstay=1.5 hour

access:conditional=no @ (Su,PH)

Стоянка, де вам дозволено перебувати не більше ніж півтори години (з квитанцією про сплату) окрім неділі та святкових днів.
AU NSW no left turn conditional length.png type=restriction

restriction:conditional=no_left_turn @ (length > 6)

oneway=reversible

oneway:backward:conditional=yes @ (Mo-Fr 17:00-21:00)
oneway:forward:conditional=yes @ (Mo-Fr 07:30-10:00)

Дорога, напрямок руху по якій змінюється в залежності від часу доби.
oneway=yes

oneway:conditional=-1 @ (Mo-Fr 07:00-10:00)

Дорога з одностороннім рухом, яка змінює напрямок руху на протилежний в зазначений проміжк часу по буднях.
node 472125058 fee=yes

fee:conditional=no @ Monday

Доступ до об’єкту зазвичай є платиним окрім понеділка, може використовуватись до музеїв, а також для стоянок.
way 232081251 female=no

female=yes @ (7 Feb, 25 Mar)

Доступ в храм монастиря закритий для жінок окрім релігійних свят, визначених конкретними днями.
oneway=no + oneway:conditional=yes @ (Sa-Su;PH)

OR
oneway=yes + oneway:conditional=no @ (Mo-Fr;PH off)

Дороги рух на яких у вихідні та святкові дні стає одностороннім.
oneway=no + oneway:conditional=yes @ (Mo-Fr;PH off)

OR
oneway=yes + oneway:conditional=no @ (Sa-Su;PH)

Дороги з одностороннім рухом впродовж буднів, крім святкових днів.
type=restrictionrestriction:conditional=no_right_turn @ (Mo-Fr;PH off) Поворот праворуч заборонено впродовж буднів, крім святкових днів
Conditional time weight.png hgv:conditional=no @ (06:00-22:00 AND weight>5) Доступ вантажівкам понад 5т з 6:00 до 22:00 заборонений
Conditional turn.png type=restriction

restriction:conditional=no_u_turn @ (06:00-22:00)
except=moped;motorcycle;mofa

Розворот заборонено з 6:00 до 22:00 крім скутерів, мопедів та мотоциклів.

Застаріле теґування

Ці теґи використовувались до запровадження умовних обмежень. Зараз вони визнані застарілими і за можливості мають бути замінені поточною семою теґування умовних обмежень.

day_on=*, day_off=*, date_on=*, date_off=*, hour_on=*, hour_off=*

З типом використання

Поточна схема вважає теґи hov=*, emergency=*, hazmat=* та disabled=* умовою за типом використання (conditions), а не типом транспортних засобів (transportation modes). Такий підхід дозволяє створення комплексних обмежень, накшталт: access:conditional=destination @ (hazmat:A AND weight>7.5). Використання цих теґів у вигляді зазначення типу використання замість псевдо-транспортних засобів, таке теґування явним чином не вважається застарілим у цій схемі.

Дивіться також


Посилання