DE:Conditional restrictions
Merkmal : Conditional restrictions |
Beschreibung |
Attributierung von bedingten Beschränkungen |
Gruppe |
Attribute |
Diese Seite beschreibt die Attributierung von Beschränkungen, die nur unter bestimmten Bedingungen (beispielsweise Zeit, Fahrzeugtyp, Datum) gültig sind.
Für Beschränkungen existieren bereits häufig verwendete Schlüssel wie access=* oder maxspeed=*. Damit können einfache Zutrittsbeschränkungen (access=private) oder Geschwindigkeitsbeschränkungen (maxspeed=60) in Karten erfasst werden.
Für Beschränkungen, die nur für bestimmte Fortbewegungsarten gelten, wurde mit dem Anhängen dieser Information an den Schlüssel bereits eine allgemein akzeptierte Lösung gefunden. Beispiele sind oneway:bicycle=no und maxspeed:hgv=80. Bei Zutrittsbeschränkungen wird access
weggelassen, und direkt die Fortbewegungsart als Schlüssel verwendet: hgv=no statt access:hgv=no. Diese Schlüssel gelten weiterhin und werden von diesem Schema nicht beeinflusst.
Es gibt allerdings auch Beschränkungen, die von anderen Faktoren wie Zeit, Datum oder Straßenbedingung abhängen - und insbesondere auch von Kombinationen dieser Faktoren. Ein Beispiel ist eine Geschwindigkeitsbeschränkung von 60 km/h, die nur für LKWs von 6-20 Uhr gilt. Das hier vorgestellte Schema erklärt nun im Detail, wie allgemeine Beschränkungen in OpenStreetMap erfasst werden können.
- Für das Beispiel ergibt sich nach diesem Schema folgendes Attribut:
maxspeed:hgv:conditional=60 @ (06:00-20:00)
Attributierung
Dieses Schema benutzt den Aufbau von Attributen für unbedingte Beschränkungen bzw. Beschränkungen für bestimmte Fahrzeugtypen, mit folgenden Unterschieden:
- Dem Schlüssel wird
:conditional
angehängt - Dem Wert wird das Zeichen '@', sowie die Beschreibung der Bedingung angehängt
Formeller ausgedrückt bestehen Schlüssel und Wert bei bedingten Beschränkungen aus (die Teile in eckigen Klammern sind optional):
Beschränkungstyp[:Fortbewegungsart][:Richtung]:conditional = Beschränkungswert @ Bedingung[; 2. Beschränkungswert @ 2. Bedingung]...
Wie bisher üblich, wird bei Zugangsbeschränkungen der Beschränkungstyp access
üblicherweise weggelassen:
Fortbewegungsart[:Richtung]:conditional = Beschränkungswert @ Bedingung[; 2. Beschränkungswert @ 2. Bedingung]...
Schlüssel
Die Schlüssel für bereits verwendete Beschränkungen (maxspeed
, access
...) und für bedingte Beschränkungen sind in gleicher Weise aufgebaut, nur mit zuätzlichem :conditional
-Suffix:
- Beschränkungstyp als Grundschlüssel
- Optional die Fortbewegungsart, für die eine Beschränkung gilt (getrennt durch
:
) - Optional die Richtung, in die eine Beschränkung gilt (getrennt durch
:
)
Im Detail:
Beschränkungstyp
Der Beschränkungstyp im ersten Teil des Schlüssels kann jede Beschränkung mit bedingten Werten bzw. Gültigkeit sein. Geläufige Bespiele sind:
Wenn Beschränkungen durch Verkehrszeichen angezeigt werden, dann sollte sich der Beschränkungstyp am eigentlichen 'Haupt'-Zeichen und nicht an Zusatztafeln (wie nur für Fahrzeuge über 10m Länge) orientieren. Für ein Verkehrsschild mit beschränkenden Zusatztafeln sollte daher eine access-Beschränkung mit passender Fortbewegungsart (vehicle
) gewählt werden, für hingegen maxlength.
Hinweis: Bei Verwendung einer Fortbewegungsart im Schlüssel kann access:
als Beschränkungstyp weggelassen werden. Aus access:motor_vehicle:conditional
wird der verkürzte Schlüssel motor_vehicle:conditional=*.
Fortbewegungsart
Mit diesem Schlüssel-Teil kann die Beschränkung auf einen bestimmte Fortbewegungsart (z.B. foot) bzw. Fahrzeugtypen (z.B. bicycle, motor_vehicle, agricultural) eingeschränkt werden. Für die vollständige Hierarchie von Fortbewegungsarten siehe Key:access#Transport mode restrictions.
Für Zutrittsbeschränkungen (access) kann die verkürzte Form ohne vorhergehendes access:
verwendet werden (motorcar statt access:motorcar).
Bemerkung: Wird agricultural im Schlüssel verwendet, dann gilt die Beschränkung nur für landwirtschaftliche Fahrzeuge (also für Traktoren oder Spezialmaschinen, oft mit geringer Höchstgeschwindigkeit). Für eine Beschränkung auf landwirtschaftlichen Verkehr (=Zweck der Fahrt) muss hingegen der Beschränkungswert agricultural sein.
Richtung
Manche Beschränkungen sind richtungsabhängig. Die Angabe forward
(engl. vorwärts) und backward
(engl. rückwärts) geben an, in welche Richtung eine Beschränkung gilt. Bei forward
gilt die Beschränkung in Richtung des in OpenStreetMap gezeichneten Weges ('Way'), bei backward
entgegengesetzt. Für mehr Informationen siehe Forward & backward(de).
Wert
Der Wert setzt sich zusammen aus
- dem Beschränkungswert (entsprechend den Festlegungen des Beschränkungstyps/Schlüssels),
- dem
@
Zeichen sowie - der Bedingung.
Vor und nach dem @
Zeichen wird zur besseren Lesbarkeit je ein Leerzeichen eingefügt.
Wenn in komplexeren Fällen ein einzelner Wert mit Bedingung nicht ausreicht, dann können durch einen Strichpunkt ';
' getrennt, mehrere Wert/Bedingungs-Paare aufgelistet werden. Ein Beispiel dafür wäre ein Geschwindigkeitslimit, dass nur zu bestimmten Zeiten gilt, und davon unabhängig auch bei nasser Fahrbahn ('wet'). Um Mehrdeutigkeiten auszuschließen, gibt es im Abschnitt Auswertung bei mehreren bedingten Beschränkungen genauere Angaben zur notwendigen Reihenfolge.
Beschränkungswert
Der Beschränkungswert ist ein gültiger Wert der Beschränkung ohne Bedingung, also beispielsweise yes oder private bei einer access
Beschränkung, 80 oder 55 mph bei einer maxspeed
Beschränkung. Entsprechend den Festlegungen von Beschränkungen können die Werte daher absolut und für jeden gültig sein (yes, no, permissive) oder beispielsweise vom Zweck der Verwendung (motor_vehicle=destination, delivery, customer, forestry, agricultural) oder von Genehmigungen (private, permit_holder) abhängen.
Bedingung
Nach dem '@' Zeichen folgt die Bedingung, unter der die angegebene Beschränkung gilt. Zahlreiche Faktoren können in einer Bedingung berücksichtigt werden:
- Zeitabhängigkeit: Für Zeitangaben, Datumsbereiche und andere zeitabhängige Angaben wird die Schreibweise von opening_hours=* verwendet. Wird ein Strichpunkt (";") benötigt, so sollte die Bedingung in Klammern gesetzt werden, um Missverständnisse bei der Auswertung zu vermeiden.
Beispiele für zeitabhängige Bedingungen: (Mo-Fr 07:00-19:00), (sunrise-sunset) oder (Jan-Mar). - Straßenzustand/Wetter: Beispiele: wet, snow.
Hinweis: Vor der Einführung und Akzeptanz dieses Schemas war bereits die Schlüssel-Erweiterung :wet vorgeschlagen und fallweise auch in Verwendung, typischerweise in maxspeed:wet=*. Um die Anzahl an Schlüsselerweiterungen gering zu halten, wird heute die Verwendung in der Bedingungs-Schreibweise per :conditional-Schema empfohlen. Die Bedeutung ist identisch. - Fahrzeugeigenschaften: Beispiele für Eigenschaften sind Gewicht (weight), Achslast (axleload), Länge (length), Breite (width), Höhe(height) and Tiefgang eines Schiffs (draught). Mit Vergleichsoperatoren (<, >, =) können die Bedingungen formuliert werden, beispielsweise (weight<7.5).
Hinweis: Bei Verkehrsschildern wird zwar zwischen Gesamtgewicht (inklusive Ladung) und dem "Höchstzulässigen Gesamtgewicht" (in den Fahrzeugpapieren) unterschieden, beide Angaben werden bisher mit "weight" formuliert. Für mehr Informationen zu den unterschiedlichen Gewichtsangaben und einem alternativen Vorschlag siehe Proposed features/gross weight (englisch). - Passagiere und Beladung: Die Einschränkung hängt von der Verwendung des Transportmittels ab, wie die Anzahl der Passagiere oder der Beladung. Beispiele: (occupants>1) kann bei Fahrspuren für Fahrgemeinschaften eingesetzt werden, hazmat bei Einschränkungen für Gefahrenguttransporte.
- Benutzergruppe: Für Bedingungen die sich auf Personengruppen beziehen: doctor für Ärzte, disabled für Behinderte, male für Männer und female für Frauen. emergency gilt für Einsatzfahrzeuge.
- Transport-/Fahrtzweck: Sonderfall für Beschränkungstypen, die einen nummerischen Wert benötigen (Beispiel maxweight): In diesem Fall kann die Bedingung auch die Beschränkungswerte für den Zweck der Verwendung (destination, delivery...) oder Genehmigungen (private, etc) enthalten, die sonst im Beschränkungswert festgelegt sind. Beispiel: maxweight=2.5 + maxweight:conditional=none @ destination.
- Anmerkung:
- Mit Ausnahme von sehr einfachen Bedingungen wie "wet" oder "Su" sollte die Bedingung - sowohl für bessere Lesbarkeit als auch für eine einfachere Auswertung durch Anwendungen - in Klammern
( )
geschrieben werden.
Kombination mehrerer Faktoren: AND
Müssen mehrere Faktoren gleichzeitig gelten (beispielsweise eine Bedingung, die von Zeit und Fahrzeugeigenschaft abhängt), so können mehrere Teilbedingungen mit AND
verbunden werden. Der Bedingungswert gilt nur dann, wenn alle mit AND
verbundenen Teilbedingungen zutreffen.
Großschreibung für AND
ist zur besseren Lesbarkeit empfohlen.
Beispiel: access:conditional=destination @ (Sa-Su AND weight>7): Nur wenn sowohl das Fahrzeuggewicht als auch der Wochentag stimmen, ist der Zutritt oder die Zufahrt auf destination
beschränkt.
Standardwert - wenn keine Bedingung zutrifft
Es ist nicht immer klar, welcher Beschränkungswert gilt, wenn keine Bedingung zutrifft. In solchen Fällen sollte ein Standardwert mit Hilfe des Schlüssel ohne :conditional
festgelegt sein.
Beispiel: maxspeed=120 (Standardwert) + maxspeed:conditional=100 @ (20:00-06:00). Ohne Standardwert wäre unklar, welche Beschränkung in der Zeit von 6-20h gilt.
Wenn ein Standardwert implizit festgelegt ist, kann auf die explizite Angabe eines Standardwerts verzichtet werden. Für viele Straßenkategorien gilt beispielsweise ein implizites access=yes, siehe OSM_tags_for_routing/Access-Restrictions, auch wenn keine Attribute angegeben sind. In solchen Fällen genügt beispielsweise access:conditional=no @ (20:00-06:00) ohne Standardwert.
Auswertung bei mehreren bedingten Beschränkungen
Wenn für ein Objekt mehrere bedingte Beschränkungen vorhanden sind (im Wert selbst oder in mehreren :conditional
Schlüsseln) - und in einer bestimmten Situation (Verkehrsmittel, Zeit, ...) mehr als ein Wert zutrifft, dann gelten folgende Regeln für die Auswertung:
- Speziellere Fortbewegungsart vor allgemeinerer Fortbewegungsart entsprechend der
access
Hierarchie.
Beispiel: Ein zutreffender Wert inmaxspeed:hgv:conditional
hat höhere Priorität als ein zutreffender Wert inmaxspeed:vehicle:conditional
, weilvehicle
allgemeiner alshgv
in der Hierachie ist. - Zutreffende richtungspezifische Beschränkung vor richtungsunabhängiger Beschränkung bei gleicher Fortbewegungsart.
- Beschränkung mit Bedingung vor Beschränkungen ohne Bedingung bei gleicher Fortbewegungsart.
Beispiel: Beimaxspeed=80
undmaxspeed:conditional=60 @ 07:00-18:00
gilt von 7 bis 18 Uhr aufgrund dieser Regel eine Beschränkung von 60 km/h. - Es gilt der letzte zutreffende Wert innerhalb einer bedingten Beschränkung. Wegen dieser Regel ist es wichtig, Werte mit den allgemeineren Bedingungen vor jene mit spezielleren Bedingungen aufzulisten. Beispiele:
- (maxspeed=none) + maxspeed:conditional=120 @ (06:00-20:00); 80 @ wet: Bei nasser Fahrbahn von 6 bis 20 Uhr gilt nach dieser Regel 80 km/h und nicht 120 km/h.
- (access=yes) + access:conditional=no @ (09:00-17:00); destination @ (09:00-17:00 AND disabled) erlaubt von 9 bis 17 Uhr behinderten Personen den Zugang oder die Zufahrt zum Ziel (letzte zutreffende Bedingung), obwohl der erste Wert ('no') ebenfalls die Bedingung erfüllt. Hinweis: Die Angabe
destination @ disabled
(ohne Zeit) würde von 17 bis 9 Uhr behinderten Personen nur 'destination' erlauben, während nicht behinderte Personen uneingeschränkten Zutritt hätten. - (access=no) + access:conditional=delivery @ (07:00-11:00); customer @ (07:00-17:00): Hier gibt es keinen Konflikt, da nur einer der beiden Werte zutreffen kann (bei den Werten destination, customer, delivery, agricultural und forestry muss der Zugangsgrund passend sein).
Andere Verwendungen von Bedingungen
Über die Jahre sind auch Keys in Nutzung gekommen, die keine Beschränkungen beschreiben, z.B.
- interval:conditional=*
- duration:conditional=*
- cycleway:left:conditional=*
- traffic_sign:conditional=*
- route:conditional=*
Überholte Attribute
Mit diesem Schema werden folgende Attribute nicht mehr benötigt und gelten als überholt: day_on=*, day_off=*, date_on=*, date_off=*, hour_on=*, hour_off=*
Nicht mehr empfohlene Fortbewegungsarten
Das vorliegende Schema behandelt Zufahrtsbeschränkungen, die von der Nutzungsart abhängen, also hov=*, emergency=*, hazmat=* und disabled=*, nicht mehr als Fortbewegungsart, sondern als Bedingungen. Z.B. access:conditional=destination @ (hazmat:A AND weight>7.5)
statt hazmat:A:conditional=destination @ (weight>7.5)
. Obwohl dieses Schema die Benutzung in der Bedingung (:conditional
) empfiehlt, gelten Schlüssel mit diesen "Pseudo-"Fortbewegungsarten (insbesondere ohne weitere Bedingung) nicht als überholt.
Wird nicht verwendet bei:
- Abbiegebeschränkungen, weil Relationen einen anderen Ansatz für die Beschreibung von Bedingungen benötigen.
Beispiele
Foto | Attributierung | Interpretation |
---|---|---|
maxspeed=130 maxspeed:conditional=120 @ (06:00-19:00) |
Geschwindigkeitsbeschränkung von 120 km/h gilt nur von 6-19 h, ansonsten gilt 130 km/h (Autobahn in den Niederlanden). | |
maxspeed=none maxspeed:conditional=120 @ (06:00-20:00); 100 @ (22:00-06:00) |
Zwei zeitabhängige Geschwindigkeitsbeschränkungen am gleichen Tag (reales Beispiel aus Deutschland). | |
maxspeed=80 maxspeed:hgv:conditional=60 @ (weight>7.5) |
Zusätzliche Geschwindigkeitsbeschränkung für bestimmte Fahrzeuge, hier 60 km/h für LKW über 7,5 to. | |
highway=pedestrian motor_vehicle:conditional=delivery @ (Mo-Fr 06:00-11:00,17:00-19:00;Sa 03:30-19:00) |
Komplexes Beispiel von einer niederländischen Fußgängerzone. Lieferverkehr ("bevoorradingsverkeer") ist in bestimmten Zeitfenstern an bestimmten Tagen erlaubt. Fahrräder ("fietsen") sind erlaubt, außer Samstags von 8-16 h. Mofas und Mopeds ("snor- en bromfietsen") sind nicht erlaubt. | |
vehicle:conditional=destination @ (weight>5.5) | Fahrzeuge über 5.5t dürfen einfahren, wenn das Fahrtziel im betroffenen Bereich liegt. | |
maxweight=7.5 maxweight:bus=none maxweight:conditional=none @ delivery |
There is a maxweight restriction which is overruled by maxweight:bus (as this includes a more specific transportation mode) and by maxweight:conditional (a conditional restriction of the same transportation type - i.e. none specified - as maxweight=). Therefore the maximum weight of 7.5t applies to all vehicles except buses and those loading ('delivery'). | |
motor_vehicle:conditional=no @ (10:00-18:00 AND length>5) | Kraftfahrzeuge über 5 m Länge sind nicht gestattet zwischen 10:00 und 18:00 | |
motor_vehicle:conditional=no @ (2018 May 22-2018 Oct 7) | gesperrter Straßenabschnitt für "motor_vehicle" (z.B. wegen einer Baustelle) für einige Monate. Die Navigation sollte ab dem Tag der Baustellenfreigabe wieder funktionieren und zwar auch für Karten die während des Bauphase erstellt wurden | |
motor_vehicle:conditional=no @ (Sa,Su,PH) | Für Motorräder an Wochenenden und Feiertagen verboten | |
motorcycle:conditional=no @ (Apr 14-Oct 31 AND stationary_noise>95) |
Vom jeweils 14. April bis Ende Oktober dürfen Motorräder, welche ein Standgeräusch (stationary noise) von mehr als 95 dB(A) aufweisen, diese Strecke nicht befahren. | |
motor_vehicle=no motor_vehicle:conditional=yes @ (18:30-07:30) |
This is a camera-enforced "bus gate"; motor vehicles are prohibited from 07:30 to 18:30 except for PSVs. Times need to be switched around (against as they appear on the sign) if you want to use motor_vehicle=no as a fallback | |
access:conditional=no @ winter oder access:conditional=no @ Oct-Mar | Kein Zugang im "Winter" oder von "Oktober bis März" | |
overtaking:hgv:conditional=no @ (Mo-Fr 06:00-19:00) | Überholverbot für LKW Montag bis Freitag zwischen 06:00 und 19:00 (Beispiel einer niederländischen Autobahn) | |
oneway:conditional=yes @ Su |
Street is oneway on Sundays but bicycles may use it in both directions at all times. The second tag overrules the conditional tag because of the specific transportation mode 'bicycle'. | |
type=restriction
restriction:conditional=no_left_turn @ (length>6) |
Abbiegebeschränkung (DE:Relation:restriction): Linksabbiegeverbot für Fahrzeuge mit einer Länge von über 6 m |