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 Fleet Engine Sie senden eine Anfrage zur Erstellung mit gRPC und 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: ein- oder mehrere Ziele, oder gemeinsame Pooling-Trips. Ich können beim Erstellen der Fahrt die optionalen Felder ausfüllen oder 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 dazwischen besucht. Abholung und Abgabe. Wie bei dropoff_point wird auch dieses Feld kann auch später durch Aufrufen von UpdateTrip festgelegt werden, aber eine Kombination aus mehreren Zielen Fahrt enthält Zwischenziele.

vehicle_waypoints Ja

Nur gemeinsam genutzte Pooling-Fahrten: In diesem Feld können die Wegpunkte mehrerer Fahrten verschränkt werden. Es enthält alle verbleibenden Wegpunkte für das zugewiesene Fahrzeug sowie als Start- und Zielort für diese Fahrt angeben. Sie können dieses Feld durch Aufrufen von CreateTrip oder UpdateTrip. Sie können auch Fahrzeug-Wegpunkte über das Feld waypoints mit einem an UpdateVehicle. Der Dienst gibt diese Informationen bei GetTrip-Aufrufen nicht zurück. aus Datenschutzgründen.

number_of_passengers Nein Die Anzahl der Fahrgäste für die Fahrt.
dropoff_point Nein Das Ziel der Reise.
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 aufeinanderfolgende Fahrt erstellen und einer Fahrzeug. In diesem Szenario entspricht die Fahrterstellung der Erstellung eines einzelnen Ziels. Fahrt. Erst später erstellen Sie eine neue Fahrt und weisen sie einem Fahrzeug zu. mit einer bereits aktiven Fahrt.

// 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