Fahrt mit einem einzelnen Ziel erstellen

In diesem Dokument wird beschrieben, wie Sie eine Fahrt mit einem einzelnen Ziel erstellen, den richtigen und es einem Fahrzeug zuweisen, das erfüllt werden soll. Es wird davon ausgegangen, dass Sie Flotte eingerichtet haben und dass ihr Fahrzeuge erstellt, eine funktionierende Fahrer-App habt optional eine Nutzer-App. Weitere Informationen dazu finden Sie in den folgenden Leitfäden:

Grundlagen der Reiseplanung

In diesem Abschnitt werden die Anfragedetails beschrieben, die zum Erstellen einer Fahrt in Fleet Engine 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 unterschiedliche Felder für die verschiedenen Arten von Fahrten verwenden: Fahrten mit einem oder mehreren Zielen, Fahrten nacheinander oder Fahrten mit geteiltem Pool. Ich können beim Erstellen der Fahrt die optionalen Felder ausfüllen oder 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 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. Fahrten-IDs unterliegen bestimmten Einschränkungen, die in der Referenz angegeben sind.
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.
  • Nacheinander: Legen Sie EXCLUSIVE fest.
  • 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: Fahrt mit einem Ziel

Das folgende Beispiel zeigt, wie Sie eine Reise nach Grand Indonesia erstellen East Mall Die Fahrt umfasst zwei Fahrgäste, ist exklusiv und ihr Status ist NEW Die provider_id der Fahrt muss mit der Google Cloud übereinstimmen Projekt-ID. Die Beispiele zeigen ein Google Cloud-Projekt mit der Projekt-ID. my-rideshare-co-gcp-project Dieses Projekt muss auch ein Dienstkonto enthalten um Fleet Engine aufzurufen. 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