DE:User:Ömmes/Wayparts
please change curb to kerb
and remove this afterwards. Curb is American English, we agreed to use British English for ease of editing (not having to wonder which way it is).
Ziel von Wayparts
Wayparts sollen es ermöglichen, einen Weg nicht nur anhand der Position, Funktion etc. zu definieren, sondern auch dessen Unterteilung zu erfassen. Diese Teile sind ein normaler Fahrstreifen, Fahrradweg, Fußweg/Bürgersteig, Parkstreifen usw. Jedem Weg können so viele Teile hinzugefügt werden wie nötig. Jeder waypart kann anhand bekannter Tags genauer beschrieben werden: access, width, divider usw.
Um wayparts flexibel zuweisen zu können, werden diese als Relationen angelegt. Es gibt Relationen vom Typ "waypart" für einen einzelnen Teil und "wayparts", um mehrere Teile in 1 Relation gesammelt zu definieren.
Jede Relation benötigt mindestens ein Mitglied, nämlich den Weg, zu dem sie gehört. Zusätzlich kann ein Start- und Endpunkt (Node) angegeben werden. Damit besteht die Möglichkeit, einen Weg in mehrere Bereiche zu teilen, ohne diesen in 2 Wege trennen zu müssen; so kann ein Weg z. B. mit 2 Teilen starten, aber der Mitte dann mit 3 fortgeführt werden. Ebenso können mehrere aneinanderhängende Wege einer Relation zugewiesen werden, deren Startpunkt ein Node des ersten Wegs und der Endpunkt im letzten Weg liegt. Wayparts sind also nicht auf Beginn und Ende eines Weges begrenzt.
Wayparts erfassen
Jeder Teil eines Weges - ein waypart - erhält eine Nummer, die die Position angibt. Positivie Zahlen stehen für vorwärts, negative für rückwärts gerichtete Teile.
Eine wayparts-Relation wird verwendet, um die Hauptspuren/-wegteile anzugeben, also i. d. R. Teile, die über eine größere Entfernung bestehen. Ein einzelner waypart kann weitere, zusätzliche Teile ergänzen.
Beispiel: Eine Autobahn mit 2 Fahrstreifen und einigen Ausfahrten. Die beiden Hauptspuren werden in einer wayparts-Relation angegeben, jede Verzögerungs- oder Beschleunigungsspur als waypart unter Angabe des Start- und Endpunkts.
waypart-Relation (einzelner Teil)
Eigenschaften/Tags
Schlüssel | Erforderlich | Wert | Erklärung |
---|---|---|---|
type |
ja | waypart | Immer "waypart" |
part |
ja | Nummer/Text | Positive (vorwärts) oder negative (rückwärts) Number. Die Nummer kann durch Buchstaben oder Dezimalstellen ergänzt werden, z. B. 1, 1.2, -1, -1b. |
parttype |
nein | Text | In der Regel ein Wert wie beim highway-Tag, z. B. cycleway, footway. Wenn nicht angegeben, sollte der highway-Wert des Weges übernommen werden. Es sind auch andere Werte möglich wie etwa "gras_strip" für einen Gras-/Grünstreifen. |
divider |
nein | Text | Trenner des Teils; zur Mitte des Weges hin. Beispiele: line, doubbleline, dash, doubbledash, curb, none |
outer_divider |
nein | Text | Wie divider, aber zur äußeren Seite des Weges hin. |
(outer_)divider:width |
nein | Text | Breite des Trenners in Metern |
(outer_)divider:crossable |
nein | Text | yes, no oder Liste von access-Angaben (z. B. "foot;bicycle"). Für gebräuchliche Trenner wie z. B. eine durchgezogene Linie sollte ein Wert implizit vorgegeben sein, sodass dieser nicht jedes Mal angegben werden muss (es sei denn, er weicht ab). |
direction |
nein | Text | Angabe der Richtung: oneway, opposite, both, variable. Standard ist "oneway" außer für Fußwege.
Die Richtung ist relativ zur Angabe von Start- und Endpunkt (siehe unten). Vorwärts-Teile zeigen also vom Start- zum Endpunkt, Rückwärts-Teile vom End- zum Startpunkt, standardmäßig als "Einbahnweg" (oneway). Ein rückwärtiger Gegenrichtungs-Teil ("opposite backward part") kann z. B. vom Start- zum Endpunkt befahren werden. |
direction_hint |
nein | Text | Hinweis auf die Richtung des Fahrstreifens/Teils: left, right, straight on, half left, half right etc. Könnte zum Beispiel als Pfeil angezeigt werden. |
destination |
nein | Text | Zielangabe(n) der Spur (was auf dem zugehörigen Straßenschild als Ziel(e) angegeben ist). |
width |
nein | Nummer | Breite des Teils in Metern |
andere Tags für Wege | nein | access, surface usw. |
Mitglieder
wayparts-Relation (ein oder mehrere Teile)
In einer wayparts-Relation werden ein oder mehrere Teile für einen Weg angegeben. Die einfachste Verwendung ist, eine Zahl für den Tag parts
anzugeben.
Einzelne Teile können mit partX
und part-X
angegeben werden, wobei X die Nummer des Teils ist. Weitere Eigenschaften/Tags können als partX:key
und part-X:key
angegeben werden.
Eigenschaften/Tags
Schlüssel | Erforderlich | Mehrfach | Wert | Erklärung |
---|---|---|---|---|
type |
ja | nein | wayparts | Immer "wayparts" |
parts |
ja, wenn keine Teile einzeln definiert sind | nein | Nummer | Anzahl automatisch generierter Teile. Hilfreich, um Teile mit gleichen Eigenschaften anzugeben. Die Anzahl wird in Vorwärts- und Rückwärts-Teile getrennt. Bei gerader Anzahl, gibt es gleich viele Vorwärts- und Rückwärts-Teile, bei ungerader Anzahl 1 Vorwärts-Teil mehr. |
parts:forward |
nein | nein | Nummer | Anzahl auomatisch generierter Vorwärts-Teile. (Überschreibt den aus parts errechneten Wert.)
|
parts:backward |
nein | nein | Nummer | Anzahl auomatisch generierter Rückwärts-Teile. (Überschreibt den aus parts errechneten Wert.)
|
keys... |
nein | ja | Text | Weitere (Standard-)Eigenschaften/Tags für alle Teile.
Mögliche sind die gleichen Angaben wir bei einem einzelnen waypart ( |
partX |
nein | ja | Text | Die Art des Vorwärts-Teils Nummer X. In der Regel ein Wert wie beim highway-Tag, z. B. cycleway, footway. Wenn nicht angegeben, sollte der highway-Wert des Weges übernommen werden. Es sind auch andere Werte möglich wie etwa "gras_strip" für einen Gras-/Grünstreifen. |
part-X |
nein | ja | Text | Die Art des Rückwärts-Teils Nummer X. In der Regel ein Wert wie beim highway-Tag, z. B. cycleway, footway. Wenn nicht angegeben, sollte der highway-Wert des Weges übernommen werden. Es sind auch andere Werte möglich wie etwa "gras_strip" für einen Gras-/Grünstreifen. |
partX:keys... |
nein | ja | Text | Weitere (Standard-)Eigenschaften/Tags für Vorwärts-Teil Nummer X.
Mögliche sind die gleichen Angaben wir bei einem einzelnen waypart ( |
part-X:keys... |
nein | ja | Text | Weitere (Standard-)Eigenschaften/Tags für Rückwärts-Teil Nummer X.
Mögliche sind die gleichen Angaben wir bei einem einzelnen waypart ( |
Mitglieder
Beispiele
Schnellstraßenabfahrt
| E | <==============]|[======== a, b, c, d: Nodes ]D[ ==a=====b== A =]|[=======> A, B, C, D, E: Ways \_____ | B \ C \| c | d | |
Way A
highway=trunk, oneway=yes
Way B highway=trunk_link, oneway=yes
Way D highway=primary, bridge=yes, layer=1
part=3
Rolle | Element |
---|---|
start |
Node a |
way |
Way A |
end |
Node b |
to |
Relation 3 (or Way B) |
Autobahnabfahrt (Live-Beispiel)
An der Autobahnabfahrt A 2/B 239 "Herford/Bad Salzuflen" habe ich wayparts eingetragen, diese sind im Changeset 3125502 zu finden.
http://www.openstreetmap.org/?lat=52.0914&lon=8.6951&zoom=13
Wenn dieser Bereich in JOSM geladen wird, sollte er mit dem Wayparts plugin etwa so aussehen:
JOSM-Plugin
Das JOSM-Plugin für Wayparts ist noch in einem sehr frühen Entwicklungsstadium, es darf aber gerne ausprobiert werden.
Download: http://www.ömmes.de/osm/wayparts.jar
Das JAR-Archiv muss im JOSM-Plugin-Ordner abgespeichert werden: siehe http://wiki.openstreetmap.org/wiki/JOSM/Plugins#Manually
Für das Plugin bitte die "JOSM latest"-Version benutzen. Da die aktuelle Latest-Version anscheinend fehlerhaft ist, bitte dieses Build benutzen: http://josm.openstreetmap.de/download/josm-snapshot-2447.jar --Ömmes 18:50, 15 November 2009 (UTC)
Benutzung
Das Plugin fügt einen Layer ein, der die Wayparts des aktiven OSM-Layers darstellt. Der Wayparts-Layer kann entfernt werden, derzeit aber nicht manuell wieder hinzugefügt werden. Lädt man neue Daten, ist er aber automatisch wieder da...
Bekannte Probleme
- Wayparts über geschlossene Wege werden nicht erkannt und könnten in einem Fehler enden
- Lücken in den Wegen einer Relation (wenn zwei Wege nicht aneinander hängen), werden gerendert, als gäbe es einen Weg zwischen diesen
Überlappende Waypart-Relationen in Gegenrichtung werden auf der falschen Seite gerendert--Ömmes 18:50, 16 November 2009 (UTC)Überlappende Waypart-Relationen haben u. U. keinen Trenner--Ömmes 18:50, 16 November 2009 (UTC)- Wenn man etwas löscht oder hinzufügt, werden alle Wayparts neu eingelesen. Das könnte sehr langsam sein...
- Nur cycleway, footway und grass_strip werden anders als Fahrstreifen gerendert
- Nur dash, doubbledash, line, grass_strip und curb werden als Trenner gerendert
- "to"-Mitglieder einer Waypart-Relation werden beim Rendern nicht beachtet. Die Fahrspuren/Teile können also falsch "verbunden" sein
- Das Konzept ist nicht routbar.
Todo
- Farben und Linien in einer XML-Datei definieren
- Performance verbessern
- Bekannte Probleme lösen
- Editor zum Anlegen von Wayparts integrieren
Links zu anderen relevanten Seiten im Wiki
- Proposed_features/lane_and_lane_group
- Relations/Proposed/Segmented_Tag
- Relations/Proposed/Area
- Proposed_features/specifying_the_highwaytype_for_a_lane
- Relations/Proposed/Lane
- Users:cmuelle8/multiple way tagging on single geometry
- Vorschlag Mittelstreifen und Seitenbereiche
- WikiProject Germany/Workshops/Linienbündel
- User:Santiago1504/MultiLane
- DE:Lane Assist
- DE:Key:lanes