Reisen mit mehreren aufeinanderfolgenden Reisen erstellen

In diesem Dokument wird beschrieben, wie Sie eine Fahrt hintereinander erstellen, die richtige und es einem Fahrzeug zuweisen, das erfüllt werden soll. Es wird davon ausgegangen, dass Sie Flotte eingerichtet haben Fahrzeuge erstellt, eine funktionierende Fahrer-App installiert, optional eine Nutzer-App. Außerdem sollten Sie mit den verschiedenen Szenarien für On-Demand-Fahrten. Weitere Informationen finden Sie in den dass:

Grundlagen der Reiseplanung

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.

  • CreateTrip()-Methode: gRPC oder REST
  • CreateTripRequest-Nachricht: nur gRPC

Fahrtfelder

Verwenden Sie die folgenden Felder, um eine Fahrt in Fleet Engine zu erstellen. Sie können verschiedene für die verschiedenen Arten von Fahrten: mit einem oder mehreren Zielen, oder gemeinsame Pooling-Trips. Sie können die optionalen Felder beim Erstellen der Fahrt angeben oder sie später festlegen, wenn Sie die Fahrt aktualisieren.

Fahrtfelder
Name Erforderlich? Beschreibung
parent Ja Ein String, der die Projekt-ID enthält. Diese ID muss mit der verwendeten ID übereinstimmen für die gesamte Fleet Engine-Einbindung über dasselbe Dienstkonto Rollen.
trip_id Ja Ein von Ihnen erstellter String, der diese Fahrt eindeutig identifiziert. Reise-IDs haben bestimmte Einschränkungen, wie in der Referenz angegeben.
trip_type Ja Legen Sie für TripType die folgenden Werte für die erstellte Fahrtart fest:
  • Einzelnes Ziel: Legen Sie SHARED oder EXCLUSIVE fest.
  • Mehrere Ziele: Legen Sie EXCLUSIVE fest.
  • Voreinander: Auf EXCLUSIVE gesetzt.
  • Gemeinsam genutztes Pooling: auf SHARED gesetzt.
pickup_point Ja Ausgangspunkt der Fahrt.
Ziele für Fortgeschrittene Ja

Nur Fahrten mit mehreren Zielen: Die Liste der Zwischenziele, die der Fahrer zwischen Abhol- und Zielort besucht. Wie bei dropoff_point kann dieses Feld auch später durch Aufrufen von UpdateTrip festgelegt werden. Eine Fahrt mit mehreren Zielen enthält jedoch per Definition Zwischenziele.

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 CreateTrip oder UpdateTrip festlegen. Sie können Fahrzeug-Wegpunkte auch über das Feld waypoints mit einem Aufruf von UpdateVehicle aktualisieren. Der Dienst gibt diese Informationen bei GetTrip-Aufrufen nicht zurück. aus Datenschutzgründen.

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: eine direkt aufeinanderfolgende Reise 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;
}

Fahrten direkt hintereinander aktualisieren

Wenn Sie ein Fahrzeug einer direkt aufeinanderfolgenden Fahrt zuweisen, auch wenn bereits ein Fahrzeug zugewiesen wurde.

Jede in Fleet Engine erstellte Fahrt muss einem Fahrzeug zugewiesen sein, Fleet Engine, um die voraussichtlichen Ankunftszeiten für Fahrten zu berechnen und zu verfolgen. Sie können dies während der oder später, wenn Sie die Fahrt aktualisieren.

Nachdem Sie die Fahrt einem Fahrzeug zugewiesen haben, fügt Fleet Engine automatisch Wegpunkte, die den aufeinanderfolgenden Fahrten zu den Wegpunkten des Fahrzeugs zugeordnet sind ein. Das Feld remainingWaypoints einer Fahrt enthält eine Liste aller Wegpunkte, einschließlich derer von anderen Fahrten, die vor dem den Ausstieg der Fahrt.

Beispiel: Fahrt A und Fahrt B. Das Fahrzeug hat den Kunden abgeholt. für Fahrt A und auf dem Weg zum Ziel erhält der Fahrer eine Anfrage, einen anderen Nutzer Nächste Fahrt: Reise B.

  • Der Aufruf von getVehicle() gibt remainingWaypoints zurück Enthält:
    Einen AbbruchB AbholungB Abbruch.
  • Entweder getTrip() oder der onTripRemainingWaypointsUpdated-Callback für Fahrt A gibt remainingWaypoints zurück Enthält:
    Ein Abbruch.
  • Entweder getTrip() oder der onTripRemainingWaypointsUpdated-Callback für Fahrt B gibt remainingWaypoints zurück enthalten:
    Ein AbbruchB Abholung → und B Abbruch.

Nächste Schritte