Pl:Ograniczenia warunkowe
Ograniczenia warunkowe (rodzaj=restrykcje_warunkowe) |
Restrykcje dotyczące długości i czasu. |
Opis |
Ograniczenia zależne od uwarunkowań. |
Kategoria: Ograniczenia |
Tagi |
W tym artykule opisano, jak oznaczać ograniczenia zależne od warunków.
Proste bezwarunkowe restrykcyjne znaczniki, takie jak access=private lub maxspeed=60 są powszechnie stosowane do znakowania podstawowych ograniczeń, takich jak ograniczenia prędkości do 60 km/h. Jeśli ograniczenie odnosi się tylko do niektórych kategorii pojazdów (lub rodzaju transportu) znacznik można rozszerzyć przez dodanie dodatkowych informacji do niego.
Przykłady obejmują oneway:bicycle=no i maxspeed:hgv=80.
Rodzaj transportu może być stosowany na własną rękę w tagu ograniczenia dostępu, który ma zastosowanie tylko do danego rodzaju transportu.
Przykład hgv=no zamiast access:hgv=no.
W niektórych przypadkach ograniczenia obowiązują tylko wtedy, gdy spełnione są określone warunki.
Przykładem może być obniżenie ograniczenia prędkości do 60 km/h między 6:00 a 20:00.
Według obecnego schematu, ten przykład może być oznaczony jako maxspeed:conditional=60 @ (06:00-20:00)
Opisany poniżej sposób tagowania wyjaśnia, jak dodać ograniczenia warunkowe do OpenStreetMap
Tagowanie
Sposób tagowania korzysta z tej samej składni, jak do normalnych bezwarunkowych tagów restrykcyjnych z następującymi różnicami:
Tag kończy się z przyrostkiem: :conditional
.
Wartość zawiera rzeczywistą wartość po znaku "@" i warunku.
Ogólna składnia znacznika jest następująca (pola w nawiasach kwadratowych [..] są opcjonalne):
<restriction-type>[:<transportation mode>][:<direction>]:conditional = <restriction-value> @ <condition>[;<restriction-value> @ <condition>]
W tagów dostępu, które są ograniczone do określonego rodzaju transportu, typ-ograniczenia access: jest zwykle pomijany.
<transportation mode>[:<direction>]:conditional = <restriction-value> @ <condition>[;<restriction-value> @ <condition>]
Znacznik
Klucz jest skonstruowany w taki sam sposób, jak klucze w przypadku przyjętych znaczników restrykcyjnych z dodatkowym przyrostkiem :conditional
.
Typ restrykcji
To może być dowolne typy ograniczenia, które mogą mieć ważność warunkową.
Typowymi przykładami są restrykcje: access=*, maxspeed=* i oneway=*.
Rodzaj ograniczenia powinien odzwierciedlać "główny" znak drogowy.
Dla tego znaku posiadającego dodatkowy znak określający warunek, typ znacznika powinien być access.
Z drugiej strony, dla znaku , typ ograniczenia powinien być maxlength (podobny do innych znaków z max<rozmiar>).
Rodzaj transportu
Ta część znacznika określa kategorię pojazdu lub rodzaj transportu którego ograniczenie dotyczy.
Na przykład bicycle, motor_vehicle, foot, agricultural.
Do opisu ograniczeń dostępu dozwolone jest używanie skróconej formy pomijającej access:
przed kategorią ograniczenia.
Na przykład motorcar
zamiast access:motorcar
.
Należy pamiętać, że wartość agricultural
oznacza typ pojazdu (zazwyczaj ciągniki lub maszyny specjalne o niskiej prędkości maksymalnej), a nie cel wykorzystania autostrady.
Zobacz Pl:Key:access#Ograniczenia związane z ruchem dla pełnej hierarchii rodzaju transportu.
Kierunek
Niektóre ograniczenia są zależne od kierunku ruchu. Używamy forward i backward, aby wskazać kierunek, którego dotyczą ograniczenia. Wartość zależy od kierunku, w którym droga jest rysowana w OpenStreetMap.
Wytyczne dotyczące sposobu identyfikacji są w Potlatch 2 a w celu uzyskania więcej informacji kliknij tutaj.
Wartość
Wartość zawierającą rzeczywiste ograniczenie jest po znaku @ i warunku. Dodajemy spację przed i po znaku @ w celu poprawienia czytelności.
Najczęściej tylko jedną wartość jest określona z odpowiednim warunkiem. W szczególnych przypadkach może być konieczne użycie dwóch lub więcej wartości – pary warunków. Takie wartości pary-warunków powinny być oddzielone średnikiem. Jedną z sytuacji, może być pewne, ograniczenie prędkości w określonych porach dnia, ale inne (niższe) ograniczenie prędkości w przypadku mokrej nawierzchni.
Zobacz Ocena sprzecznych ograniczeń poniżej, jak przedstawić kilka par wartości warunków.
Wartości ograniczeń
To są rzeczywiste wartości ograniczenia, np. yes, private, 80, 55 mph. Ograniczenie może być bezwzględne (yes, no, permissive i inne wartości, które mają zastosowanie do wszystkich), w zależności od celu użycia autostrady (destination, delivery, customer, forestry, agricultural itp.) lub według wyraźnej zgody (private, permit_holder).
Warunek
To pole określa warunek, do którego ograniczenie jest ważne. Można odróżnić różnego rodzaju warunki.
- Czas i data: Używamy standardowej składni znacznika opening_hours=*. Jeśli warunek czasu obejmuje średniki (";") poszczególne warunki muszą być otoczone nawiasami. Np. (Mo-Fr 07:00-19:00), (sunrise-sunset) lub (Jan-Mar).
- Stan drogi: Np. wet, snow. Należy zauważyć, że warunek wet odpowiada :wet, w przykładzie maxspeed:wet=*. Korzystanie z wet jako warunku jest zalecane w celu usprawnienia składni znaczników ograniczenia ("maxspeed:wet" została wprowadzona w czasie, gdy nie było właściwego sposobu znakowania warunkowych ograniczeń).
- Właściwości pojazdu: Niektóre przykłady właściwości: weight, axleload, length, width, height i draught (dla statków). Używamy względnych operatorów (<, >, =), aby określić warunek. Na przykład (weight<7.5).
- Użytkowania pojazdu: Ograniczenie zależy od tego jak pojazd jest używany, na przykład liczba osób lub ładunek. Przykłady: (occupants>1) (typowy warunek dla pojazdu używającego pas drogowy "hov"), hazmat (pojazd przewożący materiały niebezpieczne).
- Grupa użytkowników: ograniczenie odnosi się do konkretnej grupy użytkowników, np. doctor, disabled, emergency, female.
- Cel dostępu: Dla typów ograniczeń spodziewających się wartości liczbowej ograniczenia takich jak maxweight warunek może być celem-warunku-akcesu (destination, delivery itp.) lub typu zgody dla uprawnień (private itp).
Przykład: maxweight=2.5 + maxweight:conditional=none @ destination.
Z wyjątkiem bardzo prostych warunkach, takich jak "wet" or "Su" zaleca się ująć warunek w nawiasach.
Połączone warunki: AND
Dwa lub więcej częściowych warunków może być łączone za pomocą operatora AND.
Zaleca się, pisanie tego operatora dużymi literami w celu poprawienia czytelności. AND
oznacza, że oba częściowe warunki muszą być spełnione pod warunkiem zastosowania.
Przykład access:conditional=destination @ (Sa-Su AND weight>7).
Ograniczenia domyślne
Nie zawsze jest jasne, które ograniczenie mają zastosowanie, gdy warunek nie jest w pełni spełniony. W takich przypadkach powinno również zostać określone ograniczenie domyślne. Np. maxspeed=120 + maxspeed:conditional=100 @ (20:00-06:00).
W niektórych przypadkach może być przyjęte ograniczenie domyślnie, a nie musi być wyraźnie oznakowane. Dla wielu klas autostrad, nieokreślonych jednoznacznie, zakłada się access=yes.
Zobacz OSM_tags_for_routing/Access-Restrictions do domyslnych ograniczeń dostępu, dla różnych klas autostrad.
Ocena sprzecznych ograniczeń
Gdy obiekt ma dwa lub więcej różnych ograniczeń zarówno pasujących do danego ruchu oraz warunku, następujący algorytm decyduje który z nich jest ważny.
- Ograniczenie podające bardziej szczegółowy rodzaj transportu unieważnia mniej określony rodzaj transportu. Na przykład znacznik "psv" unieważnia znacznik dla "motor_vehicle" w przypadku publicznej pojazdu serwisowego. Zobacz Pl:Key:access#Ograniczenia związane z ruchem dla hierarchii rodzaju transportu.
- Kierunkowe ograniczenie unieważnia nie-kierunkowe ograniczenie dla tego samego rodzaju transportu.
- Warunkowe ograniczenie unieważnia nie-warunkowe ograniczenie dla tego samego rodzaju transportu i kierunku.
- W przypadku wielu pasujących par wartości-ograniczeń w tym samym znaczniku, ostatnia pasująca wartość staje się ostateczną wartością ograniczenia. Dlatego ważne jest, aby umieścić więcej ogólnych ograniczenia na początku i bardziej konkretne ograniczenie na końcu.
Oto kilka przykładów:
- (access=yes) + access:conditional=no @ (09:00-17:00); destination @ (09:00-17:00 AND disabled) umożliwi ruch docelowy dla osób niepełnosprawnych (końcowy warunek), a cały pozostały ruch nie jest dozwolony pomiędzy 9:00 a 17:00. Warunek czasowy musi być powtarzany również w drugiej wartości, w przeciwnym wypadku osoby niepełnosprawne będą miały dostęp wyłącznie w godzinach 17:00-9:00, podczas gdy wszystkie inne pojazdy miałyby dostęp ogólny.
- (maxspeed=none) + maxspeed:conditional=120 @ (06:00-20:00); 80 @ wet: Tu 80 dla wet będzie uchylało czasowe ograniczenia w przypadku mokrej nawierzchni.
- (access=no) + access:conditional=delivery @ (07:00-11:00); customer @ (07:00-17:00): Tu rzeczywiście nie ma konfliktu jako, że jedyna wartość może pasować (cel dostępu musi być zgodny w przypadku miejsca przeznaczenia, klienta, dostawy, terenu rolnego lub leśnego).
Przestarzałe tagi
Ten schemat podmienia następujące znaczniki jako przestarzałe, gdy są one wykorzystywane w połączeniu ze znacznikami restrykcyjnymi.
day_on=*, day_off=*, date_on=*, date_off=*, hour_on=*, hour_off=*
Sposoby według zastosowania
Obecny sposób traktuje o zastosowaniach w zależności od użycia hov=*, emergency=*, hazmat=* i disabled=* jako warunek, a nie jako rodzaj transportu. Pozwoli to na bardziej skomplikowane określenie ograniczeń takich jak access:conditional=destination @ (hazmat:A AND weight>7.5).
Zaleca się, aby oznaczyć rodzaje takie jak według użycia jako rzeczywiste warunki zamiast stosowania pseudo- rodzajów transportu chociaż takie znakowanie nie jest wyraźnie przestarzałe w tym schemacie.
Nie stosuje się do:
- Parking lane restrictions – jako że system pasów parkingowych zdefiniował własny sposób radzenia sobie z warunkami.
- Relation:restriction – ponieważ system oparty na relacji wymaga innego sposobu definiowania warunków.
Przykłady
Tagowanie | Interpretacja | Grafika |
---|---|---|
maxspeed=130 maxspeed:conditional=120 @ (06:00-19:00) |
Maksymalna prędkość ograniczona do 120 km/h w godzinach 6:oo-19:00 ale 130 km/h poza czasowym ograniczeniem (przykład dla holenderskiej autostrady). | |
maxspeed=none maxspeed:conditional=120 @ (06:00-20:00); 100 @ (22:00-06:00) |
Dwie warunkowe wartości maksymalnej prędkości ważne w różnych porach dnia (to jest prawdziwy przykład z autostrady w Niemczech). | |
highway=pedestrian motor_vehicle:conditional=delivery @ (Mo-Fr 06:00-11:00,17:00-19:00;Sa 03:30-19:00) |
Kompleksowy przykład z holenderskiego deptaku. Ruch dostawczy ("bevoorradingsverkeer") dozwolony w określonych odstępach czasu. Rowery ("fietsen") są dozwolone z wyjątkiem soboty 8:00-16:00 godz. Mofas i motorowery ("snor-en bromfietsen") nie są akceptowane. | |
access:conditional=destination @ (weight>5.5) | Pojazdów powyżej 5.5t są dopuszczone tylko dla ruchu docelowego. | |
maxweight=7.5 maxweight:bus=none maxweight:conditional=none @ delivery |
Ograniczenie maxweight jest zmienione na maxweight:bus (ponieważ zawiera bardziej określony rodzaj transportu) i przez maxweight:conditional (warunkowe ograniczenie samego rodzaju transportu – czyli nie określono – jako maxweight=). Dlatego maksymalną wagę 7,5t stosuje się do wszystkich pojazdów, z wyjątkiem autobusów i tych dostawczych ('delivery'). | |
motor_vehicle:conditional=no @ (10:00-18:00 AND length>5) | Ograniczenie dla pojazdów silnikowych dłuższych niż 5 m, w godzinach 10:00-18:00. | |
highway=tertiary motor_vehicle=no |
To jest egzekwowana-przez-kamerę "brama autobusowa"; przejazd pojazdów silnikowych jest zabroniony od 7:30 do 18:30, z wyjątkiem PSVs. Czas trzeba zmieniać (ponownie tak jak są przedstawione na znaku), jeśli chcemy użyć motor_vehicle=no jako rezerwę.
|
|
overtaking:hgv:conditional=no @ (Mo-Fr 06:00-19:00) | Wyprzedzanie nie jest dozwolone dla pojazdów ciężarowych w godzinach 6:00-19:00, w dni powszednie (przykład z holenderskiego autostrady) | |
oneway:conditional=yes @ Su |
Ulica jest jednokierunkowa w niedzielę, ale rowery mogą się poruszać w obu kierunkach przez cały czas. Drugi znacznik unieważnia znacznik warunkowy ze względu na specyficzny tryb transportu 'bicycle'. | |
maxspeed=80 maxspeed:hgv:conditional=60 @ (weight>7.5) |
Przykład warunkowego ograniczenia prędkości ma zastosowanie do konkretnego rodzaju transportu. |
Zobacz też
- Proposed_features/Conditional_restrictions: Zatwierdzona propozycja.