Uk:Conditional restrictions
Обʼєкт : 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 має збігатись з "основним" дорожнім знаком. Знак , за наявності додаткової таблички позначається за допомоги ключа access. З іншого боку, знак позначається за допомоги ключа 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", де докладно пояснюється як його визначати.
Значення
Значення складається з самого обмеження, символу @ та умови. Символ @ відокремлюється пробілами.
Переважно зазначається одне значення обмеження з відповідними умовами. У виняткових випадках може використовуватись дві або більше пар значення-умова. Такі пари значення @ умова розділяються крапкою з комою ;
. Таким випадком може бути обмеження швидкості в певний час доби , а іншим – обмеження швидкості під час дощу . Дивіться Суперечливі обмеження нижче, щоб зрозуміти як поводитись в таких випадках.
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. - Дорожні умови: Наприклад, wet, snow. Варто зазначити, що також умова wet також відповідає суфіксу :wet – maxspeed: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 для ознайомлення з типовими обмеженнями для доріг різних класів. Однак буває досить корисним позначати типові обмеження в явній формі разом із використанням умовних обмежень.
Аналіз суперечливих обмежень
Коли об’єкт має два або більше різних обмеження, які відповідають типу траспортного засобу та умовам, наступний алгоритм визначає, яке з них застосовується.
- Обмеження, що має більш конкретний опис траспортного засобу, замінює більш загальні визначення. Напр. теґ "psv" переважає "motor_vehicle" у випадку з громадським транспортом. Див Uk:Key:access#Обмеження за типами пересування для ознайомлення зі всією ієрархією типів пересування та траспортних засобів.
- Обмеження за напрямком переважає обмеження, в яких напрямок не зазначений для тих самих траспортних засобів.
- Умовні обмеження переважають безумовні обмеження для тих самих транспортних засобів та напрямку руху.
- Обмеження руху по смугах, аналізуються для кожної смуги окремо, та мають перевагу над загальними обмеженнями для тих самих траспортних засобів (для умовних та за напрямком дії)
- Умовні обмеження руху по смугах, аналізуються для кожної смуги окремо, та мають перевагу над безумовними обмеженнями, вказаними для кожної смуги.
- У випадку збігу з кількома умовами значення @ умова для того ж самого теґу, використовується остання умова. Тому важливо на перше місце поставити більш загальне обмеження, а на останнє – більш конкретне. Приклади:
- (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).
Не використовується для:
- Зазначення обмежень на стоянку вздовж доріг, зазначення обмежень для стоянки вздовж доріг маж власну схему опису умов.
Приклади
Фото | Теґи | Опис |
---|---|---|
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) |
Поворот ліворуч заборонений в будні з 7:00 до 9:00 та з 14:00 і до 21:00. Поворот ліворуч заборонений в будні з 7:00 до 9:00 та з 14:00 і до 21:00. | |
type=restriction restriction:conditional=no_left_turn @ (07:00-09:00,15:30-17:30) |
Поворот ліворуч заборонено з 7:00 до 9:00 та між 15:30 та 17:30, для всіх крім велосипедистів. Поворот ліворуч заборонено з 7:00 до 9:00 та між 15:30 та 17:30, для всіх крім велосипедистів. | |
maxspeed=none maxspeed:conditional=120 @ (06:00-20:00); 100 @ (22:00-06:00) |
Два обмеження швидкості діють в різні проміжки часу (приклад з автобану в Німеччині). | |
highway=pedestrian motor_vehicle:conditional=delivery @ (Mo-Fr 06:00-11:00,17:00-19:00;Sa 03:30-19:00) |
Складний приклад для пішохідної зони в Голандії. Доставка вантіжів ("bevoorradingsverkeer") дозволена у певні проміжки часу. Рух велосипедів ("fietsen") дозволений крім проміку часу з 8:00 до 16:00 в суботу. Рух мопедами та скутерами ("snor- en bromfietsen") заборонений. | |
access:conditional=destination @ (weight>5.5) | Рух траспортних засоби масою вище 5.5 тон дозволений лише для доставки вантажів в місці дії обмеження. | |
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. | |
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:conditional=no @ (Sa,Su,PH) | Рух мотоциклів заборонений по вихідних та святкових днях. | |
highway=tertiary motor_vehicle=no |
Проїзд для автобусів (ворота) який контролюється камерою спостереження; доступ механічних траспортних засобів заборонений з 7:30 до 18:30, окрім громадського транспорту. Якщо ви бажаєте використовувати типове значення motor_vehicle=no, час має бути змінений відповідно. | |
overtaking:hgv:conditional=no @ (Mo-Fr 06:00-19:00) | Обгін вантажівками забороненний з 6:00 до 19:00 по буднях. | |
oneway:conditional=yes @ Su |
Рух на вулиці стає одностороннім у неділю, проте це не стосується велосипедистів. Другий теґ має перевагу над умовним обмеження, через тещо він стосується конкретних траспортних засобів (велосипедів). | |
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) |
Стоянка, де вам дозволено перебувати не більше ніж півтори години (з квитанцією про сплату) окрім неділі та святкових днів. | |
type=restriction
restriction:conditional=no_left_turn @ (length > 6) | ||
oneway=reversible
oneway:backward:conditional=yes @ (Mo-Fr 17:00-21:00) |
Дорога, напрямок руху по якій змінюється в залежності від часу доби. | |
oneway=yes
oneway:conditional=-1 @ (Mo-Fr 07:00-10:00) |
Дорога з одностороннім рухом, яка змінює напрямок руху на протилежний в зазначений проміжк часу по буднях. | |
472125058 472125058 | fee=yes
fee:conditional=no @ Monday |
Доступ до об’єкту зазвичай є платиним окрім понеділка, може використовуватись до музеїв, а також для стоянок. |
232081251 232081251 | female=no
female=yes @ (7 Feb, 25 Mar) |
Доступ в храм монастиря закритий для жінок окрім релігійних свят, визначених конкретними днями. |
oneway=no + oneway:conditional=yes @ (Sa-Su;PH)
OR |
Дороги рух на яких у вихідні та святкові дні стає одностороннім. | |
oneway=no + oneway:conditional=yes @ (Mo-Fr;PH off)
OR |
Дороги з одностороннім рухом впродовж буднів, крім святкових днів. | |
type=restrictionrestriction:conditional=no_right_turn @ (Mo-Fr;PH off) | Поворот праворуч заборонено впродовж буднів, крім святкових днів | |
hgv:conditional=no @ (06:00-22:00 AND weight>5) | Доступ вантажівкам понад 5т з 6:00 до 22:00 заборонений | |
type=restriction
restriction:conditional=no_u_turn @ (06:00-22:00) |
Розворот заборонено з 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). Використання цих теґів у вигляді зазначення типу використання замість псевдо-транспортних засобів, таке теґування явним чином не вважається застарілим у цій схемі.
Дивіться також
- Proposed features/Conditional restrictions: The approved proposal.
- Proposed features/temporary (conditional): For roads closed due to temporary construction etc.
- CyclOSM Render bicycle conditional access on road or path at zoom 20 (example)
- Sophox query returning inputs to conditional turn restrictions
|