In diesem Dokument wird beschrieben, wie Sie eine Back-to-Back-Fahrt erstellen, die richtigen Felder festlegen und sie einem Fahrzeug zuweisen. Dabei wird davon ausgegangen, dass Sie Fleet Engine eingerichtet, Fahrzeuge erstellt, eine funktionierende Fahrer-App und optional eine Kunden-App haben. Außerdem sollten Sie mit den verschiedenen Fahrtszenarien für On-Demand-Fahrten vertraut sein. Weitere Informationen finden Sie in den folgenden Leitfäden:
- Fleet Engine einrichten
- Fahrzeug erstellen
- Fahrtszenarien in der Übersicht On-Demand-Fahrten
Grundlagen der Fahrterstellung
In diesem Abschnitt werden die Details der Anfrage beschrieben, die zum Erstellen einer Fahrt in Fleet Engine erforderlich sind. Sie senden eine Erstellungsanfrage entweder mit gRPC oder REST.
Fahrtfelder
Verwenden Sie die folgenden Felder, um eine Fahrt in Fleet Engine zu erstellen. Sie können verschiedene Felder für die verschiedenen Arten von Fahrten verwenden: Fahrten mit einem oder mehreren Zielen, Back-to-Back-Fahrten oder Fahrten mit Mitfahrgelegenheiten. Sie können die optionalen Felder beim Erstellen der Fahrt angeben oder sie später festlegen, wenn Sie die Fahrt aktualisieren.
| Name | Erforderlich? | Beschreibung |
|---|---|---|
| parent | Ja | Ein String, der die Projekt-ID enthält. Diese ID muss in Ihrer gesamten Fleet Engine-Integration mit denselben Dienstkontorollen verwendet werden. |
| trip_id | Ja | Ein String, den Sie erstellen und der diese Fahrt eindeutig identifiziert. Für Fahrt-IDs gelten bestimmte Einschränkungen, wie in der Referenz angegeben. |
| trip_type | Ja | Legen Sie für TripType die folgenden Werte für den Fahrtentyp fest, den Sie erstellen:
|
| pickup_point | Ja | Der Ausgangspunkt der Fahrt. |
| Zwischenziele | Ja | Nur Fahrten mit mehreren Zielen: Die Liste der Zwischenziele, die der Fahrer zwischen
Abholung und Abgabe anfährt. Wie bei |
| vehicle_waypoints | Ja | Nur Fahrten mit Mitfahrgelegenheiten: Dieses Feld unterstützt das Verschachteln der Wegpunkte aus mehreren Fahrten.
Es enthält alle verbleibenden Wegpunkte für das zugewiesene Fahrzeug sowie
die Wegpunkte für Abholung und Abgabe für diese Fahrt. Sie können dieses Feld
festlegen, indem Sie |
| number_of_passengers | Nein | Die Anzahl der Fahrgäste auf der Fahrt. |
| dropoff_point | Nein | Das Ziel der Fahrt. |
| vehicle_id | Nein | Die ID des Fahrzeugs, das der Fahrt zugewiesen ist. |
Beispiel: Back-to-Back-Fahrt erstellen
Im Folgenden wird gezeigt, wie Sie eine Back-to-Back-Fahrt erstellen und sie einem Fahrzeug zuweisen. In diesem Szenario ist die Fahrterstellung dieselbe wie bei einer Fahrt mit einem Ziel. Erst später erstellen Sie eine weitere Fahrt und weisen sie einem Fahrzeug mit einer bereits aktiven Fahrt zu.
// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");
TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
Trip trip = Trip.newBuilder()
.setTripType(TripType.EXCLUSIVE)
.setPickupPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.195139).setLongitude(106.820826)))
.setDropoffPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.1275).setLongitude(106.6537)))
.setVehicleId(VEHICLE_ID)
.build();
// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
.setParent(parent)
.setTripId(TRIP_ID)
.setTrip(trip)
.build();
// Error handling.
try {
// Fleet Engine automatically assigns a 'waypoints' list to the trip containing
// the vehicle's current trip waypoints.
Trip createdTrip =
tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
Back-to-Back-Fahrten aktualisieren
Wenn Sie ein Fahrzeug für eine Back-to-Back-Fahrt zuweisen, weisen Sie einem Fahrzeug eine Fahrt zu, auch wenn ihm bereits eine zugewiesen wurde.
Jede in Fleet Engine erstellte Fahrt muss einem Fahrzeug zugewiesen werden, damit Fleet Engine die voraussichtlichen Ankunftszeiten berechnen und die Fahrt verfolgen kann. Sie können dies entweder beim Erstellen der Fahrt oder später beim Aktualisieren der Fahrt tun.
Nachdem Sie die Fahrt einem Fahrzeug zugewiesen haben, fügt Fleet Engine dem Feld „Wegpunkte“ des Fahrzeugs automatisch die Wegpunkte hinzu, die mit den Back-to-Back-Fahrten verknüpft sind. Das Feld remainingWaypoints einer Fahrt enthält eine Liste aller Wegpunkte, einschließlich der Wegpunkte aus anderen Fahrten, die vor der Abgabe der Fahrt angefahren werden.
Angenommen, es gibt zwei Back-to-Back-Fahrten: Fahrt A und Fahrt B. Das Fahrzeug hat den Kunden für Fahrt Aabgeholt und während der Fahrt zum Zielort erhält der Fahrer eine Anfrage, einen weiteren Kunden für die nächste Fahrt, Fahrt B, abzuholen.
- Der Aufruf von
getVehicle()gibtremainingWaypointszurück, die Folgendes enthalten:
Abgabeort von Fahrt A → Abholort von Fahrt B → Abgabeort von Fahrt B. - Entweder
getTrip()oder deronTripRemainingWaypointsUpdatedCallback für Fahrt A gibtremainingWaypointszurück, die Folgendes enthalten:
Abgabeort von Fahrt A. - Entweder
getTrip()oder deronTripRemainingWaypointsUpdatedCallback für Fahrt B gibtremainingWaypointszurück, die Folgendes enthalten:
Abgabeort von Fahrt A → Abholort von Fahrt B → und Abgabeort von Fahrt B.