On-Demand-Fahrten

In diesem Dokument wird der On-Demand-Fahrdienst in Fleet Engine beschrieben. Es wird davon ausgegangen, dass Sie Was ist Fleet Engine? gelesen haben und die spezifische Fleet Engine-Dienstfunktion kennen, die Sie benötigen.

Beachten Sie beim Lesen dieser Dokumentation Folgendes:

  • Sie weisen Fahrzeugen Fahrten zu, um die reale Verbindung zwischen der Fahrt und dem Fahrer zu modellieren, der diese Fahrt durchführt. Lesen Sie die Einführung in Fahrzeuge, um besser zu verstehen, wie Fahrzeuge in Fleet Engine funktionieren.
  • In diesem Dokument werden auch einige Fahrzeugelemente beschrieben, die nur für On-Demand-Fahrten gelten.
  • Die Fleet Engine für On-Demand-Fahrten verwendet zwei Ressourcen: Trip und Vehicle. Fleet Engine bietet sowohl einen gRPC-Dienst als auch REST-Schnittstellen:
    • TripService: gRPC und REST
    • VehicleService: gRPC und REST
    • Der Einfachheit halber werden in diesem Handbuch gRPC-Beispiele verwendet.

Was ist eine On-Demand-Reise?

In Fleet Engine stellt eine Fahrt eine On-Demand-Fahrt dar, mit der verschiedene Transportziele erreicht werden können. Beispiel:

  • Personen: Befördern Sie eine oder mehrere Personen vom Abhol- zu den Abholorten.
  • Lebensmittel und Waren: Du kannst eine oder mehrere Essensbestellungen von einem bestimmten Unternehmensstandort abholen und bei einem oder mehreren Empfängern vor Ort aufgeben.

Elemente der Fahrt

Die folgende Abbildung zeigt die grundlegenden Elemente einer Fahrt: die zugewiesene Fahrzeug-ID, den Fahrtstatus und die Wegpunkte. Die Wegpunkttypen variieren je nach Etappe der Reise: Einstieg, Zwischenstopp und Ausstieg. Bei jeder Fahrt ist ein Zwischenziel oder Wegpunkt optional. Im Bildbeispiel ist das Fahrzeug am Abholort angekommen

Datenmodell für Fahrten

Wenn Ihr Back-End Fahrzeugen Fahrten zuweist, muss es auch andere für das Fahrzeug geplante Fahrten wissen. Aus diesem Grund wird in den folgenden Diagrammen das Datenmodell der Trip-Ressource zusammen mit dem Diagramm für die zugehörige Vehicle-Ressource veranschaulicht. Sie können sich beide Diagramme ansehen, um die Beziehungen zwischen den beiden Ressourcen zu untersuchen. Beachten Sie dabei Folgendes:

  • Fahrten werden einem Fahrzeug anhand der ID zugewiesen.
  • Bei der Fahrt-Fahrzeug-Verknüpfung handelt es sich um eine n:1-Beziehung. Das heißt, eine bestimmte Fahrt kann die einzige für das Fahrzeug geplante Fahrt oder eine von vielen Fahrten für das Fahrzeug sein.
  • Fahrtobjekte enthalten zwei Listen mit Wegpunkten, eine für die Fahrt selbst und eine für das zugewiesene Fahrzeug. Dies wird in diesem Dokument ausführlicher erläutert.
  • Das On-Demand-Fahrzeug hat auch eine Liste mit Wegpunkten, die in diesem Dokument ausführlicher beschrieben wird.

Fahrtdatenmodell

Fahrzeugdatenmodell

Reisetypen

Wenn Ihr Service eine Fahrt erstellt, kann das Feld tripType auf EXCLUSIVE oder SHARED gesetzt werden.

Exklusive Reisen

Eine exklusive Fahrt ist eine Fahrt, deren Fahrt sich nicht mit anderen Fahrten überschneidet, und eine Fahrt, die das Fahrzeug entweder vor oder nach anderen Fahrten im Rahmen des Fahrplans ausführt. Wenn Ihr System also exklusive Fahrten zuweist, kann es diese nur einem Fahrzeug zuweisen, das nacheinander und nicht gleichzeitig durchgeführt werden soll. Zur Veranschaulichung könnten Sie exklusive Fahrten mit folgenden Merkmalen erstellen:

  • Eine Fahrt mit einmaligem Abholen und einmaligem Aussteigen für ein Fahrzeug, für das keine weiteren Fahrten geplant sind.
  • Eine Fahrt mit einem Einstieg, einem Zwischenwegpunkt und einem Ausstieg für ein Fahrzeug, für das keine andere Fahrt im Zeitplan liegt.
  • Eine Fahrt, bei der am Ende einer bereits geplanten Fahrt für das Fahrzeug ein Start- und Zielort hinzugefügt wird. In diesen Fällen ist jede Fahrt exklusiv für die andere geplant, aber die Fahrten werden hintereinander angeordnet. Außerdem können solche Fahrten bei Bedarf Zwischenziele umfassen.

Geteilte Fahrten

Eine geteilte Reise kann sich mit anderen Reisebuchungen überschneiden. Ihr System kann diese Arten von Fahrten so zuweisen, dass sie gleichzeitig mit verschränkten Zielen ausgeführt werden. Beispielsweise kann der Ausstieg für eine Fahrt nach der Abholung für eine andere Fahrt erfolgen. Außerdem dürfen für geteilte Fahrten keine Zwischenwegpunkte verwendet werden.

Normalerweise würden Sie eine geteilte Fahrt für eines der im Abschnitt Fahrtszenarien beschriebenen gemeinsamen Pooling-Szenarien verwenden.

Wegpunkte

In Google Maps ist ein Wegpunkt ein Ort entlang einer Route, der in der Regel durch eine Koordinate für den Längen- und Breitengrad definiert wird. Bei On-Demand-Fahrten wird ein Wegpunkt durch ein TripWaypoint-Objekt dargestellt, das zusätzliche Informationen wie die folgenden enthält:

  • Fahrt-ID
  • Die WaypointType, mit Abholoption, Zwischenstufe oder Ausstieg
  • Pfad- und Entfernungsinformationen zwischen dem vorherigen und dem aktuellen Wegpunkt
  • Die Verkehrslage auf dem Weg zum Wegpunkt
  • Reisezeit und voraussichtliche Ankunftszeit zum Wegpunkt

Siehe Referenzen:

Wegpunkttypen

Ein Wegpunkt wird in Bezug auf den allgemeinen Lebenszyklus einer Fahrt definiert:

  • Abhol-Wegpunkt: Wird für den Start- oder Zielpunkt einer Fahrt verwendet, z. B. wenn ein Fahrer eine Essensbestellung zur späteren Lieferung abholt oder wenn ein Fahrer eine Person zur späteren Haltestelle abholt.
  • Zwischenwegpunkt: und Zwischenziel, das für verschiedene Zwecke verwendet werden kann, z. B. wenn ein Fahrer einen Passagier derselben Buchungsgruppe aussteigen lässt, die Fahrt selbst aber noch nicht abgeschlossen ist, da weitere Passagiere verbleiben. Dieser Wegpunkt ist optional und kann nur für exklusive Fahrten verwendet werden.
  • Ausstiegswegpunkt: Wird für den endgültigen Ort der Fahrt verwendet, z. B. wenn der verbleibende Fahrgast das Fahrzeug verlässt.

Wegpunktlisten

Eine Trip-Entität enthält zwei Listen von Wegpunkten, von denen jeder ein wiederkehrendes Feld vom Typ TripWaypoint ist. In einer Liste werden die Felder beschrieben, die für die Fahrt selbst erforderlich sind, und in der anderen werden alle Wegpunkte für das Fahrzeug beschrieben, das der Fahrt zugeordnet ist. So haben Sie ein vollständiges Bild von allen Elementen der Fahrt: der Fahrt und der gesamten Fahrt mit dem Fahrzeug.

  • Verbleibende Wegpunkte für das Fahrzeug: Ein Feld mit dem Namen vehicle_waypoints. Es enthält alle verbleibenden Wegpunkte für alle Fahrten, die dem Fahrzeug zugewiesen sind.
  • Verbleibende Wegpunkte für die Fahrt: Ein Feld mit dem Namen remaining_waypoints. Es enthält Wegpunkte, die das Fahrzeug nacheinander zurücklegen muss, bevor es zum endgültigen Ausstiegspunkt der Fahrt kommt. Die Szenarien finden Sie unter Reiseszenarien.
    • Bei einer Fahrt mit einem einzelnen Ziel, die einem Fahrzeug zugewiesen ist, für das keine anderen Fahrten im Zeitplan stehen, umfasst dies nur einen Start- und einen Abgabeort, vorausgesetzt, das Fahrzeug hätte den Abhol-Wegpunkt nicht verlassen.
    • Bei allen anderen Fahrten, bei denen das Fahrzeug auch für andere Fahrten geplant ist, enthalten die verbleibenden Wegpunkte für jede Fahrt auf dem Reiseplan alle Wegpunkte von anderen Fahrten, die das Fahrzeug durchlaufen muss, bevor es den Rückgabe-Wegpunkt für diese Fahrt erreicht. Beispiel: Bei einer Fahrt hintereinander, bei der das Fahrzeug von Fahrt A bis zum Aussteigen aussteigen muss, enthalten die verbleibenden Wegpunkte für Fahrt B den Ausstiegswegpunkt für Fahrt A. Fleet Engine berechnet diese Informationen anhand des Felds vehicle_waypoints.

Weitere Informationen finden Sie in der Referenz zur Trip-Entität: gRPC oder REST.

Fahrtszenarien

In den folgenden Diagrammen werden verschiedene unterstützte Fahrtszenarien dargestellt. In diesen Szenarien ist nur die gemeinsame Pooling-Fahrt vom Typ SHARED; alle anderen sind vom Typ EXCLUSIVE. Die Diagramme zeigen auch den Fahrtstatus und die verbleibenden Wegpunkte für das Fahrzeug, das die Fahrt durchführt. Konzepte, die weiter unten in diesem Leitfaden beschrieben werden.

Reise mit einem Ziel

Eine Fahrt mit einem einzelnen Ziel ist eine Fahrt mit einem EXCLUSIVE mit einem Start- und einem Zielort. Beispielsweise holt ein Fahrer einen Fahrgast von einem Ort ab und befördert ihn zu einem anderen. Oder ein Fahrer ruft eine Essensbestellung von einem Restaurant ab und gibt sie zum Kunden ab.

Reisen mit mehreren Zielen

Eine Fahrt mit mehreren Zielen ist eine EXCLUSIVE-Fahrt, die ein oder mehrere Zwischenziele zwischen dem Start- und dem Zielort umfasst. Beispiel: Drei Mitfahrdienst-Kunden buchen über das Smartphone einer Person eine Fahrt gemeinsam, aber jeder hat unterschiedliche Ziele.

Aufeinanderfolgende Fahrten

Fahrten aufeinanderfolgender Fahrten sind EXCLUSIVE-Fahrten mit einer Reihe unabhängiger Fahrten, die direkt hintereinander stattfinden. Jede Fahrt in der Kette kann ein einzelnes Ziel oder mehrere Ziele umfassen. In diesem Szenario verpflichtet sich ein Fahrer, einen anderen Kunden abzuholen, bevor er die aktuelle Fahrt zu Ende geht.

Diese Fahrten können nur Fahrzeugen zugewiesen werden, bei denen eine direkte Planung möglich ist. Weitere Informationen finden Sie in der Vehicle-Referenz zu REST und gRPC.

Geteilte Pooling-Fahrten

Eine gemeinsame Pooling-Fahrt unterscheidet sich von den anderen Reisetypen. Erstens muss es eine SHARED-Fahrt sein, keine EXCLUSIVE-Fahrt. Hier führt das Fahrzeug die Fahrten gleichzeitig und nicht nacheinander aus, wie bei exklusiven Fahrten. Während eine gemeinsame Pooling-Fahrt ihre Fahrtreise mit anderen Fahrten teilt, gibt sie keine Informationen zu den Start- und Zielorten zwischen den Fahrten weiter. Stattdessen ist jede Fahrt eine exklusive Buchung, sodass der Endnutzer, der eine Reise gebucht hat, nur die Informationen zum Abhol- oder Zielort für andere Reisen sehen kann. Beispiel:

  • Ein Flughafenshuttle holt die Gäste an ihrem Wohnort ab und reicht sie an verschiedenen Flughafenterminals entlang der Strecke ein. Person 2 verwendet möglicherweise die Nutzer-App, um den Fortschritt der Fahrt zu verfolgen, aber die App zeigt nur ihren Teil der Reise an und nicht, wo Person 1 abgeholt wurde oder wo Person 1 aussteigen wird, auch wenn sich einige der Kaufprozesse überschneiden.
  • Ein Lieferfahrer holt im selben Restaurant drei Essensbestellungen ab und liefert sie an verschiedene Kundenwohnungen. Mit Ihrer Verbraucher-App kann Person 3 sehen, wo und wann ihr Essen abgeholt wurde, und die Route des Fahrers sehen, aber nicht die Abgabestellen von Personen 1 und 2.

Fahrtstatus und -lebenszyklus

In diesem Abschnitt werden der Fahrtstatus und seine Auswirkungen auf das Fahrzeug sowie verschiedene Szenarien beschrieben, die beim Zuweisen und Verwalten von On-Demand-Fahrten auftreten können.

Eine Fahrt durchläuft normalerweise verschiedene Stadien, von der Erstellung bis zum Abschluss. Im Allgemeinen kann eine Fahrt je nach Status aktiv oder inaktiv sein. Der Fahrtstatus wirkt sich auf eine Vielzahl von Anwendungsfällen mit Fleet Engine aus. Außerdem haben Sie die Möglichkeit, den Fahrzeugfortschritt während der Fahrt zu ermitteln. Im weiteren Verlauf dieses Dokuments werden diese Szenarien erläutert.

In der folgenden Tabelle ist der Fahrtstatus nach aktiven und inaktiven Arten aufgeführt.

Aktive Fahrtstatus Inaktive Fahrtstatus
NEW
UNKNOWN_TRIP_STATUS
ENROUTE_TO_PICKUP
ARRIVED_AT_PICKUP
ENROUTE_TO_INTERMEDIATE_DESTINATION
ARRIVED_AT_INTERMEDIATE_DESTINATION
ENROUTE_TO_DROPOFF
COMPLETE
CANCELED

Fahrtstatus und verbleibende Fahrzeug-Wegpunkte

Wenn Sie einem Fahrzeug, das bereits eine Fahrt ausführt, zusätzliche Fahrten zuweisen, sollten Sie die Beziehung zwischen den verbleibenden Wegpunkten für das Fahrzeug und die Auswirkungen des Fahrtstatus auf die verbleibenden Wegpunkte verstehen.

Sie können beispielsweise einem Fahrzeug, das ausschließlich exklusive Fahrten unterstützt und gerade eine Fahrt beendet, eine neue Mitfahranfrage zuweisen. In diesem Fall würden Sie die Fahrt als eine direkte Fahrt modellieren. Wenn Sie eine solche Fahrt zuweisen, muss Ihr System dafür sorgen, dass die Wegpunkte für die neue Fahrt nach den Wegpunkten für die laufende Fahrt liegen.

Während der Fahrt entfernt Fleet Engine einen vorherigen Wegpunkt nur dann aus der Liste der verbleibenden Wegpunkte des Fahrzeugs, wenn das Fahrzeug meldet, dass er auf der Route zum nächsten Ziel ist oder abgeschlossen ist. Dabei kann es sich um eines der folgenden Elemente handeln:

  • ENROUTE_TO_INTERMEDIATE_DESTINATION
  • ENROUTE_TO_DROPOFF
  • ABGESCHLOSSEN

Wenn sich der Fahrtstatus zu COMPLETED ändert, entfernt Fleet Engine den letzten Wegpunkt der Fahrt aus der Liste der verbleibenden Wegpunkte des Fahrzeugs.

Im Gegensatz dazu haben Statusänderungen, die die Ankunft an einem Wegpunkt angeben, in der Regel keine Auswirkungen auf die Liste der verbleibenden Wegpunkte für das Fahrzeug:

  • ARRIVED_AT_PICKUP
  • ARRIVED_AT_INTERMEDIATE_DESTINATION
  • ARRIVED_AT_DROPOFF

Ein Beispiel für eine On-Demand-Fahrt: Angenommen, der Fahrer holt einen Kunden von seinem Zuhause ab, transportiert ihn zu einem Ort, an dem er darauf wartet, dass er eine Aufgabe erledigt, und bringt ihn dann zurück zu seinem Zuhause. Zu Beginn hat die Fahrt drei Wegpunkte: PICKUP, INTERMEDIATE und DROPOFF. In der folgenden Tabelle werden die Ergebnisse einer Abfrage für verbleibende Wegpunkte an verschiedenen Fahrtzuständen dargestellt:

Fahrtstatus Verbleibende Wegpunkte
ARRIVED_AT_PICKUP PICKUP
INTERMEDIATE
DROPOFF
ENROUTE_TO_INTERMEDIATE_DESTINATION PICKUP
INTERMEDIATE
DROPOFF
ARRIVED_AT_INTERMEDIATE_DESTINATION PICKUP
INTERMEDIATE
DROPOFF
ENROUTE_TO_DROPOFF PICKUP
INTERMEDIATE
DROPOFF
ARRIVED_AT_DROPOFF PICKUP
INTERMEDIATE
DROPOFF
COMPLETE PICKUP
INTERMEDIATE
DROPOFF

Statusanforderungen für neu zugewiesene oder stornierte Fahrten

Bevor Sie die folgenden Aktionen ausführen können, müssen Sie den Fahrtstatus auf NEW oder CANCELED setzen.

  • Wenn Sie die Fahrzeugzuweisungen für eine Fahrt ändern. Das ist beispielsweise der Fall, wenn ein Fahrer die Zuweisung eines Fahrzeugs für eine Fahrt ablehnt und es einem anderen Fahrzeug zugewiesen werden muss.
  • Beim Löschen einer Fahrzeugzuweisung für eine Fahrt. Wenn ein Fahrer beispielsweise eine Fahrt unterwegs storniert und Sie die Fahrzeugzuweisung löschen möchten, muss der Status entweder NEW oder CANCELED sein.

Suchergebnisse basierend auf dem Reisestatus

Wenn Sie den Dienst SearchTrips für ein bestimmtes Fahrzeug verwenden, wird die Liste der aktiven Fahrten im SearchTripsResponse zurückgegeben. Aktive Fahrten werden auch im Feld active_trips der Entität Vehicle angezeigt. Weitere Informationen finden Sie in der SearchTripsResponse-Referenz: gRPC oder REST.

Daher werden alle Fahrten mit dem Status „Aktiv“ im Feld active_trips angezeigt, abgeschlossene oder gestrichene Fahrten jedoch nicht.

Nächste Schritte