Neue Features in der OpenLinkMap: Abfahrtszeiten und Adressen

Hallo allerseits,

nach langer Zeit gibt es wieder einige neue Features in der OpenLinkMap:

Die wichtigste Neuerung ist der “Public transport”-Layer. Dies ist ein zusätzlicher Layer, der Zusatzinformationen zu Bushaltestellen, Bahnhöfen, etc. anzeigt. Die interessanteste Funktion ist dabei die Verlinkung zu Echtzeit-Abfahrtszeiten auf der Homepage des jeweiligen Verkehrsunternehmens. Die Idee zu dieser Funktion stammt von Mappern aus der belgischen Community.
Beispiel: http://www.openlinkmap.org/?lat=50.87921&lon=4.71299&zoom=16&layers=BFTTTTT

Das Ganze funktioniert folgendermaßen: Die Software generiert anhand einer Regeldatei, dessen Format dem für das Tagtransform Plugins von Osmosis (http://wiki.openstreetmap.org/wiki/Osmosis/TagTransform) entspricht, ein neues Tag mit einer URL zur Seite mit den Abfahrtszeiten für diese Haltestelle.
Bei der belgischen Gesellschaft “De Lijn” beispielsweise wird bei Auswerten der Datei ein neues Tag erzeugt, das einen Link zur Seite mit den Abfahrtszeiten für eine bestimmte Haltestelle enthält. In diesem Fall wird dabei die Haltestellen-ID aus dem Tag ref=* an eine bestimmte URL des Verkehrsunternehmens gehängt.

Ich habe bereits Regeln für die Fahrplanauskunft der DB und ÖBB hinzugefügt. Dadurch wird in Deutschland bei Bahnhöfen, die mit operator=DB AG/DB/DB Regio/… und uic_ref=* getaggt sind, ein Link zur Fahrplanauskunft der Deutschen Bahn angezeigt. Da die ÖBB wie auch die Deutsche Bahn das Hafas-System zur Fahrplananzeige nutzen, brauchte ich nur die URL anzupassen.

Trotzdem fehlen weiterhin noch Regeln für viele Verkehrsverbünde und Unternehmen, sowohl im Inland, als auch im Ausland. Ich würde mich sehr freuen, wenn andere Interessierte Regeln für weitere Unternehmen/Verkehrsverbünde erstellen und diese in der Datei ergänzen.
Bei der Datei habe ich bewusst das bereits existierende Format gewählt, damit auch andere Anwendungen (z.B. Osmosis) diese Datei auswerten können. Ich lade andere Entwickler explizit dazu ein, die Datei in eigenen Projekten zu verwenden und rufe auf, Regeln zu allen möglichen Fahrplanauskünften in dieser Datei zu sammeln, um so das Wissen zu teilen und viel Arbeit zu ersparen.
Regeldatei: https://github.com/rurseekatze/OpenLinkMap/blob/master/locales/departures.xml

Außerdem gab es vor einiger Zeit einige Verbesserungen bei der Anzeige von Adressen: Zum einen wird das Tag addr:suburb nun ausgewertet, damit werden Adressen, die z.B. als addr:city=Berlin und addr:suburb=Kreuzberg erfasst sind, in den Popups als “Berlin-Kreuzberg” angezeigt.
Eine andere Neuerung bei den Adressen betrifft die Adressformate: Dort bestand das Problem, dass diese je nach Land völlig unterschiedlich aufgebaut sein können (z.B. Unterschied Deutschland<->USA). Damit die Adressen also je nach Land unterschiedlich formatiert werden, gibt es eine Datei mit Platzhaltern für verschiedene Länder. Viele Länder sind noch nicht vorhanden, wer welche ergänzen möchte, findet die Datei hier: https://github.com/rurseekatze/OpenLinkMap/blob/master/api/addressformats.php

Grüße
Alex

Hallo!

Super Karte und tolle Ideen!! Danke dafür!

Das ist allerdings sehr interessant! Finde ich super! Eine Frage nur: wieso werden die Abfahrtszeiten nicht direkt in der Sprechblase angezeigt? Ist es rechtlich nicht möglich? Oder technisch nicht umsetzbar. Für letzteres hätte ich da evtl. eine Lösung.

Ich habe nicht viel Ahnung von Programmieren. Aber weil du das mit den Regeln gesagt hast, erinnert es mich stark an einen Aufruf für dieses Programm: http://kde-look.org/content/show.php?content=106175
Dort wurden auch von Version zu Version immer mehr Verkehrsverbünde hinzugefügt, also Regeln, mit denen man eben solches Live-Monitoring anzeigen kann. Der Quellcode sollte einsehbar sein. Vielleicht ist in diesem Punkt auch der Kontakt zum Programmierer zu empfehlen.

Auf jeden Fall weiter so!!

Hallo Alex

In Bonn funktionieren die Bahnhöfe und die Haltestellen der Stadtbahn nicht. Die Stadbahn hat sicher nicht eine der DB-Varianten als Operator und meist auch keinen uic_ref (obwohl sie eine UIC-Nummer haben). Bei den Bahnhöfen fehlt der Operator meistens.
Der wird sowieso in der Regel nicht DB AG/DB/DB Regio sein, sondern eher DB-Station&Service (in diversen Schreibweisen).

Ich frage mich, warum du den Operator überhaupt brauchst. In der UIC-Nummer (siebenstellig, nicht die HAFAS-internen Nummern) ist in den ersten beiden Stellen das Land kodiert (80 für Deutschland). Seitdem die DB in ihrer Auskunft ihre Mitbewerber nicht mehr ignoriert, müsste die UIC-Nummer doch eigentlich reichen. Und wenn doch einmal die DB keine Info hat, dann gibt es halt kein Ergebnis zurück.

Beim VRS Busse&Bahnen sieht das folgendermaßen aus. Auch dort gibt es in der Regel keinen Operator. Aber für alle vom VRS bedienten Haltestellen gibt es eine eindeutige fünfstellige VRS-Nummer (VRS:ref=). Die ist seit unserem Haltestellenabbgleich auch in den Daten enthalten. Ebenso ist der VRS-Name der Haltstelle (VRS:name=) seitdem in unseren Daten enthalten, wenn er von dem OSM-Namen abweicht.

Du kannst ja mal die Verantwortlichen ansprechen, ob sie an einer Verlinkung über deine Seite zu den Haltestellen-Plänen interessiert sind. Die Bonner Community wird dir sicher bei den Details gerne helfen.

Edbert (EvanE)

Danke für den Hinweis, werde mir das Projekt mal ansehen.
Scheinbar ist dort auch die Integration der Fahrpläne direkt in die Oberfläche besser umgesetzt, was ich in Zukunft auch verbessern möchte. Momentan lag der Fokus eher darauf, überhaupt Fahrpläne durch Verlinkung anzubieten. Wünschenswert wäre sicherlich eine Einbindung direkt in die Popups, aber das ist natürlich etwas aufwendiger. Wie sich das besser lösen lässt, werde ich mir am von dir verlinkten Projekt ansehen.

DB Station&Service ist bereits in der Datei als gültiger Operator eingetragen, wobei man auch noch weitere Schreibweisen hinzufügen könnte.
Auf jeden Fall ist aber ein Operator notwendig, denn irgendwie muss die Software schließlich erkennen, welche Fahrplanauskunft sie aufrufen muss.

Da, wie du schon sagtest, die DB auch Fahrzeiten anderer Bahnunternehmen anzeigt, würde auch das Land ausreichen.
Dass man das auch mit Hilfe der UIC-Nummer erkennen könnte, daran hatte ich noch gar nicht gedacht! Habe es mal hinzugefügt, jetzt funktioniert die Anzeige auch gleich schon bei einigen Bahnhöfen mehr… :wink: Danke für den Hinweis!

Da diese Haltestellen bereits ein Tag VRS:ref=* haben, brauche ich nicht mehr einen Operator, wenn ich die VRS-Fahrplanauskunft verwende. Wie man die einbinden kann, werde ich mir noch ansehen.

Die Auskunft an den Bahnhöfen in Bonn funktioniert jetzt. Danke, das ging schnell.
Besonders schön, dass die DB-Abfahrtstafeln auch Busse und Stadt-/Straßenbahnen in der Umgebung anzeigt.

Hier der Link zur Suchmaske der Haltestellen-Abfahrtspläne: http://auskunft.vrsinfo.de/vrs/cgi/process/eingabeHaltestellenfahrplan. Ab da musst du selber weiter suchen. Die Anwendung stammt von der http://www.ivv-aachen.de.

Edbert (EvanE)

Hi Alex,

gefällt mir sehr gut! Vielleicht lassen sich durch eine praktische Anwendung auch weitere Verkehrsgesellschaften dazu bewegen, ihre Daten für uns freizugeben anstatt nur für Google.

Ich versuche gerade, eine Regel für eine Verkehrsgesellschaft zu erstellen, die ihre Haltestellen hübsch durchnummeriert hat und eine haltestellenbezogene Online-Fahrplanauskunft bietet.

Dazu noch eine Frage: Die regulären Ausdrücke sind vermutlich so nicht case-insensitiv, oder? Gibt es diese Option oder müsste ich (TITSA|Titsa) benutzen, um beide aus meiner Sicht naheliegenden und legitimen Schreibweisen abzubilden?


<translation>
<name>Transportes Interurbanos de Tenerife (TITSA)</name>
<description>Timetables for public transport stops operated by "Titsa" in Tenerife, Canary islands, Spain.</description>
<match mode="and">
<match mode="or">
<tag k="highway" v="bus_stop"/>
<tag k="public_transport" v="platform"/>
<tag k="public_transport" v="stop_position"/>
</match>
<tag k="operator" v="(.*;|^)TITSA(;.*|$)"/>
</match>
<find>
<tag k="ref" v="([0-9]*)" match_id="stop_ref"/>
</find>
<output>
<copy-all/>
<tag from_match="stop_ref" k="departures" v="http://www.titsa.com/correspondencias.php?idc={0}"/>
</output>
</translation>

Habe den Ausschnitt in die Datei aufgenommen. Damit alle Schreibweisen abgefangen werden, habe ich noch (?i) in den Regulären Audruck eingesetzt.

Grüße
Alex

Hi Alex,

sind die neuen Regeln schon aktiv? Sie scheinen nicht zu greifen, dieser Knoten http://www.openstreetmap.org/browse/node/1377248880 sollte aus meiner Sicht mit highway = bus_stop, public_transport = platform, operator = TITSA, ref = 2396 die Bedingungen erfüllen, ist aber nicht verlinkt:

http://www.openlinkmap.org/? lat=28.511883&lon=-16.306259&&zoom=18&layers=BFTTTTT

Das Beispiel ist evtl. ungünstig, da es falsch getaggt ist. Das Hinzufügen von public_transport = platform war falsch, da eine Bank und ein Unterstand vorhanden sind. In dem Fall kann man public_transport nur verwenden, wenn man nochmal vermisst und den Node durch einen Way oder eine Fläche ersetzt.

Zitat aus dem Original (http://wiki.openstreetmap.org/wiki/Proposed_features/Public_Transport#Platform):

Weide

Mir ist es auch mit der Overpass-API nicht gelungen, ein Beispiel nur mit highway=bus_stop ohne public_transport=platform zu finden, das wurde offenbar flächendeckend hinzugefügt.

Ich kann mir aber auch gar nicht so recht vorstellen, dass das der Grund sein sollte, es gibt ja doch offenbar auch legitime Kombinationen von highway=bus_stop und public_transport=platform (ohne Bank und Unterstand).

Glaub ich auch nicht. (Aber in Programmen können winzige Lücken große Auswirkungen haben)

Weide

Das Problem hat eine ganz einfache Ursache: Die Haltestelle besitzt kein name=* Tag…

Gruß
Alex

Ah, ok, danke für die Aufklärung.