DE:Conditional restrictions

From OpenStreetMap Wiki
Jump to navigation Jump to search
Logo. Merkmal : Conditional restrictions
One example for Merkmal : Conditional restrictions
Beschreibung
Attributierung von bedingten Beschränkungen
Gruppe

Bedingte Beschränkungen

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 Vorschriftszeichen 1.svg mit beschränkenden Zusatztafeln sollte daher eine access-Beschränkung mit passender Fortbewegungsart (vehicle) gewählt werden, für Nederlands verkeersbord C17.svg 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:

  1. Speziellere Fortbewegungsart vor allgemeinerer Fortbewegungsart entsprechend der access Hierarchie.
    Beispiel: Ein zutreffender Wert in maxspeed:hgv:conditional hat höhere Priorität als ein zutreffender Wert in maxspeed:vehicle:conditional, weil vehicle allgemeiner als hgv in der Hierachie ist.
  2. Zutreffende richtungspezifische Beschränkung vor richtungsunabhängiger Beschränkung bei gleicher Fortbewegungsart.
  3. Beschränkung mit Bedingung vor Beschränkungen ohne Bedingung bei gleicher Fortbewegungsart.
    Beispiel: Bei maxspeed=80 und maxspeed:conditional=60 @ 07:00-18:00 gilt von 7 bis 18 Uhr aufgrund dieser Regel eine Beschränkung von 60 km/h.
  4. 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.

Ü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
Speedlimit120-timecondition.jpg 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).
Speed limit of 60 for HGV with weight more than 7.5t.jpg 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.
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

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 except buses and for loading.jpg 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').
Length and time restriction 2.jpg Lua error in Module:Languages at line 53: attempt to index local 'sourceTitle' (a nil value). 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
Motorcycle restriction conditional.png motor_vehicle:conditional=no @ (Sa,Su,PH) Für Motorräder an Wochenenden und Feiertagen verboten
Standgeräuschbeschränkung Motorräder.JPG

motorcycle:conditional=*

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.
UK motor restriction sign with exceptions.jpg motor_vehicle=no

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

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"
Hgv-no-overtaking-condition.jpg 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

oneway:bicycle=no

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'.
AU NSW no left turn conditional length.png Relation 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

Siehe auch