Sascha Silbe schrieb: > 2. Repräsentation eines "zusammengesetzten" Wegs: > - Es gibt verschiedenartige Teile: Fahrbahn, Bürgersteig, Radweg (auf > Fahrbahn oder Bürgersteig). > - Anordnung der Teile ist potentiell beliebig, wobei die Fahrbahn bei > OSM > derzeit die Mitte eines Weges darstellt. > - Wenn wir schon dabei sind, können wir auch gleich die Fahrbahn in > Spuren > aufteilen. > Gibt es eigentlich irgendwo Straßen, die z.B. einen Bürgersteig in der > Mitte haben? Der Fall wäre dann als Nebeneffekt auch abbildbar. :) > - "Normalfall" für die Anordnung der Teile ist abhängig vom Straßentyp: > - außerorts: nur Fahrbahn > - residential: Bürgersteig+Fahrbahn+Bürgersteig > ... > - Die Teile/Spuren haben unterschiedlichen Breiten, Straßenbeläge, > Einschränkungen (z.B. Mindestgeschwindigkeit 80/60/keine > links/mitte/rechts). > - Unterschiedliche Spuren führen ggf. zu unterschiedlichen Wegen, das > sollte auch irgendwie repräsentiert werden (Stichwort: Spurassistent > vom Navi). > - Tagging wie üblich nur von Sonderfällen bzw. wo genauere Infos bekannt > sind (siehe auch "Normalfall"-Abschnitt) - eigentlich klar, aber um > Dich > (Frederik) zu beruhigen schreib ichs lieber nochmal explizit auf :)
Also mir fallen jetzt zwei Möglichkeiten ein, quasi den Straßenaufbau zu mappen. a) Tags wie cycleway/footway/path mit left/right/both Angabe. Dazu nimmt man erstmal an, dass in der Mitte immer die Fahrbahn verläuft und sich an den Seiten ein Fußweg, Fahrradweg oder beides befindet, die man mit cycleway=.. oder footway=.. angibt. Das kann man natürlich noch weiter verfeinern, indem man noch Eigenschaften für die einzelnen Seiten angibt. Beispiel 1: highway=residential footway=right (nur auf der rechten Seite ein Fußweg) footway.surface=cobblestone (der Fußweg hat Kopfsteinpflaster als Belag) Der Punkt '.' gibt also eine weitere Eigenschaft für einen Tag an, in diesem Fall die Oberfläche des Fußwegs. Beispiel 2: highway=residential footway=both (auf beiden Seiten ein Fußweg) footway:left.surface=cobblestone (die linke Seite mit Kopfsteinpflaster) footway:right.surface=unpaved (die rechte Seite ist nicht versiegelt) Der Punkt '.' gibt also wieder eine weitere Eigenschaft an, diesmal allerdings nicht für den Fußweg allgemein, sondern speziell für den rechten bzw. linken Fußweg. Der Doppelpunkt gibt also ein Attribut für den Tag an, in diesem Fall welchen der beiden Fußwege man meint. Natürlich könnte man für beides auch die gleiche Notation verwenden und je nach Key entscheiden was es bedeutet. b) Die Anzahl der Wege angeben und denn einfach von links nach rechts durchnummieren. Dazu ist eine Straße erstmal ein neutrales Objekt, das unterschiedlich aufgebaut sein kann. Man gibt die Anzahl der Wege an und gibt dann für jeden einzelnen an, was es ist. Beispiel 1: highway=residential ways=2 way:1=residential (auf der linken Seite die Fahrbahn) way:2=footway (rechts ein Fußweg) way:2.surface=cobblestone (der Fußweg hat Kopfsteinpflaster als Belag) Beispiel 2: highway=residential ways=3 way:1=footway way:1.surface=cobblestone (die linke Seite mit Kopfsteinpflaster) way:3=footway way:3.surface=unpaved (die rechte Seite ist nicht versiegelt) way:2=residential (in der Mitte die Fahrbahn) Natürlich müsste man das nicht für alle Straßen angeben, es würden natürlich je nach Straßentyp bestimmte Werte impliziert. highway=residential impliziert dann z.B.: a) footway=both b) ways=3 way:1=footway way:2=residential way:3=footway Und highway=primary (außerorts): a) footway=none b) ways=1 way:1=primary Die Spuren der Fahrbahn könnten davon seperat abgelegt werden, falls man sowas überhaupt will. Eine normale zweispurige Straße sähe dann so aus (natürlich für die meisten Straßen wieder automatisch je nach Straßentyp): lanes=2 lane:1.oneway=-1 lane:2.oneway=yes Größeres Beispiel: footway |cycleway (lane auf der Straße) | | lane1 | | | lane2 | | | |footway/cycleway (gemischt) | | | | | |#| | ' |#| |#| | ' |#| |#| | ' |#| ^ |#| | ' |#| /|\ |#| | ' |#| | |#| | ' |#| | |#| | ' |#| | |#| | ' |#| |#| | ' |#| 1 2 3 4 a) highway=tertiary footway=left cycleway=left cycleway.type=lane path=right path:right.bicycle=designated path:right.foot=designated b) highway=tertiary ways=4 way:1=footway way:2=cycleway way:2.type=lane way:3=tertiary way:4=path way:4.bicycle=designated way:4.foot=designated Wenn der Weg jetzt aus irgendeinem Grund umgedreht werden sollte: |#| ' | |#| |#| ' | |#| |#| ' | |#| |#| ' | |#| |#| ' | |#| |#| ' | |#| |#| ' | |#| |#| ' | |#| |#| ' | |#| 4 3 2 1 (vorher) 1 2 3 4 (danach) a) right und left tauschen b) Anzahl der Ways - Weg Nummer + 1 (aus der Fahrbahn 3 oben wird dann also 4-3+1=2) Das sollte beides der Editor automatisch machen können. Die Methode a) dürfte für Mapper vielleicht etwas leichter zu handhaben sein, meistens ist es ja auch kürzer. Allerdings ist Methode b) natürlich variabler und wenn es im Editor z.B. ein extra Tool dafür gäbe um sowas aufzubauen, wäre es sicher auch nicht schwer zu handhaben. Beide Methoden lassen jedenfalls immernoch das bisherige Tagging zu und erweitern es bloss um mehr Informationen. Allerdings kann ich nicht beurteilen, ob Renderer oder Router sich damit under Umständen schwer tun würden. Gruß _______________________________________________ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de