GTFS Realtime Referenz¶
Mit einem GTFS Realtime Realtime-Feed können Verkehrsunternehmen ihre Kunden in Echtzeit über Störungen ihres Dienstes (geschlossene Bahnhöfe, ausgefallene Linien, große Verspätungen usw.), den Standort ihrer Fahrzeuge und die voraussichtlichen arrival informieren.
Die Version 2.0 der Feed-Spezifikation wird auf dieser Website diskutiert und dokumentiert. Gültige Versionen sind "2.0", "1.0".
Begriffsdefinitionen¶
Erforderlich¶
In GTFS v2.0 und höher beschreibt die Spalte Erforderlich, welche Felder von einem Produzenten zur Verfügung gestellt werden müssen, damit die Verkehrsdaten gültig und für eine konsumierende Anwendung sinnvoll sind.
Die folgenden Werte werden im Feld " Erforderlich" verwendet:
- Erforderlich: Dieses Feld muss von einem GTFS bereitgestellt werden.
- Bedingt erforderlich: Dieses Feld ist unter bestimmten Bedingungen erforderlich, die in der Feldbeschreibung aufgeführt sind. Außerhalb dieser Bedingungen ist das Feld optional.
- Wahlweise: Dieses Feld ist optional und muss von den Produzenten nicht implementiert werden. Wenn die Daten jedoch in den zugrundeliegenden automatischen vehicle verfügbar sind (z. B. VehiclePosition
timestamp
), wird empfohlen, dass die Hersteller diese optionalen Felder nach Möglichkeit bereitstellen.
Beachten Sie, dass die semantischen Anforderungen in GTFS 1.0 nicht definiert wurden und daher Feeds mit gtfs_realtime_version
von 1
diese Anforderungen möglicherweise nicht erfüllen (siehe den Vorschlag für semantische Anforderungen für weitere Einzelheiten).
Kardinalität¶
DieKardinalität gibt die Anzahl der Elemente an, die für ein bestimmtes Feld bereitgestellt werden können, wobei die folgenden Werte gelten:
- One - Für dieses Feld kann ein einzelnes One-Element angegeben werden. Dies entspricht den erforderlichen und optionalen Kardinalitäten des Protokollpuffers.
- Viele - Für dieses Feld können viele Elemente (0, 1 oder mehr) angegeben werden. Dies entspricht der wiederholten Kardinalität des Protokollpuffers.
Verweisen Sie immer auf die Felder Erforderlich und Beschreibung, um zu sehen, ob ein Feld erforderlich, bedingt erforderlich oder optional ist. Für die Kardinalität des Protokollpuffers verweisen Sie bitte auf GTFS-realtime/proto/GTFS-realtime.proto">GTFS
.proto.
Protokollpuffer-Datentypen¶
Die folgenden Protokollpuffer-Datentypen werden zur Beschreibung von Feed-Elementen verwendet:
- message: Komplexer Typ
- enum: Liste von Festwerten
Experimentelle Felder¶
Felder, die als experimentell gekennzeichnet sind, unterliegen Änderungen und sind noch nicht offiziell in die Spezifikation aufgenommen worden. Ein experimentelles Feld kann in der Zukunft formell angenommen werden.
Element-Index¶
Elemente¶
message FeedMessage¶
Der Inhalt einer message. Jede message im Stream wird als Antwort auf eine entsprechende HTTP-GET-Anfrage erhalten. Ein Echtzeit-Feed wird immer mit Bezug auf einen bestehenden GTFS definiert. Alle entity werden in Bezug auf den GTFS aufgelöst.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
header | FeedHeader | Erforderlich | Eine | Metadaten zu diesem Feed und der message. |
entity | FeedEntity | Bedingt erforderlich | Viele | Inhalt des Feeds. Wenntime für das Versandverfahren verfügbar sind, muss dieses Feld angegeben werden. Wenn dieses Feld EMPTY ist, sollten die Verbraucher davon ausgehen, dass keinetime für das System verfügbar sind. |
message FeedHeader¶
Metadaten zu einem Feed, die in Feed-Nachrichten enthalten sind.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
gtfs_realtime_version | string | Erforderlich | Eine | Version der Feed-Spezifikation. Die aktuelle Version ist 2.0. |
Incrementality | Incrementality | Erforderlich | Eine | |
timestamp | uint64 | Erforderlich | Eine | Dieser timestamp gibt den Zeitpunkt an, zu dem der Inhalt dieses Feeds erstellt wurde (in time). In time (d. h. die Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 UTC). Um time zwischen Systemen zu vermeiden, die Echtzeitinformationen produzieren und konsumieren, wird dringend empfohlen, den timestamp von einem time abzuleiten. Die Verwendung von Servern der Schicht 3 oder noch niedrigerer Schichten ist völlig akzeptabel, da time von bis zu einigen Sekunden tolerierbar sind. |
enum Incrementality¶
Legt fest, ob der aktuelle Abruf inkrementell ist.
- FULL_DATASET: Diese Feed-Aktualisierung überschreibt alle vorangegangenen Echtzeitinformationen für den Feed. Daher wird erwartet, dass diese Aktualisierung einen FULL Schnappschuss aller bekannten Echtzeitinformationen liefert.
- DIFFERENTIAL: Derzeit wird dieser Modus nicht unterstützt und das Verhalten ist für Feeds, die diesen Modus verwenden, nicht spezifiziert. Auf der GTFS-realtime">GTFS Realtime Realtime-Mailingliste wird diskutiert, wie das Verhalten des DIFFERENTIAL vollständig spezifiziert werden kann, und die Dokumentation wird aktualisiert, sobald diese Diskussionen abgeschlossen sind.
Werte
Wert |
---|
FULL_DATASET |
DIFFERENTIAL |
message FeedEntity¶
Eine Definition (oder Aktualisierung) einer entity im Transit-Feed. Wenn die entity nicht gelöscht wird, sollte genau eines der Feldertrip_update",vehicle",Alert" undShape" ausgefüllt werden.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
id | string | Erforderlich | Eine | Feed-unique identifier für diese entity. Die IDs werden nur zur Unterstützung der Incrementality verwendet. Die tatsächlichen Entitäten, auf die der Feed verweist, müssen durch explizite Selektoren angegeben werden (siehe EntitySelector weiter unten für weitere INFO). |
is_deleted | bool | Optional | Eine | Angabe, ob diese entity gelöscht werden soll. Sollte nur für Feeds mit der Incrementality DIFFERENTIAL angegeben werden - dieses Feld sollte NICHT für Feeds mit der Incrementality FULL_DATASET angegeben werden. |
trip_update | TripUpdate | Bedingt erforderlich | Eine | Daten über die departure einer trip. Mindestens eines der Felder trip_update, vehicle, Alert oder Shape muss angegeben werden - alle diese Felder dürfen nicht EMPTY sein. |
vehicle | VehiclePosition | Bedingt erforderlich | Eine | Daten über die Position eines vehicle. Mindestens eines der Felder trip_update, vehicle, Alert oder Shape muss angegeben werden - alle diese Felder dürfen nicht EMPTY sein. |
Alert | Alert | Bedingt erforderlich | Eine | Daten über die Alert. Mindestens eines der Felder trip_update, vehicle, Alert oder Shape muss angegeben werden - alle diese Felder dürfen nicht EMPTY sein. |
Shape | Shape | Bedingt erforderlich | Eine | Daten über die in Echtzeit ADDED Shapes, z. B. für eine DETOUR. Mindestens eines der Felder trip_update, vehicle, Alert oder Shape muss angegeben werden - alle diese Felder dürfen nicht EMPTY sein. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
message TripUpdate¶
Echtzeit-Aktualisierung des Fortschritts eines vehicle auf einer trip. Bitte beachten Sie auch die allgemeine Diskussion über die trip-updates">Entitäten zur Aktualisierung vontrip.
Je nach dem Wert von ScheduleRelationship kann ein TripUpdate angeben:
- Eine trip, die entlang des Fahrplans verläuft.
- Eine trip, die entlang einer Route verläuft, aber keinen festen Fahrplan hat.
- Eine trip, die in Bezug auf den Fahrplan ADDED oder entfernt wurde.
- Eine neue trip, die eine Kopie einer bestehenden trip im statischen GTFS ist. Sie wird zu dem in TripProperties angegebenen Servicedatum und der dort angegebenen time durchgeführt.
Die Aktualisierungen können sich auf zukünftige, vorhergesagte arrival oder auf vergangene, bereits eingetretene Ereignisse beziehen. In den meisten Fällen handelt es sich bei den Informationen über vergangene Ereignisse um einen gemessenen Wert, so dass empfohlen wird, dass der uncertainty 0 ist. Es kann jedoch Fälle geben, in denen dies nicht zutrifft, so dass für vergangene Ereignisse ein von 0 abweichender uncertainty zulässig ist. Ist der uncertainty einer Aktualisierung nicht 0, handelt es sich entweder um eine ungefähre Vorhersage für eine trip, die noch nicht abgeschlossen ist, oder die Messung ist nicht präzise, oder die Aktualisierung war eine Vorhersage für die Vergangenheit, die nach dem Eintreten des Ereignisses nicht überprüft wurde.
Wenn ein vehicle mehrere Fahrten innerhalb desselben Blocks bedient (weitere Informationen über Fahrten und Blöcke finden Sie in GTFS trips.txt):
- sollte der Feed ein TripUpdate für die trip enthalten, die gerade von dem vehicle bedient wird. Die Produzenten werden ermutigt, TripUpdates für eine oder mehrere Fahrten nach der aktuellen trip in den Block dieses vehicle aufzunehmen, wenn der Produzent von der Qualität der Vorhersagen für diese zukünftige(n) trip(en) überzeugt ist. Durch die Aufnahme mehrerer TripUpdates für dasselbe vehicle wird vermieden, dass die Vorhersagen für die Fahrgäste beim Übergang von einer trip zu einer anderen "aufpoppen" und dass die Fahrgäste im Voraus über Verspätungen informiert werden, die sich auf nachfolgende Fahrten auswirken (z. B. wenn die bekannte delay die geplanten Wartezeiten zwischen den Fahrten überschreitet).
- Die jeweiligen TripUpdate müssen nicht in der Reihenfolge, in der sie im Block SCHEDULED sind, zum Feed ADDED werden. Wenn es beispielsweise Fahrten mit den
trip_ids
1, 2 und 3 gibt, die alle zu einem Block gehören, und das vehicle fährt zuerst die trip 1, dann die trip 2 und dann die trip 3, können dietrip_update
in beliebiger Reihenfolge erscheinen - zum Beispiel ist das Hinzufügen der trip 2, dann der trip 1 und dann der trip 3 zulässig.
Es ist zu beachten, dass die Aktualisierung eine bereits abgeschlossene trip beschreiben kann; zu diesem end reicht es aus, eine Aktualisierung für den letzten Halt der trip zu liefern. Wenn die arrival an der letzten Haltestelle in der Vergangenheit liegt, schließt der Kunde daraus, dass die gesamte trip in der Vergangenheit liegt (es ist möglich, wenn auch unwichtig, auch Aktualisierungen für vorhergehende Haltestellen zu liefern). Diese Option ist vor allem für eine trip relevant, die vorzeitig beendet wurde, trip aber laut Fahrplan zum aktuellen time noch andauert. Das Entfernen der Aktualisierungen für diese trip könnte dazu führen, dass der Kunde annimmt, die trip sei noch im Gange. Beachten Sie, dass der Feed-Anbieter vergangene Aktualisierungen löschen darf, aber nicht muss - dies ist ein Fall, in dem dies praktisch nützlich wäre.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
trip | TripDescriptor | Erforderlich | Eine | Die trip, für die diese message gilt. Es kann höchstens eine entity für jede tatsächliche trip geben. Wenn es keine gibt, bedeutet dies, dass keine Vorhersageinformationen verfügbar sind. Es bedeutet nicht bedeutet, dass die trip planmäßig verläuft. |
vehicle | VehicleDescriptor | Optional | Eine | Zusätzliche Informationen über das vehicle, das für diese trip eingesetzt wird. |
stop_time_update | StopTimeUpdate | Bedingt erforderlich | Viele | Aktualisierungen der Haltestellenzeiten für die trip (sowohl zukünftige, d. h. Vorhersagen, als auch in einigen Fällen vergangene, d. h. bereits erfolgte). Die Aktualisierungen müssen nach stop_sequence sortiert sein und für alle folgenden Haltestellen der trip bis zum nächsten angegebenen stop_time_update gelten. Es muss mindestens eine stop_time_update für die trip angegeben werden, es sei denn, die trip.schedule_relationship ist CANCELED oder DUPLICATED - ist die trip CANCELED, müssen keine stop_time_updates angegeben werden. Wenn die trip DUPLICATED ist, können stop_time_updates bereitgestellt werden, umtime für die neue trip anzuzeigen. |
timestamp | uint64 | Optional | Eine | Der jüngste Zeitpunkt, zu dem dertime des vehicle gemessen wurde, um die Stoppzeiten für die Zukunft zu schätzen. Wenn Haltestellenzeiten in der Vergangenheit angegeben werden, können die arrival früher als dieser Wert liegen. In time (d. h. die Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 UTC). |
delay | int32 | Optional | Eine | Die aktuelle Fahrplanabweichung für die trip. delay sollte nur angegeben werden, wenn die Vorhersage relativ zu einem bestehenden Fahrplan in GTFS gegeben wird. Diedelay (in Sekunden) kann positiv (d. h., das vehicle ist verspätet) oder negativ (d. h., das vehicle ist dem Fahrplan voraus) sein. Eine delay von 0 bedeutet, dass das vehicle genau time ist. delay in StopTimeUpdates haben Vorrang vor delay trip, so dass delay trip nur bis zur nächsten Haltestelle entlang der trip mit einem angegebenen delay weitergegeben werden. Feed-Anbietern wird dringend empfohlen, einen TripUpdate.timestamp anzugeben, der angibt, wann der delay zuletzt aktualisiert wurde, um die Aktualität der Daten zu bewerten. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
trip_properties | TripProperties | Optional | Eine | Liefert die aktualisierten Eigenschaften für die trip. Vorsicht! diese message ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
message StopTimeEvent¶
Zeitangaben für ein einzelnes vorhergesagtes Ereignis (entweder arrival oder departure). Die Zeitangabe besteht aus der delay und/oder der geschätzten time und der uncertainty.
- delay sollte verwendet werden, wenn die Vorhersage relativ zu einem bestehenden Zeitplan in GTFS gegeben wird.
- Dietime sollte unabhängig davon angegeben werden, ob es einen vorausgesagten Fahrplan gibt oder nicht. Wenn sowohl time als auch delay angegeben werden, hat die time Vorrang (obwohl normalerweise die time, wenn sie für eine SCHEDULED trip angegeben wird, gleich der SCHEDULED time in GTFS + delay sein sollte).
gilt dieuncertainty gleichermaßen für time und delay. Die uncertainty gibt grob den erwarteten Fehler bei der tatsächlichen delay an (aber beachten Sie, dass wir ihre genaue statistische Bedeutung noch nicht definiert haben). Es ist möglich, dass die uncertainty 0 ist, z. B. bei Zügen, die von einem Computer gesteuert werden.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
delay | int32 | Bedingt erforderlich | Eine | Diedelay (in Sekunden) kann positiv sein (was bedeutet, dass das vehicle Verspätung hat) oder negativ (was bedeutet, dass das vehicle dem Zeitplan voraus ist). Eine delay von 0 bedeutet, dass das vehicle genau time ist. In einem StopTimeEvent muss entweder die delay oder die time angegeben werden - beide Felder dürfen nicht EMPTY sein. |
time | int64 | Bedingt erforderlich | Eine | Ereignis als absolute time. In time (d. h. die Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 UTC). In einem StopTimeEvent muss entweder delay oder time angegeben werden - beide Felder dürfen nicht EMPTY sein. |
uncertainty | int32 | Optional | Eine | Wenn die uncertainty nicht angegeben wird, wird sie als unbekannt interpretiert. Um eine völlig sichere Vorhersage anzugeben, setzen Sie die uncertainty auf 0. |
message StopTimeUpdate¶
Echtzeitaktualisierung von arrival und/oder departure für eine bestimmte Haltestelle auf einer trip. Bitte beachten Sie auch die allgemeine Diskussion über die Aktualisierung von time in der Dokumentation message-tripdescriptor">TripDescriptor und trip-updates">trip Updates Entities.
Aktualisierungen können sowohl für vergangene als auch für zukünftige Ereignisse angegeben werden. Der Produzent darf, muss aber nicht, vergangene Ereignisse auslassen.
Die Aktualisierung ist entweder über stop_sequence oder stop_id mit einer bestimmten Haltestelle verknüpft, so dass eines dieser Felder unbedingt gesetzt sein muss. Wird dieselbe stop_id mehr als einmal während einer trip angefahren, so sollte stop_sequence in allen StopTimeUpdates für diese stop_id auf dieser trip angegeben werden.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
stop_sequence | uint32 | Bedingt erforderlich | Eine | Muss dieselbe sein wie in stop_times.txt im entsprechenden GTFS. Entweder stop_sequence oder stop_id müssen in einem StopTimeUpdate angegeben werden - beide Felder dürfen nicht EMPTY sein. stop_sequence ist für Fahrten erforderlich, die dieselbe stop_id mehr als einmal anfahren (z. B. eine Schleife), um zu unterscheiden, für welche Haltestelle die Vorhersage gilt. Wenn StopTimeProperties.assigned_stop_id ausgefüllt ist, dann stop_sequence ausgefüllt werden. |
stop_id | string | Bedingt erforderlich | Eine | Muss dieselbe sein wie in stops.txt im entsprechenden GTFS. Entweder stop_sequence oder stop_id müssen in einem StopTimeUpdate angegeben werden - beide Felder dürfen nicht EMPTY sein. Wenn StopTimeProperties.assigned_stop_id ausgefüllt ist, ist es vorzuziehen, das Feld stop_id und verwenden Sie nur stop_sequence . Wenn StopTimeProperties.assigned_stop_id und stop_id ausgefüllt werden, stop_id muss übereinstimmen assigned_stop_id . |
arrival | StopTimeEvent | Bedingt erforderlich | Eine | Wenn schedule_relationship EMPTY oder SCHEDULED ist, muss entweder arrival oder departure in einem StopTimeUpdate angegeben werden - beide Felder können nicht EMPTY sein. arrival und departure können beide EMPTY sein, wenn schedule_relationship SKIPPED ist. Wenn schedule_relationship NO_DATA ist, müssen arrival und departure EMPTY sein. |
departure | StopTimeEvent | Bedingt erforderlich | Eine | Wenn schedule_relationship EMPTY oder SCHEDULED ist, muss entweder arrival oder departure innerhalb eines StopTimeUpdate angegeben werden - beide Felder können nicht EMPTY sein. arrival und departure können beide EMPTY sein, wenn schedule_relationship SKIPPED ist. Wenn schedule_relationship NO_DATA ist, müssen arrival und departure EMPTY sein. |
departure_occupancy_status | OccupancyStatus | Optional | Eine | Der voraussichtliche Belegungsstatus des vehicle unmittelbar nach departure von der angegebenen Haltestelle. Falls vorhanden, muss stop_sequence angegeben werden. Um departure_occupancy_status ohne arrival oder departure anzugeben, ist dieses Feld auszufüllen und StopTimeUpdate zu setzen.schedule_relationship = NO_DATA. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
schedule_relationship | ScheduleRelationship | Optional | Eine | Die Standardbeziehung ist SCHEDULED. |
stop_time_properties | StopTimeProperties | Optional | Eine | Echtzeit-Updates für bestimmte in GTFS stop_times.txt definierte Eigenschaften Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
enum ScheduleRelationship¶
Die Beziehung zwischen dieser StopTime und dem statischen Zeitplan.
Werte
Wert | Kommentar |
---|---|
SCHEDULED | Das vehicle fährt nach seinem statischen Zeitplan für Haltestellen, wenn auch nicht unbedingt nach den Zeiten des Zeitplans. Dies ist die Voreinstellung Verhalten. Es muss mindestens eine der arrival und departure angegeben werden. Frequenzbasierte FahrtenGTFS frequencies.txt mit exact_times = 0) sollten keinen SCHEDULED haben und stattdessen UNSCHEDULED verwenden. |
SKIPPED | Die Haltestelle wird SKIPPED, d. h. das vehicle hält nicht an dieser Haltestelle. arrival und departure sind optional. Wenn gesetzt SKIPPED nicht auf nachfolgende Haltestellen derselben trip übertragen (d. h. das vehicle hält an den nachfolgenden Haltestellen der trip an, es sei denn, diese Haltestellen haben ebenfalls eine stop_time_update mit schedule_relationship: SKIPPED ). delay von einem vorherigen Halt in der trip hat über die Haltestelle SKIPPED Haltestelle. Mit anderen Worten: Wenn eine stop_time_update mit einer arrival oder departure Vorhersage nicht für eine Haltestelle nach der SKIPPED nicht gesetzt ist, wird die Vorhersage vor der SKIPPED Haltestelle auf die Haltestelle nach der SKIPPED Haltestelle und die nachfolgenden Haltestellen der trip übertragen, bis eine stop_time_update für eine nachfolgende Haltestelle gegeben ist. |
NO_DATA | Für diese Haltestelle sind keine Daten angegeben. Dies bedeutet, dass keine Echtzeit-Zeitinformationen verfügbar sind. Wenn NO_DATA gesetzt ist, werden die Daten über die nachfolgenden Haltestellen weitergegeben, so dass dies der empfohlene Weg ist, um anzugeben, ab welcher Haltestelle keine Echtzeit-Zeitinformationen vorliegen. Wenn NO_DATA gesetzt ist, sollte weder die arrival noch die departure angegeben werden. |
UNSCHEDULED | Das vehicle fährt eine frequenzbasierte tripGTFS frequencies.txt mit exact_times = 0). Dieser Wert sollte nicht für Fahrten verwendet werden, die nicht in GTFS frequencies.txt definiert sind, oder für Fahrten in GTFS frequencies.txt mit exact_times = 1. Fahrten, die stop_time_updates mit schedule_relationship: UNSCHEDULED definiert sind, müssen auch den TripDescriptor schedule_relationship: UNSCHEDULED Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
message StopTimeProperties¶
Echtzeit-Aktualisierung für bestimmte in GTFS stop_times.txt definierte Eigenschaften.
Achtung: Diese message ist noch experimentell und kann geändert werden. Sie kann in Zukunft formell angenommen werden.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
assigned_stop_id | string | Optional | Eine | Unterstützt die Zuweisung von Haltestellentime. Bezieht sich auf eine stop_id die im GTFS definiert ist. stops.txt . Die neue assigned_stop_id sollte für den end nicht zu einem signifikant anderen trip führen als der stop_id definiert in GTFS stop_times.txt . Mit anderen Worten, der end sollte diese neue Haltestelle nicht als stop_id als "ungewöhnliche Änderung", wenn die neue Haltestelle in einer App ohne zusätzlichen Kontext angezeigt wurde. Dieses Feld ist zum Beispiel für Bahnsteigzuweisungen gedacht, indem es ein stop_id die zum gleichen Bahnhof gehört wie die ursprünglich im GTFS definierte Haltestelle stop_times.txt . Um eine Haltestelle zuzuweisen, ohne arrival oder departure zu liefern, füllen Sie dieses Feld aus und setzen Sie StopTimeUpdate.schedule_relationship = NO_DATA . Wenn dieses Feld ausgefüllt ist, StopTimeUpdate.stop_sequence muss ausgefüllt werden und StopTimeUpdate.stop_id sollte nicht ausgefüllt werden. Haltestellenzuweisungen sollten sich auch in anderen GTFS widerspiegeln (z. B, VehiclePosition.stop_id ). Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
message TripProperties¶
Definiert die aktualisierten Eigenschaften der trip
Achtung: Diese message ist noch experimentell und kann sich noch ändern. Sie kann in der Zukunft formell angenommen werden.
.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
trip_id | string | Bedingt erforderlich | Eine | Definiert den Bezeichner einer neuen trip, die ein Duplikat einer bestehenden trip ist, die in (CSV) GTFS trips.txt definiert ist, aber zu einem anderen Abfahrtsdatum und/oder einer anderen time start (definiert durch TripProperties.start_date und TripProperties.start_time ). Siehe Definition von trips.trip_id in (CSV) GTFS. Sein Wert muss sich von den in (CSV) GTFS verwendeten Werten unterscheiden. Dieses Feld ist erforderlich, wenn schedule_relationship ist DUPLICATED Andernfalls darf dieses Feld nicht ausgefüllt werden und wird von den Verbrauchern ignoriert. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
start_date | string | Bedingt erforderlich | Eine | Leistungsdatum, an dem die DUPLICATED trip durchgeführt wird. Muss im Format JJJJMMTT angegeben werden. Dieses Feld ist erforderlich, wenn schedule_relationship ist DUPLICATED Andernfalls darf dieses Feld nicht ausgefüllt werden und wird von den Verbrauchern ignoriert. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
start_time | string | Bedingt erforderlich | Eine | Definiert die time der trip, wenn sie DUPLICATED ist. Siehe Definition von stop_times.departure_time in (CSV) GTFS. Die arrival und departure für die trip werden auf der Grundlage des Offsets zwischen der ursprünglichen trip departure_time und diesem Feld. Wenn eine trip zum Beispiel Haltestelle A mit einer departure_time von 10:00:00 und Haltestelle B mit departure_time von 10:01:00 hat, und dieses Feld mit dem Wert 10:30:00 gefüllt ist, hat der Halt B auf der DUPLICATED trip den Wert SCHEDULED departure_time von 10:31:00 . Echtzeit-Vorhersage delay Werte werden auf diese berechnete time angewendet, um die voraussichtliche time zu bestimmen. Wenn zum Beispiel eine departure delay von 30 für die Haltestelle B angegeben ist, dann ist die voraussichtliche time 10:31:30 . Echtzeit-Vorhersage time Auf die Werte der Echtzeitvorhersage wird kein Offset angewandt, so dass die vorhergesagte time wie angegeben angezeigt wird. Wenn zum Beispiel eine departure time 10:31:30 für die Haltestelle B angegeben ist, dann ist die voraussichtliche time 10:31:30 Dieses Feld ist erforderlich, wenn schedule_relationship ist DUPLICATED , andernfalls darf dieses Feld nicht ausgefüllt werden und wird von den Verbrauchern ignoriert. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
shape_id | string | Optional | Eine | Gibt die Shape der vehicle für diese trip an, wenn sie vom Original abweicht. Bezieht sich auf einen im (CSV) GTFS definierten Shape oder eine neue entity in einemtime. Siehe Definition der trips.shape_id in (CSV) GTFS. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
message VehiclePosition¶
Echtzeit-Positionsdaten für ein bestimmtes vehicle.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
trip | TripDescriptor | Optional | Eine | Die trip, die dieses vehicle bedient. Kann EMPTY oder partial sein, wenn das vehicle nicht mit einer bestimmten trip identifiziert werden kann. |
vehicle | VehicleDescriptor | Optional | Eine | Zusätzliche Informationen über das vehicle, das diese trip durchführt. Jeder Eintrag sollte eine eindeutige id haben. |
Position | Position | Optional | Eine | Aktuelle Position des vehicle. |
current_stop_sequence | uint32 | Optional | Eine | Der Haltestellenfolgeindex der aktuellen Haltestelle. Die Bedeutung von current_stop_sequence (d. h. die Haltestelle, auf die er sich bezieht) wird durch current_status bestimmt. Wenn current_status fehlt, wird IN_TRANSIT_TO angenommen. |
stop_id | string | Optional | Eine | Identifiziert die aktuelle Haltestelle. Der Wert muss derselbe sein wie in stops.txt im entsprechenden GTFS. Wenn StopTimeProperties.assigned_stop_id verwendet wird, um eine stop_id verwendet wird, sollte dieses Feld auch die Änderung des stop_id . |
current_status | VehicleStopStatus | Optional | Eine | Der genaue Status des vehicle in Bezug auf die aktuelle Haltestelle. Wird ignoriert, wenn current_stop_sequence nicht vorhanden ist. |
timestamp | uint64 | Optional | Eine | Zeitpunkt, zu dem die Position des vehicle gemessen wurde. In time (d. h. die Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 UTC). |
congestion_level | CongestionLevel | Optional | Eine | |
occupancy_status | OccupancyStatus | Optional | Eine | Der Stand der Fahrgastbelegung des vehicle oder Wagens. Wenn multi_carriage_details mit dem OccupancyStatus pro Wagen ausgefüllt ist, sollte dieses Feld das gesamte vehicle beschreiben, wobei alle Wagen, die Fahrgäste aufnehmen, berücksichtigt werden. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
occupancy_percentage | uint32 | Optional | Eine | Ein Prozentwert, der den Grad der Fahrgastbelegung des vehicle angibt. Der Wert 100 sollte die maximale Gesamtbelegung darstellen, für die das vehicle ausgelegt ist, einschließlich Sitz- und Stehplätzen, und die nach den geltenden Betriebsvorschriften zulässig ist. Der Wert kann 100 überschreiten, wenn mehr Fahrgäste als die maximal vorgesehene Kapazität vorhanden sind. Die Genauigkeit von occupancy_percentage sollte so gering sein, dass einzelne Fahrgäste beim Ein- und Aussteigen nicht erfasst werden können. Wenn multi_carriage_details mit occupancy_percentage per carriage ausgefüllt ist, sollte dieses Feld das gesamte vehicle beschreiben, wobei alle Wagen, die Fahrgäste aufnehmen, berücksichtigt werden. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
multi_carriage_details | CarriageDetails | Optional | Viele | Angaben zu den mehreren Wagen des betreffenden vehicle. Das erste Vorkommen steht für den ersten Wagen des vehicle, unter Berücksichtigung der aktuellen Fahrtrichtung. Die Anzahl der Vorkommen des Feldes multi_carriage_details gibt die Anzahl der Wagen des vehicle an. Es umfasst auch nicht einstiegsfähige Wagen, wie Lokomotiven, MAINTENANCE usw., da sie den Fahrgästen wertvolle Informationen darüber liefern, wo sie auf einem Bahnsteig stehen müssen. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
enum VehicleStopStatus¶
Werte
Wert | Kommentar |
---|---|
INCOMING_AT | Das vehicle ist kurz davor, an der Haltestelle anzukommen (auf einer Haltestellenanzeige blinkt normalerweise das vehicle ). |
STOPPED_AT | Das vehicle steht an der Haltestelle. |
IN_TRANSIT_TO | Das vehicle hat die vorherige Haltestelle verlassen und befindet sich auf der Durchfahrt. |
enum CongestionLevel¶
CONGESTION, von der das vehicle betroffen ist.
Werte
Wert |
---|
UNKNOWN_CONGESTION_LEVEL |
RUNNING_SMOOTHLY |
STOP_AND_GO |
CONGESTION |
SEVERE_CONGESTION |
enum OccupancyStatus¶
Status der Fahrgastbelegung für das vehicle oder den Wagen.
Einzelne Hersteller veröffentlichen möglicherweise nicht alle OccupancyStatus. Daher dürfen die Verbraucher nicht davon ausgehen, dass die OccupancyStatus einer linearen Skala folgen. Die Verbraucher sollten die OccupancyStatus als den vom Hersteller angegebenen und beabsichtigten Zustand darstellen. Ebenso müssen die Hersteller OccupancyStatus verwenden, die den tatsächlichen Belegungszuständen der vehicle entsprechen.
Für die Beschreibung von Belegungsgraden auf einer linearen Skala, siehe occupancy_percentage
.
Achtung: Dieses Feld ist noch experimentell und kann sich noch ändern. Es kann in Zukunft formell übernommen werden.
Werte
Wert | Bemerkung |
---|---|
EMPTY | Das vehicle gilt nach den meisten Maßstäben als EMPTY und hat nur wenige oder keine Fahrgäste an Bord, nimmt aber noch Fahrgäste auf. |
MANY_SEATS_AVAILABLE | Das vehicle oder der Wagen verfügt über eine große Anzahl von freien Sitzplätzen. Die Anzahl der freien Sitzplätze im Verhältnis zur Gesamtzahl der verfügbaren Sitzplätze, die als groß genug gelten, um in diese Kategorie zu fallen, wird vom Hersteller nach eigenem Ermessen festgelegt. |
FEW_SEATS_AVAILABLE | Das vehicle oder der Wagen verfügt über eine geringe Anzahl von Sitzplätzen. Es liegt im Ermessen des Herstellers, wie viele freie Sitzplätze im Verhältnis zu den insgesamt zur Verfügung stehenden Sitzplätzen als gering genug angesehen werden, um in diese Kategorie zu fallen. |
STANDING_ROOM_ONLY | Das vehicle oder der Wagen kann derzeit nur stehende Fahrgäste aufnehmen. |
CRUSHED_STANDING_ROOM_ONLY | Das vehicle oder der Wagen kann derzeit nur stehende Fahrgäste aufnehmen und hat nur begrenzten Platz für diese. |
FULL | Das vehicle gilt nach den meisten Maßstäben als FULL, lässt aber möglicherweise noch Fahrgäste einsteigen. |
NOT_ACCEPTING_PASSENGERS | Das vehicle oder der Wagen nimmt keine Fahrgäste auf. Das vehicle oder der Wagen nimmt normalerweise Fahrgäste zum Einsteigen auf. |
NO_DATA_AVAILABLE | Für das vehicle oder den Wagen sind zu diesem time keine Belegungsdaten verfügbar. |
NOT_BOARDABLE | Das vehicle oder der Wagen ist nicht besteigbar und nimmt nie Fahrgäste auf. Nützlich für spezielle Fahrzeuge oder Wagen (Lokomotive, MAINTENANCE, etc...). |
message CarriageDetails¶
Wagenspezifische Details, verwendet für Fahrzeuge, die aus mehreren Wagen bestehen.
Achtung: Diese message ist noch experimentell und kann sich noch ändern. Sie kann in der Zukunft formell angenommen werden.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
id | string | Optional | Eine | Identifizierung des Wagens. Sollte pro vehicle eindeutig sein. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
label | string | Optional | Eine | Vom Benutzer sichtbare label, die dem Fahrgast angezeigt werden kann, um die Identifizierung des Wagens zu erleichtern. Beispiel: "7712", "Wagen ABC-32", usw... Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
occupancy_status | OccupancyStatus | Optional | Eine | Belegungsstatus für diesen bestimmten Wagen in diesem vehicle. Standardwert ist NO_DATA_AVAILABLE .Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
occupancy_percentage | int32 | Optional | Eine | Belegungsprozentsatz für diesen bestimmten Wagen, in diesem vehicle. Folgt den gleichen Regeln wie "VehiclePosition.occupancy_percentage". Verwenden Sie -1, wenn für den betreffenden Wagen keine Daten verfügbar sind. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
carriage_sequence | uint32 | Erforderlich | Eine | Gibt die Reihenfolge dieses Wagens in Bezug auf die anderen Wagen in der CarriageStatus-Liste des vehicle an. Der erste Wagen in der Fahrtrichtung muss den Wert 1 haben, der zweite Wert entspricht dem zweiten Wagen in der Fahrtrichtung und muss den Wert 2 haben, usw. Beispiel: Der erste Wagen in Fahrtrichtung hat den Wert 1. Wenn der zweite Wagen in Fahrtrichtung den Wert 3 hat, verwerfen die Verbraucher die Daten für alle Wagen (d. h. das Feld multi_carriage_details ). Wagen ohne Daten müssen mit einer gültigen carriage_sequence dargestellt werden, und die Felder ohne Daten sollten weggelassen werden (alternativ könnten diese Felder auch einbezogen und auf die Werte "no data" gesetzt werden). Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
message Alert¶
Eine Alert, die auf eine Art von Zwischenfall im öffentlichen Verkehrsnetz hinweist.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
active_period | TimeRange | Optional | Viele | time, in der die Alert dem Benutzer angezeigt werden soll. Fehlt diese Angabe, wird die Alert so lange angezeigt, wie sie im Feed erscheint. Wenn mehrere Zeiträume angegeben werden, wird die Alert während aller Zeiträume angezeigt. |
informed_entity | EntitySelector | Erforderlich | Viele | Entitäten, deren Benutzer über diese Alert informiert werden sollen. Es muss mindestens eine informed_entity angegeben werden. |
Cause | Cause | Optional | Eine | |
Effect | Effect | Optional | Eine | |
url | TranslatedString | Optional | Eine | Die url, die zusätzliche Informationen über die Alert enthält. |
header_text | TranslatedString | Erforderlich | Eine | header für die Alert. Dieser string wird hervorgehoben, z. B. durch Fettdruck. |
description_text | TranslatedString | Erforderlich | Eine | Beschreibung für die Alert. Diese string wird als Text der Alert formatiert (oder auf ausdrückliche Anfrage des Benutzers angezeigt). Die Informationen in der Beschreibung sollten die Informationen in der header ergänzen. |
tts_header_text | TranslatedString | Optional | Eine | text, der die header der Alert enthält und für text verwendet werden soll. Dieses Feld ist die text von header_text. Es sollte die gleichen Informationen wie header_text enthalten, aber so formatiert sein, dass es als text gelesen werden kann (z. B. Abkürzungen entfernt, Zahlen buchstabiert usw.) |
tts_description_text | TranslatedString | Optional | Eine | text mit einer Beschreibung der Alert, die für text verwendet werden soll. Dieses Feld ist die text von description_text. Es sollte die gleichen Informationen wie description_text enthalten, aber so formatiert sein, dass es als text gelesen werden kann (z. B. Abkürzungen entfernt, Zahlen buchstabiert usw.) |
severity_level | SeverityLevel | Optional | Eine | Schweregrad der Alert. |
image | TranslatedImage | Optional | Eine | TranslatedImage, das zusammen mit dem text angezeigt wird. Wird verwendet, um die Effect einer DETOUR, Bahnhofsschließung usw. visuell zu erklären. Das image sollte das Verständnis der Alert fördern und darf nicht die einzige Stelle sein, an der die wesentlichen Informationen zu finden sind. Von folgenden Arten von Bildern wird abgeraten: image, die hauptsächlich text enthalten, Marketing- oder Markenbilder, die keine zusätzlichen Informationen liefern. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
image_alternative_text | TranslatedString | Optional | Eine | text, der das Aussehen des verlinkten image in dem image Feld (z. B. für den Fall, dass das image nicht angezeigt werden kann oder der Nutzer das image aus Gründen der Barrierefreiheit nicht sehen kann). Siehe die HTML Spezifikation für alt image text. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
enum Cause¶
Cause für diese Alert.
Werte
Wert |
---|
UNKNOWN_CAUSE |
OTHER_CAUSE |
TECHNICAL_PROBLEM |
STRIKE |
DEMONSTRATION |
ACCIDENT |
HOLIDAY |
WEATHER |
MAINTENANCE |
CONSTRUCTION |
POLICE_ACTIVITY |
MEDICAL_EMERGENCY |
enum Effect¶
Die Effect dieses Problems auf die betroffene entity.
Werte
Wert |
---|
NO_SERVICE |
REDUCED_SERVICE |
SIGNIFICANT_DELAYS |
DETOUR |
ADDITIONAL_SERVICE |
MODIFIED_SERVICE |
OTHER_EFFECT |
UNKNOWN_EFFECT |
STOP_MOVED |
NO_EFFECT |
ACCESSIBILITY_ISSUE |
enum SeverityLevel¶
Der Schweregrad des Alert.
Achtung: Dieses Feld ist noch experimentell und kann sich noch ändern. Es kann in der Zukunft formell angenommen werden.
Werte
Wert |
---|
UNKNOWN_SEVERITY |
INFO |
WARNING |
SEVERE |
message TimeRange¶
Ein time. Das Intervall gilt zum time t
als aktiv, wenn t
größer oder gleich der time und kleiner als die time ist.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
start | uint64 | Bedingt erforderlich | Eine | time, in time (d. h. Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 UTC). Fehlt diese Angabe, beginnt das Intervall bei minus unendlich. Wird ein TimeRange angegeben, muss entweder start oder end angegeben werden - beide Felder dürfen nicht EMPTY sein. |
end | uint64 | Bedingt erforderlich | Eine | time, in time (d. h. die Anzahl der Sekunden seit dem 1. Januar 1970 00:00:00 UTC). Fehlt sie, endet das Intervall bei plus unendlich. Wird ein TimeRange angegeben, muss entweder start oder end angegeben werden - beide Felder dürfen nicht EMPTY sein. |
Position¶
Eine geografische Position eines vehicle.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
latitude | float | Erforderlich | Eine | Grad Nord, im WGS-84-Koordinatensystem. |
longitude | float | Erforderlich | Eine | Grad Ost, im WGS-84-Koordinatensystem. |
bearing | float | Optional | Eine | bearing, in Grad, im Uhrzeigersinn von True North, d. h. 0 ist Norden und 90 ist Osten. Dies kann die bearing sein oder die Richtung zum nächsten Halt oder Zwischenziel. Die Peilung sollte nicht aus der Abfolge der vorherigen Positionen abgeleitet werden, die der Kunde aus früheren Daten berechnen kann. |
odometer | double | Optional | Eine | Wert desodometer, in Metern. |
speed | float | Optional | Eine | Vom vehicle gemessene momentane speed, in Metern pro Sekunde. |
message TripDescriptor¶
Ein Deskriptor, der eine einzelne Instanz einer trip identifiziert.
Zur Angabe einer einzelnen trip reicht in vielen Fällen die trip_id
allein aus. In den folgenden Fällen sind jedoch zusätzliche Informationen erforderlich, um eine einzelne trip aufzulösen:
- Für Reisen, die in frequencies.txt definiert sind, sind neben der
trip_id
auchstart_date
undstart_time
erforderlich - Wenn die trip mehr als 24 Stunden dauert oder sich so verzögert, dass sie mit einer SCHEDULED trip am nächsten Tag kollidieren würde, ist zusätzlich zu
trip_id
auchstart_date
erforderlich. - Wenn das Feld
trip_id
nicht angegeben werden kann, müssenroute_id
,direction_id
,start_date
undstart_time
angegeben werden
In allen Fällen, in denen route_id
zusätzlich zu trip_id
angegeben wird, muss die route_id
dieselbe route_id
sein, die der betreffenden trip in GTFS trips.txt zugewiesen wurde.
Das Feld trip_id
kann weder allein noch in Kombination mit anderen TripDescriptor verwendet werden, um mehrere trip zu identifizieren. Zum Beispiel sollte ein TripDescriptor niemals trip_id allein für GTFS frequencies.txt exact_times=0 Fahrten angeben, da start_time auch erforderlich ist, um eine einzelne trip aufzulösen, die zu einer bestimmten time beginnt. Wenn der TripDescriptor nicht auf eine einzelne trip aufgelöst wird (d.h. er wird auf null oder mehrere trip aufgelöst), wird dies als Fehler betrachtet und die entity, die den fehlerhaften TripDescriptor enthält, kann von den Verbrauchern verworfen werden.
Wenn die trip_id nicht bekannt ist, reichen die station sequence ids in TripUpdate nicht aus, und die stop_ids müssen ebenfalls angegeben werden. Darüber hinaus müssen die absoluten arrival angegeben werden.
TripDescriptor.route_id kann nicht innerhalb eines Alert EntitySelector verwendet werden, um einen routenweiten Alert zu spezifizieren, der alle Fahrten für eine Route betrifft - verwenden Sie stattdessen EntitySelector.route_id.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
trip_id | string | Bedingt erforderlich | Eine | Die trip_id aus dem GTFS, auf den sich dieser Selektor bezieht. Bei nicht frequenzbasierten Fahrten (Fahrten, die nicht in GTFS frequencies.txt definiert sind) reicht dieses Feld zur eindeutigen Identifizierung der trip aus. Für frequenzbasierte Fahrten, die in GTFS frequencies.txt definiert sind, sind trip_id, start_time und start_date alle erforderlich. Bei SCHEDULED Fahrten (Fahrten, die nicht in GTFS frequencies.txt definiert sind) kann trip_id nur weggelassen werden, wenn die trip durch eine Kombination aus route_id, direction_id, start_time und start_date eindeutig identifiziert werden kann und alle diese Felder vorhanden sind. Wenn schedule_relationship in einem TripUpdate DUPLICATED ist, identifiziert die trip_id die zu DUPLICATED machende trip aus dem statischen GTFS. Wenn schedule_relationship innerhalb einer VehiclePosition DUPLICATED ist, identifiziert die trip_id die neue doppelte trip und muss den Wert für das entsprechende TripUpdate enthalten.TripProperties.trip_id. |
route_id | string | Bedingt erforderlich | Eine | Die route_id aus dem GTFS, auf die sich dieser Selektor bezieht. Wenn trip_id nicht angegeben wird, müssen route_id, direction_id, start_time und schedule_relationship=SCHEDULED gesetzt werden, um eine trip zu identifizieren. TripDescriptor.route_id sollte nicht innerhalb eines Alert EntitySelector verwendet werden, um einen routenweiten Alert anzugeben, der alle Fahrten einer Route betrifft - verwenden Sie stattdessen EntitySelector.route_id. |
direction_id | uint32 | Bedingt erforderlich | Eine | Die direction_id aus der GTFS trips.txt, die die Fahrtrichtung für Fahrten angibt, auf die sich dieser Selektor bezieht. Wenn trip_id weggelassen wird, muss direction_id angegeben werden. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
start_time | string | Bedingt erforderlich | Eine | Die ursprüngliche time dieser trip. Wenn die trip_id einer nicht frequenzbasierten trip entspricht, sollte dieses Feld entweder weggelassen werden oder dem Wert im GTFS entsprechen. Wenn die trip_id einer frequenzbasierten trip entspricht, die in GTFS frequencies.txt definiert ist, ist start_time erforderlich und muss für trip und vehicle angegeben werden. Wenn die trip einem GTFS exact_times=1 entspricht, muss start_time um ein Vielfaches (einschließlich Null) von headway_secs später sein als frequencies.txt start_time für den entsprechenden time. Entspricht die trip exact_times=0, dann kann die start_time beliebig sein und wird zunächst als erste departure der trip erwartet. Einmal festgelegt, sollte die start_time dieser frequenzbasierten trip als unveränderlich angesehen werden, auch wenn sich die erste time ändert - diese time kann stattdessen in einem StopTimeUpdate berücksichtigt werden. Wenn trip_id weggelassen wird, muss start_time angegeben werden. Format und Semantik des Feldes entsprechen denen von GTFSfrequencies.txt, z. B. 11:15:35 oder 25:15:35. |
start_date | string | Bedingt erforderlich | Eine | Das start dieser trip im Format JJJJMMTT. Für SCHEDULED Fahrten (Fahrten, die nicht in GTFS frequencies.txt definiert sind) muss dieses Feld angegeben werden, um Fahrten zu unterscheiden, die so spät sind, dass sie mit einer SCHEDULED trip an einem anderen Tag kollidieren. Bei einem Zug, der beispielsweise jeden Tag um 8:00 und 20:00 Uhr abfährt und 12 Stunden Verspätung hat, gäbe es zwei verschiedene Fahrten zur gleichen time. Dieses Feld kann, muss aber nicht für Fahrpläne angegeben werden, bei denen solche Kollisionen unmöglich sind - z. B. bei einem stündlich verkehrenden Dienst, bei dem ein vehicle, das eine Stunde Verspätung hat, nicht mehr als mit dem Fahrplan verbunden gilt. Dieses Feld ist für frequenzbasierte Fahrten erforderlich, die in GTFS frequencies.txt definiert sind. Wenn trip_id weggelassen wird, muss start_date angegeben werden. |
schedule_relationship | ScheduleRelationship | Optional | Eine | Die Beziehung zwischen dieser trip und dem statischen Fahrplan. Wenn TripDescriptor in einer Alert angegeben wird EntitySelector , die schedule_relationship angegeben wird, wird das Feld von den Verbrauchern bei der Identifizierung der passenden trip ignoriert. |
enum ScheduleRelationship¶
Die Beziehung zwischen dieser trip und dem statischen Zeitplan. Wenn eine trip nach einem vorläufigen Zeitplan durchgeführt wird, der nicht in GTFS enthalten ist, sollte sie nicht als SCHEDULED, sondern als ADDED gekennzeichnet werden.
Werte
Wert | Bemerkung |
---|---|
SCHEDULED | Einetrip, die gemäß ihrem GTFS Schedule durchgeführt wird oder nahe genug an der SCHEDULED trip liegt, um mit ihr verbunden zu werden. |
ADDED | Eine zusätzliche trip, die zusätzlich zu einem laufenden Fahrplan ADDED wurde, z. B. um ein defektes vehicle zu ersetzen oder um auf ein plötzliches Fahrgastaufkommen zu reagieren. HINWEIS: Derzeit ist das Verhalten von Feeds, die diesen Modus verwenden, nicht spezifiziert. Es gibt Diskussionen auf dem GTFS GitHub (1) (2) (3) um die vollständige Spezifizierung oder Ablehnung von ADDED und die Dokumentation wird aktualisiert, sobald diese Diskussionen abgeschlossen sind. |
UNSCHEDULED | Eine trip, die läuft und der kein Fahrplan zugeordnet ist - dieser Wert wird verwendet, um Fahrten zu identifizieren, die in GTFS frequencies.txt mit exact_times = 0 definiert sind. Er sollte nicht verwendet werden, um Fahrten zu beschreiben, die nicht in GTFS frequencies.txt definiert sind, oder Fahrten in GTFS frequencies.txt mit exact_times = 1. Fahrten mit schedule_relationship: UNSCHEDULED müssen auch alle StopTimeUpdates setzen schedule_relationship: UNSCHEDULED |
CANCELED | Eine trip, die im Fahrplan vorhanden war, aber entfernt wurde. |
DUPLICATED | Eine neue trip, die mit Ausnahme des start und der time mit einer bestehenden trip identisch ist. Verwendet mit TripUpdate.TripProperties.trip_id , TripUpdate.TripProperties.start_date und TripUpdate.TripProperties.start_time um eine bestehende trip aus dem statischen GTFS zu kopieren, aber mit einem anderen start und/oder einer anderen time. Das Duplizieren einer trip ist erlaubt, wenn der Dienst, der mit der ursprünglichen trip in (CSV) GTFS (in calendar.txt oder calendar_dates.txt ) innerhalb der nächsten 30 Tage durchgeführt wird. Die zu DUPLICATED trip wird über TripUpdate.TripDescriptor.trip_id . Diese Aufzählung ändert nicht die bestehende trip, auf die durch TripUpdate.TripDescriptor.trip_id - Wenn ein Hersteller die ursprüngliche trip stornieren möchte, muss er eine separate TripUpdate mit dem Wert von CANCELED veröffentlichen. In GTFS definierte Fahrten frequencies.txt mit exact_times definierten Reisen, die EMPTY oder gleich 0 können nicht DUPLICATED werden. Die VehiclePosition.TripDescriptor.trip_id für die neue trip muss den passenden Wert aus TripUpdate.TripProperties.trip_id und VehiclePosition.TripDescriptor.ScheduleRelationship muss ebenfalls auf DUPLICATED . Bestehende Erzeuger und Verbraucher, die die Aufzählung ADDED zur Darstellung von DUPLICATED verwendet haben, müssen den Migrationsanleitung folgen, um auf die Aufzählung DUPLICATED umzustellen. |
message VehicleDescriptor¶
Identifizierungsinformationen für das vehicle, das die trip durchführt.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
id | string | Optional | Eine | Interne Systemidentifikation des vehicle. Sollte eindeutige pro vehicle angegeben werden und dient der Verfolgung des vehicle auf seinem Weg durch das System. Diese id sollte für den end nicht sichtbar sein; verwenden Sie zu diesem Zweck die label Feld |
label | string | Optional | Eine | Benutzer sichtbares label, d. h. etwas, das dem Fahrgast gezeigt werden muss, um das richtige vehicle zu identifizieren. |
license_plate | string | Optional | Eine | Das Nummernschild des vehicle. |
message EntitySelector¶
Ein Selektor für eine entity in einem GTFS. Die Werte der Felder sollten den entsprechenden Feldern im GTFS entsprechen. Es muss mindestens ein Spezifizierer angegeben werden. Wenn mehrere angegeben werden, sollten sie als durch den logischen UND-Operator
verbunden interpretiert werden. Außerdem muss die Kombination der Spezifizierer mit den entsprechenden Informationen im GTFS übereinstimmen. Mit anderen Worten: Damit sich eine Alert auf eine entity in GTFS beziehen kann, muss sie mit allen angegebenen EntitySelector übereinstimmen. Ein EntitySelector, der zum Beispiel die Felder route_id
: "5" und route_type
: "3" enthält, gilt nur für den route_id
: "5" Bus - er gilt nicht für andere Routen mit route_type
: "3". Wenn ein Hersteller möchte, dass eine Alert sowohl für route_id
: "5" als auch für route_type
: "3" gelten soll, sollte er zwei separate EntitySelectors bereitstellen, einen mit Verweis auf route_id
: "5" und einen anderen mit Verweis auf route_type
: "3".
Es muss mindestens ein Spezifizierer angegeben werden - alle Felder in einem EntitySelector können nicht EMPTY sein.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
agency_id | string | Bedingt erforderlich | Eine | Die agency_id aus dem GTFS, auf den sich dieser Selektor bezieht. |
route_id | string | Bedingt erforderlich | Eine | Die route_id aus dem GTFS, auf die sich dieser Selektor bezieht. Wenn direction_id angegeben wird, muss route_id ebenfalls angegeben werden. |
route_type | int32 | Bedingt erforderlich | Eine | Der route_type aus dem GTFS, auf den sich dieser Selektor bezieht. |
direction_id | uint32 | Bedingt erforderlich | Eine | Die direction_id aus der GTFS feed trips.txt, die verwendet wird, um alle Fahrten in einer Richtung für eine Route auszuwählen, die durch route_id angegeben wird. Wenn direction_id angegeben wird, muss route_id ebenfalls angegeben werden. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
trip | TripDescriptor | Bedingt erforderlich | Eine | Die trip aus dem GTFS, auf die sich dieser Selektor bezieht. Dieser TripDescriptor muss sich auf eine einzelne trip in den GTFS beziehen (z. B. kann ein Hersteller nicht nur eine trip_id für exact_times=0-Fahrten angeben). Wenn das Feld ScheduleRelationship in diesem TripDescriptor ausgefüllt ist, wird es von den Verbrauchern ignoriert, wenn sie versuchen, die trip zu identifizieren. |
stop_id | string | Bedingt erforderlich | Eine | Die stop_id aus dem GTFS, auf den sich dieser Selektor bezieht. |
message TranslatedString¶
Eine internationalisierte message mit sprachabhängigen Versionen eines text oder einer url. Eine der Zeichenketten aus einer message wird übernommen. Die Auflösung erfolgt wie folgt: Wenn die language der Benutzeroberfläche mit dem language einer Translation übereinstimmt, wird die erste passende Translation ausgewählt. Wenn eine language (z. B. Englisch) mit dem language einer Translation übereinstimmt, wird die erste passende Translation ausgewählt. Wenn eine Translation einen nicht spezifizierten language hat, wird diese Translation ausgewählt.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
Translation | Translation | Erforderlich | Viele | Es muss mindestens eine Translation angegeben werden. |
Translation¶
Eine lokalisierte string, die einer language zugeordnet ist.
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
text | string | Erforderlich | Eine | Eine string, die die message enthält. |
language | string | Bedingt erforderlich | Eine | language. Kann weggelassen werden, wenn die language unbekannt ist oder wenn für den Feed überhaupt keine Internationalisierung vorgenommen wird. Höchstens eine Translation darf ein nicht spezifiziertes language haben - wenn es mehr als eine Translation gibt, muss die language angegeben werden. |
message TranslatedImage¶
Eine internationalisierte message, die die einzelnen Sprachversionen eines image enthält. Eines der Bilder aus einer message wird ausgewählt. Bei der Auflösung wird wie folgt vorgegangen: Wenn die language der Benutzeroberfläche mit dem language einer Translation übereinstimmt, wird die erste passende Translation ausgewählt. Wenn eine language (z. B. Englisch) mit dem language einer Translation übereinstimmt, wird die erste passende Translation ausgewählt. Wenn eine Translation einen nicht spezifizierten language hat, wird diese Translation ausgewählt.
Achtung: Diese message ist noch experimentell und kann sich noch ändern. Sie kann in der Zukunft formell angenommen werden.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
localized_image | LocalizedImage | Erforderlich | Viele | Es muss mindestens ein lokalisiertes image angegeben werden. |
message LocalizedImage¶
Eine lokalisierte url, die einer language zugeordnet ist.
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
url | string | Erforderlich | Eine | string mit einer url, die auf ein image verweist. Das verlinkte image muss kleiner als 2 MB sein. Wenn sich ein image so stark ändert, dass eine Aktualisierung auf der Verbraucherseite erforderlich ist, muss der Hersteller die url auf eine neue URL aktualisieren. Die url sollte eine vollständig qualifizierte url sein, die http:// oder https:// enthält, und alle Sonderzeichen in der url müssen korrekt escaped werden. Siehe die folgenden url für eine Beschreibung, wie man voll qualifizierte url erstellt. |
media_type | string | Erforderlich | Eine | IANA-Medientyp, um den Typ des anzuzeigenden image anzugeben. Der Typ muss mit "image/" start. |
language | string | Bedingt erforderlich | Eine | BCP-47 language. Kann weggelassen werden, wenn die language unbekannt ist oder wenn für den Feed überhaupt keine Internationalisierung vorgenommen wird. Höchstens eine Translation darf ein nicht spezifiziertes language haben - gibt es mehr als eine Translation, muss die language angegeben werden. |
Shape der_message_¶
Beschreibt den physischen Weg, den ein vehicle nimmt, wenn der Shape nicht Teil des (CSV) GTFS ist, wie z. B. bei einer Ad-hoc DETOUR. Shapes gehören zu Trips und bestehen aus einer kodierten Polylinie, um eine effizientere Übertragung zu ermöglichen. Shapes müssen die Lage der Haltestellen nicht exakt abbilden, aber alle Haltestellen einer trip sollten innerhalb eines kleinen Abstands zum Shape für diese trip liegen, d. h. in der Nähe von geraden Liniensegmenten, die die Shape verbinden
Achtung: Diese message ist noch experimentell und kann sich noch ändern. Sie kann in der Zukunft formell angenommen werden.
.
Felder
Feldname | Typ | Erforderlich | Kardinalität | Beschreibung |
---|---|---|---|---|
shape_id | string | Erforderlich | Eine | Bezeichner des Shape. Muss anders sein als die shape_id in der (CSV) GTFS definiert. Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |
encoded_polyline | string | Erforderlich | Eine | Kodierte Polyliniendarstellung der Shape. Dieser Linienzug muss mindestens zwei Punkte enthalten. Für weitere Informationen über kodierte Polylinien siehe https://developers.google.com/maps/documentation/utilities/polylinealgorithm Vorsicht! dieses Feld ist noch experimentellund kann sich ändern. Sie kann in der Zukunft formell angenommen werden. |