User:Weide

From OpenStreetMap Wiki
Jump to: navigation, search

Vorbemerkung

Ich sehe keine Chance mehr, zu auswertbaren Relationen im ÖPNV-Bereich zu kommen. Daher habe ich mein Engagement auf dem Gebiet beendet.

ÖPNV Test und Rendering

Mein Programm zum Prüfen und Aufbereiten zum Rendern der ÖPNV-OSM-Daten findet Ihr unter http://gafte.de (Quellen, Windows- und Linux-Executables)

Public Transport Versionen 1 und 2

„type=route“-Relationen des alten und neuen Schemas

Da die Vermischung der beiden Routen-Schemata für den öffentlichen Personenverkehr zu großen Schwierigkeiten bei der Auswertung führt, stelle ich die beiden hier mal einander gegenüber.

Im Wiki http://wiki.openstreetmap.org/wiki/DE:Public_transport findet man ein drittes zu den beiden anderen inkompatibles Schema. Dieses hat trotzdem keinen eigenen Wert für public_transport:version festgelegt. Es wird hier nicht behandelt.

Eigenschaft altes Schema Public Transport Proposal (Abstimmung April 2011)
public_transport:version
Von JOSM erfundenes Tag. Es wurde aber dringend benötigt. Bitte benutzen!
1 2
Inhalt Eine komplette ÖPV-Linie Eine Variante einer Richtung einer ÖPV-Linie
Reihenfolge der Mitglieder ohne Bedeutung (außer für die Übersichtlichkeit). Zentral.
Erst kommen alle Haltestelleneinträge in der Anfahrreihenfolge.Dann kommen alle Fahrwegstücke in der Durchfahrreihenfolge.
Wird bei einer Haltestelle sowohl „stop“ als auch „platform“ angegeben, so muss der „stop“ zuerst kommen und direkt danach der gleichnamige „platform“-Eintrag. Andernfalls gilt es als zwei Haltestellen!
master_route Gibt es nicht. Alle Bestandteile der Linie sind in einer Relation. Sollte benutzt werden. Enthält nur die Routen-Relationen ohne Rolle.
Best Practice: Immer anlegen
Rollen „forward“ und „backward“ Muss benutzt werden, wenn der Fahrweg nur in einer Richtung benutzt wird.
Ein Kreisverkehr ohne „forward“ ist exotisch.
oneway=yes mit Rolle „backward“ kennzeichnet einen „Geisterfahrerbus“.
Gibt es nicht!
keine Rolle an einem Weg Der Betrachter am Wegesrand sieht Fahrzeuge der ÖPV-Linie sowohl von links nach rechts als auch von rechts nach links kommen. Ob sie das auf dem Rückweg oder Hinweg tun spielt keine Rolle. Immer bei Fahrwegen und sonst nie.
Fertig gemappt ergeben alle Fahrwege zusammen eine durchgezogene Linie ohne Verzweigungen.
keine Rolle an einem Node Zählt als "stop". Gibt es nicht.
Rolle „stop“ Alle Arten von Haltestellen, ob neben dem Fahrweg oder auf dem Fahrweg. Immer ein Node. Halteposition des Fahrzeugs. Immer auf dem Fahrweg. Immer ein Node (der als name den Namen der Haltestelle trägt).
Rolle „platform“ Gibt es nicht. Ein-/Ausstiegsbereich der Passagiere. Node, Linie oder Fläche zulässig. (die als name den Namen der Haltestelle tragen) Nie auf dem Fahrweg (sonst werden die Leute überfahren.)
Stationen, Busbahnhöfe Können eingetragen werden. Es darf aber immer nur einen Eintrag pro Halt geben. Können ersatzweise nach dem Motto „besser als nichts“ eingetragen werden, wenn Stop-Positionen und Steige noch nicht gemappt oder unbekannt sind.
Way-Eintrag Immer Fahrwege Fahrweg oder Steig. Die Fahrwegrolle ist leer und die Steigrolle ist „platform“.
Node-Eintrag Eine Haltestelle. Jeder Eintrag ist eine neue Haltestelle. Eine Stop-Position oder eine Steigposition.
Mehrfach genutzte Wege Einmal angeben und die Gesamtrolle angeben. Mehrfach angeben. Jede Benutzung muss an der richtigen Stelle eingetragen werden.
Varianten Werden durch Ergänzung der Rollen angegeben. Z.B. „alternate“ statt „“ oder „alternate:stop“ statt „stop“ Sind in verschiedenen Relationen. Jede enthält nur eine Möglichkeit.
Haltreihenfolge Kann durch Rollenanhängsel angegeben werden. Z.B. „stop:4“ statt „stop“. Hin- und Rückweg werden mit z.B. „forward_stop“ oder gar „alternate:forward_stop:4“ markiert. Wird durch die Reihenfolge angegeben
Nutzungsrichtung des Fahrweges Wird durch die Rollen angegeben Wird automatisch aus der Reihenfolge ermittelt.
Linien als Steige geht nicht geht
Flächen als Steige geht nicht geht
Relationen als Mitglieder geht nicht „platform“-Einträge dürfen Flächen sein ... also auch Multipolygone.
via unüblich Kennzeichnet die Variante im Kontrast zu anderen. Entfällt daher oft. Dient nicht der allgemeinen Angabe von Zwischenhalten. Mehrere durch Semikolons trennen
name frei Empfohlen: «Verkehrsmittel» «ref»: «from» => «via» => «to» z.B.: „Bus 123: Adorf=>Bdorf“
route frei Nur einer der folgenden Werte:

train, subway, monorail, tram, bus, trolleybus, aerialway, ferry.

from Empfohlen
to Empfohlen
network Zugehörigkeit zu einem Verbund.
Es gibt auch Verkehrsmittel, die zu keinem Verbund gehören. Nicht mit Gewalt was ausdenken.
operator Empfohlen
Viele wechselnde Steige bei einem Halt der Linie. (IIRC z.B. Mainz Hbf bei einigen Linien und Paris, Gare du Nord generell bei Verspätungen) alle mit „alternate:stop“ hinzufügen praktisch nicht erfassbar.
Best Practice: weglassen und eine note schreiben.
Zukunft sollte verschwinden, ehe wir die nächste Version bekommen. Drei Schemata wäre wirklich zuviel!
Best Practice: durch nebenstehende Version ersetzen.
Sollte jetzt trotz aller Mängel konsequent genutzt werden und eine neue Fassung sollte sorgfältig geplant werden.

Haltestellentagging, altes und neues Schema

Das neue Schema kommt ohne Weiteres mit alten Haltestellen klar. Man darf also in eine Route des neuen Schemas „stop“- und „platform“-Einträge für Halte machen, die nicht nach dem neuen Schema getaggt sind. (Natürlich ist es wünschenswert, die neuen Tags einzusetzen.)

Allerdings muss man die Regeln der alten Tags nach wie vor einhalten. railway=halt oder railway=station gibt es pro Bahnhof nur einmal. Man kann sie also nicht an jeden Bahnsteig schreiben. highway=bus_stop gibt es nur einmal pro Haltestelle, aber mehrere Steige werden als mehrere „Haltestellen“ gesehen. Wichtig: Wenn in einer neuen Bus-Route an einer Haltestelle sowhl der „stop“ als auch die „platform“ angegeben sind, dann darf nur einer das highway=bus_stop haben.

Gern missverstanden wird der Eintrag public_transport=station. Er ist nicht äquivalent zu railway=station. Bitte nachlesen. Wie immer im Original: http://wiki.openstreetmap.org/w/index.php?title=Proposed_features/Public_Transport&oldid=625726

(Das ist eine alte Version. Ich bin fundamental dagegen, einen Abstimmungstext nach der Abstimmung zu ändern. „Alle Tiere sind gleich, aber einige sind gleicher als die anderen“. Die aktuelle Version enthält inhaltliche Änderungen.)

Gleis- und Steignummern

Sie gehören nicht in den Namen -- zumindest wenn man nach PTP mappt. ref ist auch nicht ideal, denn es ist das allgemeine Tag für alle Referenznummern. Wenn es bereits von einem anderen Mapper für eine andere Referenznummer benutzt wurde, dann kann man das nicht einfach ändern -- es ist ja nicht falsch. Deshalb nutze ich das local_ref, dass sich im UK etabliert hat und wohl auch nirgendwo für andere Zwecke benutzt wird. Es wird übrigens auch in der ÖPV-Ebene der Standardkarte dargestellt.

Versehentliche Zerstörungen in Routen-Relationen

Derzeit sind ÖPV-Mapper mehr mit der Reparatur von Kollateralschäden anderer Editiervorgänge beschäftigt als mit konstruktiven Tätigkeiten. Das ist schade.

1.ID Als ich das letzte Mal reingesehen habe konnte man im ID nicht sehen, dass PTP-Routen ihre Einträge in einer bestimmten Reihenfolge haben. Alle Relationen wurden als mathematische Relationen (unsortiert) behandelt. Mit dem ID kann man also Route-Master, Multipolygone und alte Routen bearbeiten, aber keinesfalls neue Routen! Man sieht da nicht einmal, was man kaputt macht.

2. JOSM Beim Auftrennen eines Ways an einem seiner Punkte mit dem JOSM werden neue Routen unter Umständen falsch behandelt. (Dieser Fall ist nicht selten, sondern für die mit Abstand meisten kaputteditierten Routen verantwortlich.) Das kann man vermeiden, wenn man entweder den zu trennenden Weg vorher komplett durch Aufziehen eines Fensters nachläd oder den Weg und seine beiden Endpunkte markiert und mit Alt-Ctrl-D alle Elternobjekte läd. Bei PTP-Routen sollte man außerdem niemals die Funktion „Zu Relation hinzufügen“ benutzen. Es ist sinnlos, etwas an eine PTP-Route anzuhängen. (Eine Haltestelle hinten ist ja automatisch Endhaltestelle.)

Längssplitten von Wegen

Wenn man wegen der baulichen Trennung der Richtungen aus einer Straße zwei Einbahnstraßen macht, dann sollte man auch die betroffenen Routen richtig auf die Wege verteilen...

Splitten von Kreisverkehren

Für ÖPV-Routen müssen Kreisverkehre nicht gesplittet werden. Es ist gängige Praxis, in ÖPV-Routen den Gesamtkreisverkehr anzugeben obwohl nur ein Teil durchfahren wird. Muss man den Kreisverkehr aber aus anderen Gründen in Stücke aufteilen, dann sollte man alle Routen anpassen. (Vorher Alt+Ctrl+D auf dem Kreisverkehr machen, damit man auch alle sieht.)

Detailmapping von Steigen

Wenn man einen als Node gemappten Steig durch eine Linie oder Fläche ersetzt oder einen als Linie gemappten Steig durch ein Multipolygon, dann muss man sämtliche Verweise auf den alten Steig durch Verweise auf den neuen Steig ersetzen. (Bei Routen des alten Schemas hat man da ein Problem, da sie nur mit Nodes funktionieren). Dazu läd man im JOSM am Besten das Plugin "utilsplugin2". Dann geht Folgendes:

  1. Neues Objekt ohne inhaltliche Tags erzeugen
  2. Altes Objekt auswählen und Alt+Ctrl+D machen (sehr wichtig, läd alle darauf verweisenden Objekte)
  3. Neues Objekt zusätzlich auswählen
  4. Ctrl-Shift-G tippen

Damit werden überall Verweise auf das alte Objekt durch Verweise auf das neue Objekt ersetzt ... an der richtigen Stelle und ohne Änderung der Rolle. Die Tags werden vom alten auf das neue Objekt übertragen. Das alte Objekt wird entfernt.

Das funktioniert allerdings nicht, wenn man eine Linie durch ein Multipolygon ersetzen will. Daher hier noch die allgemeine Lösung:

  1. Neues Objekt erzeugen
  2. Altes Objekt auswählen und Alt+Ctrl+D machen (sehr wichtig, läd alle darauf verweisenden Objekte)
  3. Alle jetzt in "Merkmale/Mitgliedschaften"-Liste sichtbaren ÖPV-Relationen doppelt klicken (Für jede geht ein Fenster auf, das bereits auf dem alten Eintrag positioniert ist)
  4. Neues Objekt auswählen (nicht das Multipolygon mit seinem „outer“ verwechseln)
  5. In jedem der vorhin aufgegangenen Fenster „dahinter einfügen“ machen, ggf. die Rolle setzen, den Alteintrag entfernen und Fenster mit OK verlassen.
  6. Den Alteintrag ggf. löschen.

Rollen

Die Rollen geben bei den Relationen an, warum die angegebenen Elemente darin sind. Bei einem Theaterstück steht da z.B. Rolle "Hamlet": Schauspieler "Karl Meier". Es bedeutet nur, dass Karl Meier den Hamlet spielen soll und nicht, dass er seinen Text gut gelernt hat. Genauso ist es mit den Rollen in den Relationen. "platform" bedeutet nur "Dieser Eintrag ist aufgenommen, weil damit ein Steig angegeben werden soll". Es bedeutet keinesfalls, dass er das Tag "public_transport=platform" enthalten muss. Also sollte man keine Angst haben, diese Rollen bei "altmodischen" Nodes einzutragen.

Die leere Rolle ist leider eine Rolle wie alle anderen. Sie bedeutet nicht, dass man die Frage erstmal offen lässt. In einer PTP-Route bedeutet die leere Rolle z.B., dass es sich um einen Fahrweg handelt und in einer stop_area bedeutet sie, dass es eine public transport station oder eine amenity ist. Es ist also Quatsch, an eine Haltestellenangabe erstmal nichts als Rolle anzugeben, weil man sich nicht sicher ist. Da ist es viel besser, ein "dont_know" oder "fixme" einzutragen.

Neue Rollen sind anders als neue Tags. Man kann sich Tags ausdenken und so Zusatzinformationen im Objekt unterbringen. Wenn man aber eine neue Rolle erfindet, dann löscht man die alte Rolle und das bedeutet erstmal, dass keine der bekannten Rollen da steht und Programme werden in besten Fall die Angabe komplett ignorieren und im schlechtesten Fall von niemand geplante Dinge tun.

JOSM Preset

Mein JOSM-Preset zeigt mir bei den Haltestellen die Steignummern (local_ref) mit an und bei den Routen die public_transport:version. Ausprobieren geht so: Den Text als Datei xyz.xml ablegen und im JOSM bei Einstellungen -> Gitterbildchen -> Objektvorlagen rechts angeben. (Den zusätzlichen Menüeintrag ignoriert man einfach)

<?xml version="1.0" encoding="UTF-8"?>
<presets xmlns="http://josm.openstreetmap.de/tagging-preset-1.0">
    <group name="WDE">
      <item name="old"
        name_template="?{'{local_ref}#{name}'|'({ref})#{name}'|'{name}'}"
        name_template_filter="highway=bus_stop|
                              highway=platform|
                              railway=tram_stop|
                              railway=stop|
                              railway=platform">
      </item>
      <item name="pt"
        name_template="?{'{local_ref}*{name}'|'({ref})*{name}'|'{name}'}"
        name_template_filter="public_transport=stop_position |
                              public_transport=platform">
      </item>
      <item name="route1"
        name_template="Route1 ({name})"
        name_template_filter="type=route public_transport\:version=1">
      </item>
      <item name="route2"
        name_template="Route2 ({name})"
        name_template_filter="type=route public_transport\:version=2">
      </item>
    </group>
</presets>

Vorschlag zu Public Transport Version 3

befindet sich ab dem 2.4.2015 auf http://gafte.de

Multipolygone

befindet sich ab dem 2.4.2015 auf http://gafte.de