DE:ÖPNV Editor

From OpenStreetMap Wiki
Jump to: navigation, search

Dies ist ein Vorschlag für einen leicht zu handhabbaren ÖPNV Editor auf der Basis des ÖPNV-Schemas von User:Oxomoa. Weitere Anregungen bitte selbst eintragen oder an den Hauptautor des Artikels Tirkon.

Bestandsaufnahme

Das ÖPNV-Schemas von User:Oxomoa ist ein Vorschlag welcher das Taggen der Umsteigemöglichkeiten, der Haltestellen und Bahnhöfe, der verschiedenen Varianten der Linienführung sowie die zeitlichen Abhängigkeiten (z.B. Schulferien) erstmals befriedigend löst. Leider ist es so kompliziert, dass die notwendige Verschachtelung der Relationen nur von einer Teilmenge der Mappern begriffen wird. Zudem ist einzig JOSM in der Lage, diese zu editieren, aber selbst dieser bietet nur marginale Unterstützung. Die gewaltige Mehrheit der Potlatch Benutzer bleibt dabei außen vor. Insbesondere im ländlichen Bereich, wo ohnehin nur wenig Mapper operieren und selbst die Grunderfassung der Straßen nur schleppend vorankommt, ist hierdurch eine detaillierte ÖPNV Erfassung nach dem Schema nicht gewährleistet.

Dieser Vorschlag für einen noch zu schaffenden ÖPNV Editor soll das Oxomoa Schema auch für Otto Normalmapper leicht benutzbar machen. Aber auch für erfahrene Mapper wird das Erfassen weniger fehleranfällig sowie erheblich einfacher, übersichtlicher und zeitsparender. Eventuell kann der ÖPNV Editor auch auf andere Relationsobjekte, wie Radrouten, Grenzen etc. ausgeweitet werden.

Features des ÖPNV Editors

Die Basisoberfläche des Editors besteht aus einer gerenderten Karte, einem Textfenster und einigen Icons zur Bedienung.

Editieren mit Bus-/Bahnlinienbezug

Im ÖPNV Editor wird grundsätzlich unter dem Dach einer Bus-/Bahnlinie editiert. Klickt man in der Kartendarstellung auf einen Knoten, Weg oder eine Area, werden alle betroffenen Linien in einem Textfenster angezeigt. Durch Umschalten eines Icons werden alle Linien eines Standardumkreises angezeigt, der in einem weiteren Kästchen geändert werden kann. Jetzt kann eine Linie zum Editieren ausgewählt oder alternativ eine neue Linie erzeugt werden.

Linienerfassung blitzschnell

Bei einer Linie ohne Besonderheiten geht das Erfassen blitzschnell. Nach der Auswahl einer Linie können die Basisdaten, wie Betreiber, Verkehrsverbund, LinienNummer im Textfenster editiert werden. Das Vereinnahmen/Aussondern beliebiger Objekte in die Linie geschieht per Mausklick. Dabei gilt: Linke Maustaste = "+", rechte Maustaste = "-". Dabei färben sich vereinnahmte Teilstücke des Linienweges und Haltestellenmaste neben dem Linienweg ein. Punkte, Linien oder Flächen, die schon ÖPNV-relevante Tags tragen (auch das "historische" z.B. highway=bus_stop), werden zum vereinfachten Vereinnahmen hervorgehoben. Das Gleiche gilt für ÖPNV-Relationen, die nach früheren Schemen erzeugt wurden und auf Klick auch als Ganzes importiert werden können. Um deutlich zu machen, welche der Objekte zu welcher Fahrtrichtung gehören, werden diese in der Karte mit "->", "<-", "<->" (wird in beiden Richtungen benutzt) oder "<-?-> (Fahrtrichtung noch nicht zugeordnet) markiert.

Neue Haltestellen werden durch Klick auf "neue Haltestelle" erzeugt. Der Haltestellenname kann nun im Textfenster erzeugt und zugehörige Objekte vereinnahmt oder ausgeschlossen werden sowie Endhaltestellen mit "von" bzw. "nach" markiert werden. Letzteres deutet an, dass die Richtung noch nicht zugewiesen wurde. Der Endpunkte der Route können mit der Maus auch innerhalb eines Straßen-Teilstückes exakt gezogen werden. Alles wird durch farbliche Kennzeichnungen deutlich gemacht. Haltepunkte auf Straße und Gleis brauchen nicht zwingend markiert zu werden. Dazu später mehr.

Das historische highway=bus_stop wird für den Ort, an dem das Haltestellenschild steht, immer zusätzlich erzeugt. Dies hilft dem lokalen Mapper, der sich nicht mit dem komplexen ÖPNV-Tagging auskennt. So kann er weiterhin den Standort korrigieren, bzw andere Standorte erzeugen, die dann später von ÖPNV-Mappern vereinnahmt werden können.

Durch Klicken auf "Erzeugen" werden automatisch alle benötigten Relationen für die Linie und deren Haltestellen erzeugt bzw verändert. Sollte das Aufsplitten eines Weges an der Endhaltestelle notwendig sein, so wird auch dieses automatisch vorgesehen. Sofern ein Objekt bisher keine Richtung zugewiesen bekam, versucht der Editor, diese automatisch zu ermitteln: Existieren zwei parallele Routen, so wird die jeweils rechte der entsprechenden Fahrtrichtung zugeordnet. Hierzu müsste der Editor zwischen Rechts- und Linksverkehr umgeschaltet werden können. Haltestellen neben der Straße werden so zugewiesen, dass die rechts einer Fahrtrichtung liegenden dieser zugeordnet werden. Alle anderen Objekte bekommen den Pfeil für beide Richtungen, werden also mit "<->" markiert. Der Editor gibt eine Warnmeldung aus und schlägt Obiges vor, was durch Klick übernommen oder das Erzeugen verworfen werden kann. Nicht erzeugte Linien können nicht hochgeladen werden.

Behandlung von Problemlinien

Dabei müsste auch das mehrfache Durchfahren eines Teilstückes in gleicher und umgekehrter Richtung durch parallele Linien unterschiedlicher Einfärbung (im Parallelbereich) berücksichtigt werden. Hierdurch bleibt die Reihenfolge auch in diesemFalle eindeutig erkennbar. Die Sortierung der Wege und Haltestellen, welche derzeit von Hand sortiert werden müssen, kann dadurch automatisch erfolgen. Bei Ansetzen an ein vorhandenes Teilstück geht die Reihenfolge dort weiter. Durch die Unterstützung mehrfach durchfahrener Teilstrecken durch parallele Linien ist das eindeutige Ansetzen möglich. Haltestellen können während der Verwendung der Editiersoftware neben der Straße erzeugt, gelöscht und verschoben werden. !!Haltepunkte!! (auf der Fahrbahn / auf dem Gleis) braucht der User nicht zu erzeugen. Um das Problem zu umschiffen, dass eine neben der Straße liegende Haltestellen nicht eindeutig einem Punkt auf der Straße zugeordnetwerden kann, ermittelt die Software den der Haltestelle nächstliegenden Punkt auf der Straße und zeigt diesen an. Er wird standardmäßig als Haltepunkt verwendet. Der User hat jedoch die Möglichkeit, diesen (auch in eine andere Straße um die Ecke) zu verschieben. Die so verschobenen Punkte bleiben in der Editiersoftware auf Dauer durch unterschiedliche Farbgebung von den nicht verschobenen unterscheidbar. Die Software gibt dabei eine Höchstentfernung vor (beispielsweise 30 Meter), um die der Punkt weiter von der Haltestelle entfernt sein darf, als der automatisch ermittelte. Dies soll sicherstellen, dass solch ein Punkt nicht beispielsweise in die Nachbarstadt verlegt wird. Wurden Haltestelle oder Haltepunkt außerhalb der Editiersoftware auf einen Abstand größer als nach dieser Regel verschoben, so wird dies bei Aufruf der betroffenen ÖPNV-Liniemit der Software gemeldet.

begleitendes Textfenster

Die grafische Eingabe wird durch ein Textfenster begleitet, in dem in die Relation aufgenommene Wege und Haltestellen sofort sortiert erscheinen. Mehrfach vorhandene Wege und Haltestellen sind möglich, werden jedoch als Hinweis darauf mit der Anzahl markiert. Welche der Haltestellen Straßenbuchten (bzw. markierte eigenständige Halteplätze), Shelter, Sitzbänke oder Papierkörbe etc besitzen, wird einfach durch Markieren (Häkchen) in dazu vorgesehenen Spalten kenntlich gemacht. Die beiden Endhaltestellen (soweit schon erfasst) sowie die Endwege an Unterbrechungen der Relation sind dort markiert. Es ist dabei zu berücksichtigen, dass eine Station mehrfach im Linienverlauf angefahren werden kann und bei Ringlinien Start- und Zielhaltestelle gleich sind. Solange die Endhaltestellen fehlen oder es Unterbrechungen gibt, wird die Linienrelation als unfertig markiert und dies auch zur Anzeige gebracht. Über einen Klick ins Textfenster kann die betroffene Stelle bzw Unterbrechung (durch Anklicken zweier Endwege) in der Karte annavigiert werden. Für die Rückfahrt wird als "Starthilfe" die ungekehrte Reihenfolge angeboten, die noch durch "Ummalen" korrigiert werden kann. Auch die Eingabe von alternativen Routen und additiven Teilstücken ist dabei integriert. Eine oder mehrere existierende Relationen können als "Starthilfe" für das Erstellen einer weiteren Relation genutzt werden.

Haupt-, additive- und Alternativrouten

Das Textfenster zeigt die Hauptroute, additive- und Alternativrouten jeweils unterteilt in Hin- und Rückroute an. Durch Anklicken wird das jeweilige Feld eingefärbt und die entsprechende Route kann in der Karte editiert werden werden. Dabei ist es möglich, die Route (für das Editieren beider Richtungen gleichzeitig) oder nur deren Hin- oder Rückweg anzuklicken. Die Rückroute ist standardmässig aktiviert und muss explizit abgewählt werden, wenn sie nicht existiert. Eine abgewählte Rückroute wird aber niemals gelöscht, sondern nur temporär nicht ausgewertet. Sobald die Rückroute wieder angewählt wird, ist somit der letzte Zustand quasi wieder hergestellt. So kann eine versehentlich abgewählte Rückroute (auch durch einen anderen User) zurückgeholt werden. Das Setzen bzw Entfernen des "x" für die Rückroute muss in einem aufpoppenden Fenster bestätigt werden.

Die Richtung aller Routen einer Bus-/Bahnlinie ergibt sich durch Angabe der Start- sowie Zielhaltestelle der Hauptroute (from to). Entsprechend sind dann der Hinweg "from -> to" und der Rückweg "to -> from". Sofern eine solche Richtung nicht durch Veröffentlichung des Betreibers oder Verkehrsverbundes durch Erstnennung in den Fahrplänen vorgegeben ist, wählt der User sie aus. Häufig ist die Hin-Richtung durch Stadtzentrum/große Bevölkerungsdichte -> Stadtrand/kleine Bevölkerungsdichte gegeben.

Die Hauptroute wird intern als "Route O" geführt, die Alternativrouten unter Route 1, Poute 2 etc. Die additiven Routen zur Hauptroute sind 0.1, 0.2 etc, die additiven Routen zur Alternativroute 1 heißen 1.1 1.2 etc , zur Alternativroute 2 heißen 2.1 2.2 etc ...

Ob die Relation-IDs angezeigt werden oder nicht, könnte in den "Einstellungen" des Editors bestimmt werden, standardmäßig deaktiviert.

Beispiel eines Textfensters (dynamisches Formular)

Im Folgenden findet sich ein Vorschlag, wie das Textfenster (dynamisches Formular) aussehen könnte. Dabei gilt:

  • Fettschrift = Vorgabe des Editors
    • Kursivschrift = Usereingabe
    • Normalschrift = Erläuterungen
  • "toDisplay" beschreibt dabei die Zielanzeige (das, was vorn auf der Bahn-/Buslinie draufsteht) in Hin-Richtung.
    • "fromDisplay" beschreibt die Zielanzeige in Rückrichtung z.B. "Emden".
  • Dagegen bedeutet "to" die exakte Benennung (name-tag) der Zielhaltestelle der Hin-Richtung
    • "from" das name-tag der Zielhaltestelle der Rückrichtung, z.B. "Emden Hauptbahnhof ZOB".

_______________________________________

  • [Farbfeld] Bus- Linie VRR 733 Messeshuttle von Düsseldorf Hauptbahnhof (fromDisplay) nach Düsseldorf Messe Süd (toDisplay), (nicht) komplett (als "Überschrift" und menschenlesbarer Identifikator der Bus-/Bahnlinie aus den Usereingaben hierunter automatisch generiert und angezeigt, nicht editierbar. Dabei ist fromDisplay sowie toDisplay immer die Zielanzeige der Hauptroute.
    • Verkehrsverbund, Netzwerk: VRR
    • Liniennummer: 733
    • Betreiber: Rheinbahn
    • Name: Messeshuttle
    • Verkehrsmittel: Listenauswahlfeld [Bus, Straßenbahn, U-Bahn ...]
    • Farbe: (Unterstützung durch Farbauswahlfeld wäre vorteilhaft)
    • ...
    • Relation ID (eventuell zusätzlich generierte Links zu Online-Relationsanalysatoren und zu Relationseditoren)

[alle Routen in der Karte anzeigen] (Wenn hier geklickt wird, werden alle unten aufgeführten Routen der Bus-/Bahnlinie durch parallele Linien unterschiedlicher Farbe in der Karte dargestellt.)

  • Hauptroute from to ("from" und "to" sind hier editierbar. Eingetragen wird, was in der Zielanzeige von Bus/Bahn steht)
  • Relation ID (eventuell zusätzlich generierte Links zu Online-Relationsanalysatoren und zu Relationseditoren)
    • Hinweg from to (Als "from" und "to" wird hier automatisch der Name der Endhaltestellen angezeigt, wie unter "[+]Haltestellen" markiert, nicht editierbar)
      • [+]Haltestellen
      • {+]Wege
      • Relation ID (eventuell zusätzlich generierte Links zu Online-Relationsanalysatoren und zu Relationseditoren)
    • [Ringlinie? x] (standardmässig deaktiviert)
    • Rückweg to from [vorhanden? x] (Als "from" und "to" wird hier automatisch der Name der Endhaltestellen angezeigt, wie unter "[+]Haltestellen" markiert, nicht editierbar)
      • [+]Haltestellen
      • {+]Wege
      • Relation ID (eventuell zusätzlich generierte Links zu Online-Relationsanalysatoren und zu Relationseditoren)

(Man beachte, dass bei den meisten Linien das Textfenster hier schon endet und damit sehr übersichtlich bleibt. Nur bei vorhandenen additiven- und Alternativrouten wird die Liste länger.)

      • additive Routen zur Hauptroute from to [neue hinzufügen] ("from" und "to" sind hier eine automatisch generierte Kopie von Hauptroute (Zielanzeige) und nicht editierbar. Dies dient zur Verdeutlichung, zu welcher Route dies eine additive Route ist.)
        • additive Route 0.1 zur Hauptroute (Route 0) from to über ("from" und "to" sind hier eine automatisch generierte Kopie von Hauptroute (Zielanzeige) und nicht editierbar. "über" ist hierbei eine editierbare aussagekräftige Angabe, eventuell eine Haltestellenbezeichnung. Im Falle von modernen elektronischen Zielanzeigen wird dieses "über" auch dort vermerkt - bisweilen auch durch Laufschrift oder umblendende Anzeige.)
        • Relation ID
          • Hinweg from to (Als "from" und "to" werden hier automatisch die letzten beiden Haltestellen angegeben, die mit der Hauptroute identisch sind - hinter der also die Verzweigung beginnt, nicht editierbar)
            • [+]Haltestellen
            • {+]Wege
            • Relation ID
          • Rückweg to from [vorhanden? x] (Als "from" und "to" werden hier automatisch die letzten beiden Haltestellen angegeben, die mit der Hauptroute identisch sind - hinter der also die Verzweigung beginnt, nicht editierbar)
            • [+]Haltestellen
            • {+]Wege
            • Relation ID
        • additive Route 0.2 zur Hauptroute (Route 0) from to über ....

....

  • Alternativrouten zur Hauptroute from to [neue hinzufügen] ("from" und "to" sind hier eine automatisch generierte Kopie von Hauptroute (Zielanzeige) und nicht editierbar. Dies dient zur Verdeutlichung, zu welcher Route dies eine additive Route ist.)
    • Alternativroute 1 from to ("from" und "to" sind hier editierbar. Eingetragen wird, was in der Zielanzeige von Bus/Bahn steht)
    • Relation ID (eventuell zusätzlich generierte Links zu Online-Relationsanalysatoren und zu Relationseditoren)
      • Hinweg from to (Als "from" und "to" wird hier automatisch der Name der Endhaltestellen angezeigt, nicht editierbar)
        • [+]Haltestellen
        • {+]Wege
        • Relation ID (eventuell zusätzlich generierte Links zu Online-Relationsanalysatoren und zu Relationseditoren)
      • [Ringlinie? x] (standardmässig deaktiviert)
      • Rückweg to from [vorhanden? x] (Als "from" und "to" wird hier automatisch der Name der Endhaltestellen angezeigt, nicht editierbar)
        • [+]Haltestellen
        • {+]Wege
        • Relation ID (eventuell zusätzlich generierte Links zu Online-Relationsanalysatoren und zu Relationseditoren)
        • additive Routen zur Alternativroute 1 from to [neue hinzufügen] ("from" und "to" sind hier eine automatisch generierte Kopie von Hauptroute (Zielanzeige) und nicht editierbar. Dies dient zur Verdeutlichung, zu welcher Route dies eine additive Route ist.)
          • additive Route 1.1 zur Alternativroute 1 from to über ("from" und "to" sind hier eine automatisch generierte Kopie von Alternativroute 1 (Zielanzeige) und nicht editierbar. "über" ist hierbei eine editierbare aussagekräftige Angabe, eventuell eine Haltestellenbezeichnung. Im Falle von modernen elektronischen Zielanzeigen wird dieses "über" auch dort vermerkt - bisweilen auch durch Laufschrift oder umblendende Anzeige.)
          • Relation ID
            • Hinweg from to (Als "from" und "to" werden hier automatisch die letzten beiden Haltestellen angegeben, die mit der Alternativroute 1 identisch sind - hinter der also die Verzweigung beginnt, nicht editierbar)
              • [+]Haltestellen
              • {+]Wege
              • Relation ID
            • Rückweg to from [vorhanden? x] (Als "from" und "to" werden hier automatisch die letzten beiden Haltestellen angegeben, die mit der Alternativroute 1 identisch sind - hinter der also die Verzweigung beginnt, nicht editierbar)
              • [+]Haltestellen
              • {+]Wege
              • Relation ID
          • additive Route 1.2 zur Alternativroute 1 from to über ....
          • ....
    • Alternativroute 2 from to...
        • additive Routen zur Alternativroute 2 from to [neue hinzufügen] ...

...

Beim Aufklappen (Expandieren) des "+"-Haltestelle Zeichens erscheint eine editierbare Tabelle. Auch der Haltestellenname bleibt editierbar.

Abschluss durch Schließen der Eingabemaske

Die Verknüpfung von Hin und Rückfahrt sowie der Varianten unter dem Dach einer Linie sowie das Zuordnen von Haltestellen zu Haltepunkten wird durch Abschließen der Eingabemaske/Eingabe-GUI für die gerade bearbeitete ÖPNV-Linie automatisch vorgenommen. Der User braucht sich um notwendige Konstrukte von Relationen in einer Relation nicht zu kümmern. Dasselbe gilt für die notwendige Aufspaltung von Wegen, falls der Bus von einem durchgehenden Weg abbiegt oder die Linie dort endet. Dafür sorgt die Software hinter der Eingabemaske. Falls der Rückweg der Linie fehlt und deren Nichtexistenz vom User nicht durch explizite Angabe bestätigt wurde, wird die Linie als unvollständig gekennzeichnet und dies zur Anzeige gebracht.

andere Relationen

Es wäre zu überlegen, ob der ÖPNV-editor nicht auch zur Eingabe von anderen Relationen, wie zum Radtouren, Grenzen etc nutzbar gemacht werden kann.

Unterstützung durch Server

Es wäre zu überlegen, inwieweit der OSM Server unterstützend wirken könnte, indem er nach dem Hochladen vom ÖPNV Editor geeignete additive Strukturen erzeugt und vorhält, welche ihm das Auffinden der zu einer Linie, Radroute oder Grenze zugeordneten Objekte erleichtert. Die hierfür verbrauchte Rechenkapazität würde beim Abrufen der Daten eingespart und könnte sich in der Gesamtbilanz ressourcenschonend erweisen, da der Download von Daten den Upload übersteigen dürfte.

Unterstützung durch Grafik-Programmierer

Der ÖPNV-Editor als auch Verbesserung an anderer Editiersoftware allgemein wirft grafische Probleme auf, denen derzeit offenbar keine Programmierer im OSM-Umfeld gewachsen ist. Dabei sind folgende Hauptprobleme zu lösen:

  • Ich fahre mit der Maus über eine gerenderte Karte eine Route entlang von Straßen nach, und dabei die Wege einzufärben, zu identifizieren und automatisch in der richtigen Reihenfolge zu sortieren.
  • Wie bestimme ich zu einem Punkt (Haltestelle) neben der Straße, den nächstgelegen Punkt auf einer Straße?
  • Wie mache ich den Punkt entlang von Straßen verschiebbar, auch in eine Nebenstraße um die Ecke?
  • Wie begrenze ich dieses Verschieben auf eine maximale Entfernung von um die fünfzig Meter?

Es wäre zu überlegen, bei anderen freien Projekten um Unterstützung im Grafikbereich anzufragen. Welcher OSM Programmierer nimmt Kontakt zu grafischen freie Software Projekten z.B. GIMP auf und stellt dort die richtigen Fragen? Möglicherweise könnten auch Programmierer einer Layout-Software für Elektronik-Platinen oder Vektorgrafikprogrammen hilfreich sein.

Gesamtwürdigung

Die Kombination Oxomoa-Schema zusammen mit dem ÖPNV-Editor wäre unschlagbar. Der Editor würde dem Schema zum Durchbruch verhelfen. Dabei wird das Editieren schneller, einfacher und erheblich übersichtlicher als beim alten Schema mit den bisherigen Editoren. Diese beiden Vorschläge zusammen würde eine optimale Lösung aller bisher diskutierten Probleme darstellen.

Letztendlich kann es der Bedienoberfläche und deren Benutzer ziemlich egal sein, wie das dahinter liegende Speicherschema aussieht. Eigentlich ist es also die Bedienoberfläche, welche darauf abgeklopft werden sollte, ob alle in der Realität vorkommenden Fälle mit ihr erfasst werden können. Wenn dies gegeben ist, kann das Speicherschema entwickelt werden und letztendlich ein mödifiziertes Oxomoa-Schema darstellen.