Overpass API - Public Transport Line Diagram - komische Lücken

Hallo zusammen,

ich habe mich daran versucht eine Buslinie (444, VVS) in das Public Transport Schema v2 zu konvertieren. An sich hat das ganz gut geklappt.

Jetzt habe ich mir aber mal mein Ergebnis in der Overpass API rendern lassen und dabei festgestellt, dass zwischen manchen Haltestellen riesige Lücken sind, z. B. zwischen “Hauptstraße” und “Endwiesenstraße”. Habe ich irgendwas falsch getaggt? Oder was könnte das Problem sein? Hier mal der Link http://www.overpass-api.de/api/sketch-line?network=VVS&ref=444&operator=&style=wuppertal

Zum Tagging selbst kann ich nichts sagen (PTvX ist Spezialgebiet von User Weide), allerdings unterstützt der Linienbandgenerator aktuell kein PTv2, sowie Varianten oder Nachfolger davon. Siehe auch den Hinweis im Wiki dazu.

Zum aktuellen Stand müsstest du Roland am besten per Email kontaktieren.

Die Lücken sind die platform-Knoten.

Man kann die Lücken vermeiden, indem man die Platformen als Linie (oder als Fläche) anlegt und den bus_stop an einen Knoten dieser Line legt.

@mmd:
Danke, den Hinweis hab ich im Wiki übersehen obwohl ich dort den Linienbandgenerator überhaupt erst entdeckt habe.

@axelr
OK, sowas in die Richtung habe ich befürchtet. Nachdem das PTv2 aktuell nicht unterstützt wird belasse ich es erst mal dabei.

Also meiner Erfahrung nach wird PTv2 sehr wohl unterstützt. Wie aktuell (in Hinblick auf das Erstellungsdatum des Eintrags und der Fähigkeiten des Liniengenerators) die Aussage im Wiki ist, kann ich aber auch nicht sagen.
Es gibt aber min. zwei Bugs im Generator, die mir im Zusammenhang mit dem PTv12 bisher aufgefallen sind.
Der Erste ist Thema dieses Threads.
Der Zweite ist, dass Haltestellen doppelt angezeigt werden, wenn zwei gleiche Stops (hw=bus_stop und pt=stop_position) an zwei Stellen (einmal in der Rolle “stop” und in der Rolle “platform”) in der Relation vorhanden sind.
Die “Lösung” (eine “legale” Tagging-Variante) in beiden Fällen wurde auch schon genannt und besteht darin hw=bus_stop an einen separaten Node zu erfassen. z.B. an einem Node das “platform”-Ways.

Ein Node mit highway=bus_stop neben der Fahrbahn ist eine voll gültige platform im Sinn von PTv2 und braucht dafür kein zusätzliches public_transport=irgendwas. Mit dem Hinzufügen eines highway=bus_stop-Nodes an eine vorhandene Platform ist die Platform dann doppelt gemappt. Das ist schon schlecht … aber es kommt noch schlimmer:

Gemappte Platforms müssen mit in die Routen … man muss sie nicht mappen, aber gemappte müssen rein. Zwei Platforms zu einem Halt kann man aber nicht eintragen, da das dann zwei Halte des Fahrzeugs wären. Das bedeutet, dass man die Mitgliedschaften in den Routen nicht mehr auswerten kann.

Dass mehrere Konzepte miteinander konkurrieren ist in OSM nicht ungewöhnlich und es funktioniert auch oft. In diesem Fall und manchen anderen im ÖPNV-Bereich bedeutet es aber, dass die Auswertbarkeit auf der Strecke bleibt und wir nur ein Datengrab schaufeln.

Weide

PS: Ich bemühe mich, künftig nicht mehr so oft zu solchen Themen Stellung zu beziehen, da ich die Routen eigentlich aufgegeben habe. Mal sehen, wie der Kampf “Vernunft” gegen “Sucht” ausgeht, jedenfalls komme ich jetzt wieder viel öfter an die frische Luft :slight_smile:

Kannst du das ein bisschen genauer erläutern bzw. belegen. Ich bin bisher der Überzeugung gewesen, dass highway=bus_stop-Nodes nur PTv1 sind.

Den Kommentar habe ich im Wiki hinzugefügt (Selbstzitate sind irknwie blöd, I know), basierend auf den Änderungen auf Github: https://github.com/drolbr/Overpass-API/commits/master/src/pt_diagrams

Die letzte relevante inhaltliche Änderung würde ich dort im Bereich 4-5 Jahre in der Vergangenheit verorten, und damals gab es m.W. noch kein Ptv2 in der aktuellen Form. Dass der Linienbandgenerator dennoch ein Ergebnis liefert, dürfte evtl. daran liegen, dass sich die Schemata im Laufe der Zeit nicht 100% inkompatibel zueinander geändert haben.

Sollte das nicht passen, könnt ihr auch gern den Text im Wiki aktualisieren. Ich habe kein Problem damit.

Freunden der gepflegten Github-Ticketeria empfehle ich einen Blick in die folgenden Issues und Pull Requests, die sich ebenfalls mit dem Thema beschäftigen:

https://github.com/drolbr/Overpass-API/issues/190
https://github.com/drolbr/Overpass-API/pull/166
https://github.com/drolbr/Overpass-API/pull/126

Ja. Im PTv2-Papier steht ziemlich am Anfang:

Das gesamte PTv2-Konzept funktioniert mit den alten Haltestellenangaben ohne jede Veränderung daran. Man hätte also (als Extrembeispiel) sämliche Routen umstellen können, ohne auch nur eine einzige Haltestelle zu ändern. Die Routen sind neu und inkompatibel. Bei den Haltestellen gibt es dagegen nur zusätzliche Mappingmöglichkeiten (Linien, Flächen und sowohl “stop” als auch “platform” für einen Halt waren vorher unmöglich).

Ein highway=bus_stop auf dem Fahrweg ist ein “stop” in der Terminologie von PTv2 und ein highway=bus_stop neben dem Fahrweg ist eine “platform” im Sinne von PTv2. Will man das jeweils andere Objekt auch noch hinzufügen (muss man nicht!), dann kann man nicht highway=bus_stop nehmen, da jedes highway=bus_stop traditionell eine weitere Haltestelle definiert.

Weide

Aha, nehme ich mal so entgegen.
Die Abfrage auf overpass macht das natürlich dann entsprechend komplizierter. Ich sehe mir bei Gelegenheit den Code mal etwas genauer an.

In https://github.com/drolbr/Overpass-API/blob/71d68ffaf130d505e6d9bf123a564ea850609817/src/pt_diagrams/processed_input.cc#L747 ist übrigens eine (aber vermutlich nicht die einzige) Zeile Code, die zeigt, dass PTv2 unterstüzt wird.

Wiki lesen bildet und jetzt ist mir auch klar wo die Verwirrung herkommt.

Es findet sich dort ein Hinweis, dass das neue Public-Transport-Schema seit 2014 auch unter dem Namen Public Transport Version 2 (PTv2) bekannt ist. Das Proposal dazu aus dem Jahr 2011 stellt wohl die Grundlage für den aktuellen Linienbandgenerator dar. Dieser wurde an der genannten Stelle im August 2011 zuletzt geändert.

Wenn dieses Proposal inhaltsgleich zu PTv2 ist, können wir den Hinweis zur fehlenden PTv2-Unterstützung des Linienbandgenerators im Wiki löschen und die Probleme stattdessen als Bugs in der PTv2 Implementierung ansehen, so wie schon zuvor von Hubert87 angedeutet.