In diesem Dokument wird beschrieben, wie Sie eine Back-to-Back-Fahrt erstellen, die richtigen Felder festlegen und sie einem Fahrzeug zur Ausführung zuweisen. Es wird davon ausgegangen, dass Sie Fleet Engine eingerichtet, Fahrzeuge erstellt und eine funktionierende Fahrer-App und optional eine Verbraucher-App haben. Außerdem sollten Sie mit den verschiedenen Szenarien für On-Demand-Fahrten vertraut sein. Weitere Informationen finden Sie in den folgenden zugehörigen Leitfäden:
- Fleet Engine einrichten
- Fahrzeug erstellen
- Fahrtszenarien in der Übersicht On-Demand-Fahrten
Grundlagen zum Erstellen von Fahrten
In diesem Abschnitt werden die Anfragedetails beschrieben, die zum Erstellen einer Fahrt in Fleet Engine erforderlich sind. Sie senden eine Erstellungsanfrage entweder mit gRPC oder REST.
Felder für Fahrten
Verwenden Sie die folgenden Felder, um eine Fahrt in Fleet Engine zu erstellen. Sie können für die verschiedenen Arten von Fahrten unterschiedliche Felder verwenden: Fahrten mit einem oder mehreren Zielen, Fahrten mit aufeinanderfolgenden Zielen oder Fahrten mit Sammelpunkten. Sie können die optionalen Felder beim Erstellen der Fahrt angeben oder sie später beim Aktualisieren der Fahrt festlegen.
| Name | Erforderlich? | Beschreibung |
|---|---|---|
| parent | Ja | Ein String, der die Projekt-ID enthält. Diese ID muss in Ihrer gesamten Fleet Engine-Integration verwendet werden, mit denselben Dienstkontorollen. |
| trip_id | Ja | Ein String, den Sie erstellen und der diese Fahrt eindeutig identifiziert. Für Trip-IDs gelten bestimmte Einschränkungen, wie in der Referenz angegeben. |
| trip_type | Ja | Legen Sie TripType auf die folgenden Werte für den von Ihnen erstellten Reise-Typ fest:
|
| pickup_point | Ja | Der Ausgangspunkt der Fahrt. |
| Zwischenziele | Ja | Nur Fahrten mit mehreren Zielen: Die Liste der Zwischenziele, die der Fahrer zwischen Abhol- und Absetzort anfährt. Wie bei |
| vehicle_waypoints | Ja | Nur Fahrten mit Sammelfahrten: In diesem Feld können die Wegpunkte mehrerer Fahrten verschachtelt werden.
Sie enthält alle verbleibenden Wegpunkte für das zugewiesene Fahrzeug sowie die Abhol- und Absetzwegpunkte für diese Fahrt. Sie können dieses Feld festlegen, indem Sie |
| number_of_passengers | Nein | Die Anzahl der Passagiere auf der Fahrt. |
| dropoff_point | Nein | Das Ziel der Reise. |
| vehicle_id | Nein | Die ID des Fahrzeugs, das der Fahrt zugewiesen ist. |
Beispiel: Direkt aufeinanderfolgende Fahrten erstellen
Im Folgenden wird gezeigt, wie Sie eine Back-to-Back-Fahrt erstellen und einem Fahrzeug zuweisen. In diesem Szenario ist die Erstellung einer Reise dieselbe wie bei einer Reise mit einem Zielort. 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;
}
Direkt aufeinanderfolgende Fahrten aktualisieren
Wenn Sie ein Fahrzeug für eine Anschlussfahrt 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 voraussichtliche Ankunftszeit 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 automatisch die Wegpunkte, die mit den aufeinanderfolgenden Fahrten verknüpft sind, dem Feld „Wegpunkte“ des Fahrzeugs hinzu. Das Feld remainingWaypoints einer Fahrt enthält eine Liste aller Wegpunkte, einschließlich der Wegpunkte anderer Fahrten, die vor dem Zielort der Fahrt angefahren werden.
Angenommen, Sie haben zwei aufeinanderfolgende Fahrten: Fahrt A und Fahrt B. Das Fahrzeug hat den Nutzer für Fahrt A abgeholt. Auf dem Weg zum Zielort erhält der Fahrer eine Anfrage, einen anderen Nutzer für die nächste Fahrt, Fahrt B, abzuholen.
- Beim Aufrufen von
getVehicle()wirdremainingWaypointszurückgegeben.
A Abgabeort → B Abholort → B Abgabeort. - Entweder
getTrip()oder deronTripRemainingWaypointsUpdated-Callback für Fahrt A gibtremainingWaypointszurück, die Folgendes enthalten:
Ablieferort A. - Entweder
getTrip()oder deronTripRemainingWaypointsUpdated-Callback für Fahrt B gibtremainingWaypointszurück, die Folgendes enthalten:
A Zieladresse → B Startadresse → und B Zieladresse.