Fahrt mit einem einzelnen Ziel erstellen

In diesem Dokument wird beschrieben, wie Sie eine Fahrt mit einem Ziel erstellen, die richtigen Felder festlegen und sie einem Fahrzeug zuweisen, das sie ausführen soll. Es wird davon ausgegangen, dass Sie Fleet Engine eingerichtet, Fahrzeuge erstellt, eine funktionierende Fahrer-App und optional eine Kunden-App haben. Weitere Informationen finden Sie in den folgenden Anleitungen:

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.

  • CreateTrip()-Methode: gRPC oder REST
  • CreateTripRequest message: Nur gRPC

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.

Felder für Fahrten
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, mit dem diese Fahrt eindeutig identifiziert wird. 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:
  • Einzelnes Ziel: Legen Sie SHARED oder EXCLUSIVE fest.
  • Mehrere Ziele: Legen Sie EXCLUSIVE fest.
  • Nacheinander: Legen Sie EXCLUSIVE fest.
  • Shared Pooling: Legen Sie SHARED 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 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 geteiltem Shuttle: 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-Anrufen aus Datenschutzgründen nicht zurück.

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: Fahrt mit einer einzigen Zieladresse

Im folgenden Beispiel wird gezeigt, wie Sie eine Fahrt zur Grand Indonesia East Mall erstellen. Die Fahrt umfasst zwei Fahrgäste, ist exklusiv und hat den Status NEW. Die provider_id der Fahrt muss mit der Google Cloud-Projekt-ID übereinstimmen. In den Beispielen wird ein Google Cloud-Projekt mit der Projekt-ID my-rideshare-co-gcp-project gezeigt. Dieses Projekt muss außerdem ein Dienstkonto enthalten, um die Fleet Engine aufrufen zu können. Weitere Informationen finden Sie unter Dienstkontorollen.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

// Trip initial settings.
String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE) // Use TripType.SHARED for carpooling.
    .setPickupPoint(                 // Grand Indonesia East Mall.
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setNumberOfPassengers(2)
    // Provide the drop-off point if available.
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId("trip-8241890")  // Trip ID assigned by the provider.
    .setTrip(trip)              // The initial state is NEW.
    .build();

// Error handling.
try {
  Trip createdTrip = tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

Nächste Schritte