Benachrichtigung

Aufgrund der geringen Auslastung ist der Support per Chat nach Freitag, dem 10. Mai, nicht mehr verfügbar. So kann sich das Team auf unser E-Mail-Angebot konzentrieren, um die Kommunikation mit Partnern insgesamt zu verbessern. Bitte nutzen Sie nach dem 10. Mai für alle Anfragen unsere E-Mail-Option.

Datenfeed erstellen

Preise

Die General Transit Feed Specification (GTFS) verwendet zur Definition von Preisen zwei Dateien:

  • fare_attributes.txt: Diese Datei enthält ein Preisattribut, das eine Preisklasse definiert. Für ein Preisattribut sind Preis und Währung festgelegt und es ist angegeben, ob das Ticket beim Einsteigen oder vorab gekauft werden muss. Zudem sind die Anzahl der zulässigen Umstiege und die Gültigkeitsdauer definiert.
  • fare_rules.txt: Aus dieser Datei geht hervor, welchen Geltungsbereich Fahrscheine im Verkehrsnetz haben.

In diesem Artikel wird beschrieben, wie mithilfe dieser zwei Dateien ein genauer Datenfeed für Ihre Fahrpreise zusammengestellt wird.

Fahrpreisattribute

 In der Datei fare_attributes.txt sind verschiedene Aspekte des Fahrpreises definiert (ID, Zahlungsart usw.). Diese Datei hat folgende Struktur:

fare_attributes.txt file structure

Das folgende Beispiel zeigt eine einfache fare_attributes.txt-Datei:

fare_id price currency_type payment_method transfers transfer_duration
1 0 0 0 0
2 0,50 0 0 0
3 1 0 0 0
4 1,50 0 0 0
5 2 0 0 0

Definieren Sie für jeden Fahrpreis in der Datei fare_attributes.txt die Attribute price, currency_type und payment_method. Mit dem Feld transfers können Sie definieren, ob Umstiege erlaubt oder nicht erlaubt sind. „0“: nicht erlaubt, „1“: ein Umstieg erlaubt, „2“: zwei erlaubt. Wenn Sie das Feld leer lassen, darf beliebig oft umgestiegen werden. Legen Sie im Feld transfer_duration fest, nach welchem Zeitraum (in Sekunden) ein Umstieg abläuft. Das System berechnet die transfer_duration vom Beginn der ersten Fahrt bis zum Ende der letzten Fahrt (siehe Beispiel unten).

Wichtig:

  • Wenn Sie angeben möchten, wie lang ein Fahrschein für einen Preis ohne Umstiege gültig ist, legen Sie transfers auf „0“ fest und geben Sie im Feld transfer_duration einen gültigen Zeitraum (in Sekunden) ein.
  • Sofern Sie transfer_duration nicht nutzen, um die Fahrscheingültigkeit anzugeben, wird empfohlen, dieses Feld entweder nicht in die Datei einzufügen oder es leer zu lassen, wenn Sie transfers auf „0“ festlegen. 

Preisregeln

 In der Datei fare_rules.txt ist beschrieben, welchen Geltungsbereich Fahrscheine im Verkehrsnetz haben. Diese Datei hat folgende Struktur:

fare_rules.txt file structure

Das folgende Beispiel zeigt eine einfache fare_rules.txt-Datei:

fare_id route_id origin_id destination_id contains_id
a TSW 1 1  
a TSE 1 1  
a GRT 1 1  
a GRJ 1 1  
b GRT 3 3  
c GRT     6

Die Datei fare_rules.txt unterstützt folgende Preisstrukturen:

  1. Preis hängt vom Routenverlauf ab.
    • Legen Sie einen Wert für das Feld route_id fest, um einen Preis einer bestimmten Route zuzuordnen.
    • Wenn ein Preis für mehrere Routen gültig ist, geben Sie einen Eintrag für jede Route in fare_rules an.
  2. Preis ist abhängig von Abfahrts- oder Zielzone oder -haltestelle.
    • Verwenden Sie die Felder origin_id und destination_id, um Preisregeln zu definieren, die auf der Abfahrts- oder Zielzone oder -haltestelle basieren.
    • Origin_id und destination_id beziehen sich auf die Zonen, in der sich die Abfahrts- und die Zielhaltestelle befinden. Fügen Sie das Feld zone_id hinzu, um diese Informationen in der Datei stops.txt anzugeben.
    • Wenn Sie haltestellenbasierte Regeln definieren möchten, legen Sie in der Datei stops.txt für jede Haltestelle eine Zone fest.
  3. Preis hängt davon ab, welche Zonen der Streckenverlauf durchquert.
    • Wenn Sie Preisregeln auf Basis von Zonen definieren möchten, die der Streckenverlauf durchquert, verwenden Sie das Feld contains_id. Geben Sie damit jede Zone an, für die der Preis gilt.
    • contains_id verweist auf eine zone_id, die in der Datei stops.txt definiert ist.

Die meisten Tarifsysteme verwenden eine dieser Preisstrukturen oder eine Kombination davon. Preise, die ohne Regeln definiert sind, gelten für alle Routen, die ihre Umstiegseinschränkungen erfüllen.

Wenn für einen bestimmten Streckenverlauf mehrere Preise gültig sind, sehen Nutzer die günstigste Variante.

Preise für mehrere Verkehrsverbunde

Wenn der Feed mehrere Verkehrsverbunde enthält, fügen Sie der Datei fare_attributes.txt für jeden Preis das Feld agency_id hinzu. Ein Preis kann immer nur einem Verkehrsverbund zugeordnet werden. Wenn ein Preis zu mehreren Verkehrsverbunden gehört, müssen Sie ihn duplizieren.

Spezielle Fahrpreiskategorien

In Google Maps werden keine unterschiedlichen Fahrpreiskategorien unterstützt, z. B. Erwachsene, Senioren oder Kinder. In den Streckenergebnissen erscheint nur ein Fahrpreis. Verwenden Sie die Standardpreiskategorie.

Beispielszenarien und Strukturieren von Preisen

In den folgenden Abschnitten finden Sie Beispielszenarien. Außerdem wird beschrieben, wie die Preise strukturiert werden.

Beispiel 1: Fahrpreis ist für alle Fahrten gleich, unbegrenzte Umstiege

Angenommen, der Demoverkehrsverbund hat folgende Preisstruktur festgelegt:

  • Fahrgäste zahlen beim Einsteigen 1 € (price='1.00', currency='€', payment_method='0').
  • Das Ticket gilt für alle Fahrzeuge und läuft nicht ab (transfers='').
  • Die Fahrdauer ist unbegrenzt, weil transfer_duration ausgelassen wird.

Weil der Fahrpreis für alle Fahrten gleich ist, kann der Demoverkehrsverbund fare_rules.txt weglassen.

Datei fare_attributes.txt

fare_id price currency_type payment_method transfers
only_fare 1 0  

Erwachsenenfahrpreis berechnen

Der Fahrtenplaner berechnet einen Fahrpreis von 1 € für jeden Abschnitt des Streckenverlaufs, der einen Fahrzeugwechsel beinhaltet. Weil beliebig oft umgestiegen werden kann, zeigt der Fahrtenplaner nur den niedrigsten Preis an: den Erwachsenenfahrpreis in Höhe von 1 €.

Beispiel 2: Fahrpreis ist für alle Fahrten gleich, kein Umstieg

Angenommen, der Demoverkehrsverbund hat folgende Preisstruktur festgelegt:

  • Fahrgäste zahlen beim Einsteigen 1 € (price='1.00', currency='€', payment_method='0').
  • Die Fahrdauer ist unbegrenzt, weil transfer_duration ausgelassen wird.
  • Bei jedem Fahrzeugwechsel muss der Passagier neu bezahlen (transfers='0').

Weil der Fahrpreis für alle Fahrten gleich ist, kann der Demoverkehrsverbund fare_rules.txt weglassen.

Datei fare_attributes.txt

fare_id price currency_type payment_method transfers
only_fare 1 0 0

Erwachsenenfahrpreis berechnen

Der Fahrtenplaner berechnet einen Fahrpreis von 1 € für jeden Abschnitt des Streckenverlaufs, der einen Fahrzeugwechsel beinhaltet. Der Fahrpreis für einen Streckenverlauf mit einem Buswechsel beträgt also 2 €.

Beispiel 3: Fahrpreis ist für alle Fahrten gleich, Umstiege erlaubt

Angenommen, der Demoverkehrsverbund hat folgende Preisstruktur festgelegt:

  • Fahrgäste zahlen beim Einsteigen 1 € (price='1.00', currency='€', payment_method='0').
  • Innerhalb von 90 Minuten kann unbegrenzt umgestiegen werden (transfers='',transfer_duration='5400').

Weil der Fahrpreis für alle Fahrten gleich ist, kann der Demoverkehrsverbund fare_rules.txt weglassen.

Datei fare_attributes.txt

fare_id price currency_type payment_method transfers transfer_duration
only_fare 1 0   5.400

Erwachsenenfahrpreis berechnen

Der Fahrtenplaner berechnet einen Fahrpreis von 1 € für jeden Abschnitt des Streckenverlaufs, der einen Fahrzeugwechsel beinhaltet. Dann wird die Zeit für den Streckenverlauf berechnet. Beträgt diese weniger als 90 Minuten, wird ein Fahrpreis von 1 € erhoben.

Beispiel 4: Verschiedene Fahrpreise für Nahverkehrs- und Expressrouten

Angenommen, der Demoverkehrsverbund hat folgende Preisstruktur festgelegt:

  1. Fahrgäste zahlen beim Einsteigen in Nahverkehrsbusse 1,75 € (Route 1).
  2. Fahrgäste zahlen beim Einsteigen in Expressbusse 5 € (Routen 2 und 3).
  3. Umstiege sind nicht erlaubt.

Einige Fahrten kosten mehr als andere. Daher muss der Demoverkehrsverbund die Datei fare_rules.txt einfügen und für jede Route muss ein Eintrag vorhanden sein, aus dem der Fahrpreis abgeleitet wird.

Datei fare_attributes.txt

fare_id price currency_type payment_method transfers
local_fare 1,75 0 0
express_fare 5 0 0

 

Datei fare_rules.txt

fare_id route_id
local_fare Route_1
express_fare Route_2
express_fare Route_3

Erwachsenenfahrpreis berechnen

Der Preis 5 € gilt nur für die Routen 2 oder 3 und der Preis 1,75 € nur für die Route 1. Wenn der Streckenverlauf die Routen 1 und 2 beinhaltet, beträgt der Preis 6,75 €.

Beispiel 5: Fahrpreis erhöht sich beim Kauf mit Umstiegsmöglichkeit

Angenommen, der Demoverkehrsverbund hat folgende Preisstruktur festgelegt:

  • Fahrgäste zahlen beim Einsteigen in Nahverkehrsbusse 1,75 €.
  • Bei einem Umstieg zahlen die Fahrgäste zusätzlich 0,25 €.
  • Die gekauften Umstiege sind 90 Minuten gültig.

Weil diese Regeln für alle Fahrten gelten, kann der Demoverkehrsverbund fare_rules.txt weglassen.

Datei fare_attributes.txt

fare_id price currency_type payment_method transfers transfer_duration
simple_fare 1,75 0 0  
plustransfer_fare 2 0   5.400

Erwachsenenfahrpreis berechnen

Technisch gesehen gelten beide Fahrpreise für einen Streckenverlauf ohne Umstiege. Der Fahrtenplaner wählt jedoch immer den günstigsten Fahrpreis aus:

  • Für einen Streckenverlauf mit einem Umstieg beträgt simple_fare 3,50 € bzw. 2 €, wenn ein Umstieg gekauft wird. Der Fahrtenplaner zeigt also einen Preis von 2 € für alle Fahrtstrecken an, die einen Fahrzeugwechsel umfassen.
  • Für einen Streckenverlauf ohne Umstiege ist der Preis in Höhe von 1,75 € niedriger als der für plustransfer_fare von 2 €. Ist für eine Fahrtstrecke kein Umsteigen nötig, beträgt der Preis also 1,75 €. 

Beispiel 6: Fahrpreis hängt von Haltestellenpaaren ab, der Weg zum Ziel ist nicht relevant

In diesem Beispiel sind nur die Ein- und Ausstiege wichtig. Wenn Sie diese Preisstruktur für den Feed definieren möchten, muss jede Haltestelle eine eigene Zonen-ID haben, die in stops.txt definiert ist. Jede Haltestelle wird als einzelne Zone gezählt.

  • In den Dateien fare_attributes.txt und fare_rules.txt ist eine Zeile pro Haltestellenpaar enthalten.
  • In der Datei fare_attributes.txt werden mit den Feldern origin_id und destination_id die Haltestellenpaare nach Zonen-ID angegeben.

Datei fare_attributes.txt

fare_id price currency_type payment_method transfers
!S1_to_S2 1,75 0  
!S1_to_S3 3,25 0  
!S1_to_S4 4,55 0  
       
!S10_to_S1 5,65 0  

Datei fare_rules.txt

fare_id origin_id destination_id
!S1_to_S2 S1 S2
!S1_to_S3 S1 S3
!S1_to_S4 S1 S4
   
!S10_to_S1 S10 S1

Erwachsenenfahrpreis berechnen

Mit dem Fahrtenplaner wird ein Streckenverlauf berechnet. Dann werden die Preisregeln durchlaufen, bis ein Haltestellenpaar gefunden wird, das mit der Kombination aus Abfahrts- und Zielhaltestelle übereinstimmt. Der öffentliche Feed des Nahverkehrsunternehmens BART für die Orte der San Francisco Bay Area ist ein Beispiel aus der Praxis für diese Art der Preisstruktur.

Beispiel 7: Fahrpreis hängt von Zonen ab

Angenommen, der Demoverkehrsverbund hat ein konzentrisches Drei-Zonen-System, wobei die Preise davon abhängen, welche Zonen ein Fahrgast während eines Streckenverlaufs durchquert. Wenn Sie diese Preisstruktur für den Feed definieren möchten, müssen die Dateien fare_attributes.txt und fare_rules.txt eine Zeile für jede mögliche Kombination von Zonen enthalten. Sind die zonenübergreifenden Preisstrukturen sehr komplex, kann es einfacher sein, die Datei fare_rules.txt mit Abfahrt und Ziel programmatisch zu erstellen, um die Preise zu definieren.

Datei fare_attributes.txt

fare_id price currency_type payment_method transfers
F1 4,15 0  
F2 2,20 0  
F3 2,20 0  
F4 2,95 0  
F5 1,25 0  
F6 1,95 0  
F7 1,95 0  

Datei fare_rules.txt

fare_id contains_id
F1 1
F1 2
F1 3
F2 1
F2 2
F3 1
F3 3
F4 2
F4 3
F5 1
F6 2
F7 3

Erwachsenenfahrpreis berechnen

Sehen wir uns die Definitionen in der Datei fare_rules.txt genauer an.

  • F1 gilt für jede Fahrt, die die Zonen 1, 2, 3 durchquert.
  • F2 gilt für jede Fahrt, die die Zonen 1, 2 durchquert.
  • F3 gilt für jede Fahrt, die die Zonen 1, 3 durchquert.
  • F4 gilt für jede Fahrt, die die Zonen 2, 3 durchquert.
  • F5 gilt für jede Fahrt, die nur die Zone 1 durchquert.
  • F6 gilt für jede Fahrt, die nur die Zone 2 durchquert.
  • F7 gilt für jede Fahrt, die nur die Zone 3 durchquert.

Mit dem Fahrtenplaner wird ein Streckenverlauf berechnet. Dann werden die Preisregeln durchlaufen, um die Preise basierend auf der Zone zu bestimmen. Da F1 auch die Fahrt in Zone 1 beinhaltet, gilt nur der Preis F4 (2,95 €) für eine Fahrt von Zone 2 zu Zone 3. Eine Preisregel wird nur angewendet, wenn die Kombination aus Zonen, die im Streckenverlauf durchfahren werden, mit den Zonen in der Preisregel übereinstimmen. Für eine Fahrt zwischen Zone 2 und 3 gibt der Fahrtplaner einen Erwachsenenfahrpreis von 2,95 € aus.

Beispiel 8: Auswirkung von „transfers“ und „transfer_duration“

Unten sehen Sie ein Beispiel für eine Fahrt mit Umstieg:

  • 1. Fahrt fährt um 10:00 Uhr ab und kommt um 11:00 Uhr an.
  • 2. Fahrt fährt um 11:15 Uhr ab und kommt um 12:00 Uhr an.
  • Damit der Preis für die gesamte Fahrt gilt, muss er mindestens einmal Umsteigen und eine „transfer_duration“ von mindestens 2 Stunden (von 10:00 bis 12:00 Uhr) beinhalten.

Beispiel 9: Fahrpreise und Blockfahrten

Bei einer Blockfahrt werden zwei Fahrten kombiniert, die zu verschiedenen Routen gehören. So können Fahrgäste im selben Fahrzeug bleiben, während sie von einer Route zur nächsten wechseln. Für eine Fahrt, zu der eine Blockfahrt gehört, wählt das System einen Preis aus, der für alle beteiligten Routen gilt. Blockfahrten werden bei der Preisdefinition nicht als Umstieg gezählt.

Das folgende Beispiel zeigt, wie ein Preis für eine Blockfahrt definiert wird:

  • Angenommen, es gibt die zwei Routen: A und B.
  • Jede Fahrt auf Route A oder B kostet 1 € und jede Fahrt, die A und B beinhaltet, kostet 2 €.

Die Werte in der Datei fare_attributes.txt und fare_rules.txt sollten so aussehen:

Datei fare_attributes.txt

fare_id price currency_type payment_method transfers transfer_duration
fare_A 1 0 0  
fare_B 1 0 0  
fare_AB 2 0 0  

Datei fare_rules.txt

fare_id route_id origin_id destination_id contains_id
fare_A route_A        
fare_B route_B        
fare_AB route_A        
fare_AB route_B        
 

Benötigen Sie weitere Hilfe?

Mögliche weitere Schritte:

Suche
Suche löschen
Suche schließen
Hauptmenü
5939693964069340574
true
Suchen in der Hilfe
true
true
true
true
true
82656
false
false