In diesem Dokument wird beschrieben, wie Sie einen aufeinanderfolgenden Fahrtauftrag erstellen, die richtigen Felder festlegen und ihn einem Fahrzeug zuweisen. Es wird davon ausgegangen, dass Sie Fleet Engine eingerichtet, Fahrzeuge erstellt, eine funktionierende Fahrer-App und optional eine Verbraucher-App haben. Außerdem sollten Sie mit den verschiedenen Fahrtszenarien für Fahrten auf Abruf vertraut sein. Weitere Informationen finden Sie in den folgenden Leitfäden:
- Fleet Engine einrichten
- Fahrzeug erstellen
- Reise-Szenarien in der Übersicht On-Demand-Fahrten
Grundlagen zur Erstellung von Reisen
In diesem Abschnitt werden die Anfragedetails beschrieben, die zum Erstellen einer Fahrt in der 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 unterschiedliche Felder für die verschiedenen Arten von Fahrten verwenden: Fahrten mit einem oder mehreren Zielen, Fahrten nacheinander oder Fahrten mit geteiltem Pool. 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 mit der ID übereinstimmen, die für die gesamte Fleet Engine-Integration verwendet wird, und dieselben Dienstkontorollen haben. |
trip_id | Ja | Ein von Ihnen erstellter String, der diese Fahrt eindeutig identifiziert. Fahrten-IDs unterliegen bestimmten Einschränkungen, die in der Referenz angegeben sind. |
trip_type | Ja | Legen Sie für den zu erstellenden Fahrttyp die folgenden Werte für TripType fest:
|
pickup_point | Ja | Der Startpunkt der Fahrt. |
Zwischenziele | Ja | Nur Fahrten mit mehreren Zielen: Die Liste der Zwischenziele, die der Fahrer zwischen Abhol- und Zielort besucht. Wie bei |
vehicle_waypoints | Ja | Nur Fahrten mit Mitfahrgelegenheit: In diesem Feld können die Wegpunkte mehrerer Fahrten überlappend angegeben werden.
Sie enthält alle verbleibenden Wegpunkte für das zugewiesene Fahrzeug sowie die Abhol- und Abgabeorte für diese Fahrt. Sie können dieses Feld durch Aufrufen von |
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: Rück- und Rückreise erstellen
Im Folgenden wird gezeigt, wie Sie eine Fahrt mit Anschlussfahrt erstellen und einem Fahrzeug zuweisen. In diesem Szenario erfolgt die Erstellung der Fahrt wie bei einer Fahrt mit nur einem Ziel. Erst später erstellen Sie eine weitere Fahrt und weisen sie einem Fahrzeug zu, für das bereits eine Fahrt aktiv ist.
// 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;
}
Hin- und Rückfahrten aktualisieren
Wenn Sie ein Fahrzeug für eine Fahrt hintereinander zuweisen, weisen Sie einem Fahrzeug eine Fahrt zu, auch wenn ihm bereits eine Fahrt zugewiesen wurde.
Alle in Fleet Engine erstellten Fahrten müssen einem Fahrzeug zugewiesen werden, damit Fleet Engine die geschätzte 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 die zu den aufeinanderfolgenden Fahrten gehörenden Wegpunkte automatisch dem Feld „Wegpunkte“ des Fahrzeugs hinzu. Das Feld remainingWaypoints
einer Fahrt enthält eine Liste aller Wegpunkte, einschließlich derer aus anderen Fahrten, die vor dem Ziel der Fahrt besucht 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 weiteren Nutzer für die nächste Fahrt, Fahrt B, abzuholen.
- Der Aufruf von
getVehicle()
gibtremainingWaypoints
zurück, die Folgendes enthalten:
A Abgabe → B Abholung → B Abgabe. - Entweder
getTrip()
oder deronTripRemainingWaypointsUpdated
-Callback für Fahrt A gibtremainingWaypoints
zurück, die Folgendes enthalten:
Eine Abholstelle. - Entweder
getTrip()
oder deronTripRemainingWaypointsUpdated
-Callback für Fahrt B gibtremainingWaypoints
zurück, die Folgendes enthalten:
A Abholadresse → B Abholadresse → B Abholadresse.