Public Transport und OverpassAPI

Hallo,

ich habe im Moment ein paar keine Probleme mit dem public_transport Schema und der Overpass API. Ich habe Bushaltestellen und auch Route Relationen angelegt. Bei mir in der Gegend gibt es doch einige Varianten von ein und der selben Linie[1].

Ich habe einen route_master [2] angelegt. Zusätzlich habe ich dann noch zwei weitere Relationen angelegt [3][4] diese Relationen werden auch wenn ich mir die Route über die Overpass API[5] ausgeben lasse angezeigt. Nur leider wird die Variante[6] die ich zusätzlich auch noch in den route_master aufgenommen habe leider nicht in der Overpass API angezeigt.
Denn in der Variante wird eine Haltestelle ausgelassen die ich aber wenn ich mir die Strecke über die Overpass API anzeigen lasse nicht sehe.

Habe ich nun einen Fehler bei der Anlage der Relationen gemacht oder verstehe ich die Overpass API einfach nicht?

[1] http://www.neisseverkehr.de/de?t=/documentManager/sfdoc.file.supply&fileID=1332251917299
[2] http://www.openstreetmap.org/browse/relation/2202219
[3] http://www.openstreetmap.org/browse/relation/2202189
[4] http://www.openstreetmap.org/browse/relation/2202455
[5] http://www.overpass-api.de/api/sketch-line?network=VBB&ref=856
[6] http://www.openstreetmap.org/browse/relation/2202559

Welchen Teil vermisst du in der Darstellung der Relation?

Ich vermisse die Relation Klein Loitz → Spremberg. Ist in meinem ersten Post der Link [6].

Diese Route enthält den Zwischenhalt Türkendorf nicht. Sondern fährt direkt von Bloischdorf nach Groß Luja.

[6] http://www.openstreetmap.org/browse/relation/2202559

So?

http://78.46.81.38/api/sketch-route?2202559&2202455&2202189

Ja das kommt den was ich suche schon recht nahe. Wenn ich das richtig sehe hast du jetzt die drei Relationen miteinander Verknüpft. Jetzt werden aber alle Halte auch die wo es einen Hin und Rückweg gibt. Mit einem Pfeil dargestellt, denn würde ich als in nur in einer Richtung bedient interpretieren.

Ich hatte bisher nur gesehen das man zwei Relationen miteinander Verknüpfen kann. Wenn ich mir das so anschauen macht er im Moment auch nur genau das denn wenn ich die letzte Relation einfach Weg lasse dann wird mir der gleiche Weg gerändert wie mir drei Parametern.

Vielleicht ist es auch nicht möglich über einen einfachen GET Request eine solche komplexe Abfrage zu stellen. Sondern ich muss vielleicht mir doch noch mal die Abfrage API anschauen und mir eine entsprechende XML zusammenbauen. Ich war davon ausgegangen das es reicht wenn ich die Master Relation angeben und dann alle child Relationen automatisch ausgewertet werden.

Hab gerade gesehen, dass er trotzdem nur 2 Relationen auswertet… Ich glaub der kann immer nur mit zwei Relationen arbeiten… (erkennt man, wenn man die Relationsnummer tauscht…)

Erstmal danke für deine Bemühungen.

Ich habe mir das inzwischen noch mal etwas genauer angeschaut. Ich denke mal das die von mir gewünschte Darstellung gar nicht so einfach zu realisieren ist. Denn in einer master_route können ja 1…n weitere Relationen enthalten sein. Alle Relationen in der master_route sind ohne role angegeben. Das heißt sie sind alle gleichwertig. Wie soll jetzt eine Software ermitteln welche die “Hauptroute” ist und welche davon eventuell nur Varianten sind. Denn wenn ich von der master_route ausgehend mir alle weiteren Relationen und Haltepunkte zusammensammle habe ich immer noch nicht die Info welcher Node denn nun mein wirklicher Start-/ Endpunkt ist. Ich kann dann zwar einen gerichteten Graphen aufbauen und dort versuchen zu ermitteln welche meine Start-/ Endpunkte sind aber das ist nicht ganz trivial.

Nahmd,

Vielleicht erwartest Du einfach zuviel?

Guck Dir mal eine Linie mit ein paar™ Varianten mehr an.
Wie sollte man das grafisch darstellen?

Gruß Wolf

Genau das habe ich auch einen Post über deinem gerade festgestellt. Das dass wohl nicht ganz so einfach ist wie ich mir das zu Anfang gedacht habe. Hatte mir zwischenzeitlich mal die rohen Daten angeschaut und selbst überlegt wie ich von denen aus so etwas realisieren würde. Bin recht schnell in Richtung gerichteten Graphen gekommen und hatte dann eben das Problem die “Hauptroute” zu ermitteln von der aus es dann verschiedene Varianten gibt.

Moins,

An meinem gruseligen Beispiel siehst Du, dass es noch einmal eine “Hauptroute” geben muss. Da gibt es zwar eine Liste von Haltestellen links, aber keine der Varianten fährt von Anfang bis Ende, selbst mit Unterbrechungen nicht.

Was Du auch sehen kannst:
– Du kannst nicht davon ausgehen, dass die Varianten paarweise zusammenhängend sind,
– der Graph enthält Zyklen, Du kannst also auch nicht von Zyklenfreiheit ausgehen.

Da freut sich der Graphentheoretiker :slight_smile:

Gruß Wolf

Hallo Schiller256,

warum sind in name andere End- und Startpunkte als bei from und to?

Manchmal steht in der Zielanzeige des Busses etwas anderes als die Endhaltestelle.

Edbert (EvanE)

Soweit klar.

Beispiel:
Linie 123
Richtung 1: ServiceStopA->A-Dorf->Kleinkleckersdorf->Waldacker->B-Dorf->Niemandsland
Richtung 2: B-Dorf->Kleinkleckersdorf->Schwimmbad->A-Dorf->ServiceStopA

In solchen Fällen hab ich zwei Relationen:

route:
ref=123
name=Busline 123: A-Dorf => B-Dorf
from=A-Dorf
to=B-Dorf

route:
ref=123
name=Busline 123: B-Dorf => A-Dorf
from=B-Dorf
to=A-Dorf

und einen Master der alles zusammenfasst

route_master: {route, route}
ref=123
name=Bus 123
kein from/to

Wichtig ist die Haltestellen in der richtingen Reihenfolge in die Relation zu tun, dann kommt auch overpass/sketch-route damit klar. Die Stops für Richtung 1, wenn nur Stops in der Relation enthalten sind (stop: node direkt auf dem way, plattform wenn nebenan; wenn beides enthalten ist: erst stop, dann plattform):

ways
stop ServiceStopA
stop A-Dorf
stop Kleinkleckersdorf
stop Waldacker
stop B-Dorf
stop Niemandsland

bzw bei gemischtem:
ways
stop ServiceStopA
stop A-Dorf
plattform A-Dorf
stop Kleinkleckersdorf
stop Waldacker
stop B-Dorf
stop Niemandsland

ways überhalb aller stops einfügen wenn sie von der entsprechenden Teilroute befahren werden (wenn die “osm-Richtung” (die Pfeile) entgegen der Fahrrichtung verlaufen mit “backward” in der Relation taggen); die “Wendestrecke” hab ich immer bis zur “Schlafposition” mit eingefügt. So dass der letzte Weg hinter dem letzten Stop liegt, der Anfang vor dem ersten.


edit: typo: to sollte auf dem Hinweg natürlich B-Dorf sein (nicht A-Dorf)

Aber damit hast du noch nicht die Buslinie inkl. der Variante erfasst - das Tagging-Schema besagt eigentlich eindeutig, dass man für die Variante eine eigene Relatin anlegen soll. Dass man es auch anders lösen kann, ist klar - nur ist es nicht Sinn der Sache, dass man vom Schema abweicht. (Siehe auch: http://wiki.openstreetmap.org/wiki/DE:Busse > Buslinien)

Als Variante wäre dann eben
Richtung 3: ServiceStopA->A-Dorf->Feldweg->Waldacker->B-Dorf->Niemandsland

route:
ref=123
name=Busline 123: A-Dorf => B-Dorf
from=A-Dorf
to=B-Dorf
(optional: via=Feldacker)

ways
stop ServiceStopA
stop A-Dorf
stop Feldweg
stop Waldacker
stop B-Dorf
stop Niemandsland

Und das wird auch noch mit in route_master eingefügt. Und nochmals für die Rückrichtung, falls es sie gibt.

Nahmd,

Dazu ein Beispiel: die ersten Bushaltestellen nach Siegburg-Bahnhof werden von 200(!) Varianten angefahren, JE RICHTUNG. Wenn ich das Schema beachte und 400 Relationen anlege, welcher der Schema-Befürworter verpflichtet sich, z.B. bei der Einrichtung einer Umleitung wegen einer Baustellen, die 400 Relationen anzupassen? :wink:

Gruß Wolf

@Wolf:

Ich nicht - jedoch habe ich nicht die wiki-Einträge für Busrelationen erstellt - ich halte mich nur dran… :wink: .

Aber in dem Fall wäre es wahrscheinlich sinnvoller die Straße(n) in OSM “umzulegen” und die nicht befahrenen mit den alten Tags neu zuerstellen - das betrifft dann wahrscheinlich nur max. 10 Straßen und nicht 400 Relationen (wobei man natürlich durch anpassen von 400 Relationen sehr viele “merits” sammeln würde… :wink: ).

Nahmd,

Soso! :slight_smile:

Ich habe den Vorschlag und die Abstimmung damals verpennt. :frowning:
Ich halte mich auch dran, einfach dadurch, dass ich keine Busrelationen mehr erstelle.

Der übliche Lösungsvorschlag ist, optionale Endstücke und optionale Haltestellen bei der Definition von Varianten auszuklammern. Dann reduziert sich die Zahl der Varianten deutlich (das habe ich aber für die Region hier noch nicht durchgerechnet). Nur: dann sagt die Relation nur noch aus, dass bei dieser Variante irgend ein Teilstück des Wegs in der angezeigten Richtung befahren und die daran liegenden Haltestellen möglicherweise bedient werden, möglicherweise aber auch nicht. Nicht mehr wirklich viel Information.

Und dann würde ich gleich die anderen Teilstecken mit in die Relation aufnehmen, und hab wieder übersichtliche Verhältnisse: an jeder Haltestelle hält eine Linie nur maximal zwei Mal, in der einen Richtung und in der anderen Richtung.

Gruß Wolf