In diesem Leitfaden erfahren Sie, wie Sie Fahrtdaten direkt aus der Fleet Engine abrufen, anstatt das Consumer SDK zu verwenden. Mit diesem Ansatz haben Sie mehr Kontrolle über die Nutzererfahrung, können aber trotzdem die genauen Echtzeit-Fahrzeugstandorte, voraussichtlichen Ankunftszeiten und Routen der Fleet Engine nutzen.
Weitere Informationen zur Verwendung des Consumer SDK finden Sie unter Fahrten für On-Demand-Fahrten teilen.
Fahrtinformationen abrufen
Wenn Sie Fahrtdaten direkt aus der Fleet Engine abrufen möchten, rufen Sie die Methode GetTrip auf und geben Sie die Ansicht JOURNEY_SHARING_V1S an. Siehe Referenz für RPC oder REST.
Ihr Server fragt normalerweise den Fahrtdienst nach dem Status jeder Fahrt ab, während der Fahrgast den Fortschritt des Fahrzeugs aktiv überwacht. Fahrzeugstandorte werden in der Regel alle 10 Sekunden aktualisiert. Ihr System sollte die Daten im selben Intervall abrufen. Das Feld Trip.last_location.update_time kann überwacht werden, um zu sehen, ob es seit dem vorherigen Aufruf von GetTrip Aktualisierungen gegeben hat.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String TRIP_ID = "trip-A";
String tripName = "providers/" + PROJECT_ID + "/trips/" + TRIP_ID;
GetTripRequest getTripRequest =
GetTripRequest.newBuilder()
.setName(tripName)
.setView(JOURNEY_SHARING_V1S)
.build();
Trip trip = tripService.getTrip(getTripRequest);
Das resultierende Trip-Objekt enthält die folgenden Felder mit den neuesten verfügbaren Informationen zur Fahrt:
name |
trip_status |
remaining_waypoints |
vehicle_id |
trip_type |
last_location |
number_of_passengers |
pickup_point |
view (== JOURNEY_SHARING_V1S) |
actual_pickup_point |
intermediate_destinations |
intermediate_destination_index |
pickup_time |
intermediate_destinations_version |
dropoff_point |
actual_dropoff_point |
dropoff_time |
|
Verbleibende Wegpunkte der Fahrt abrufen
Die Entität „Fahrt“ enthält ein wiederkehrendes Feld vom Typ TripWaypoint. Dieses Feld enthält alle Wegpunkte, die das Fahrzeug vor dem endgültigen Absetzpunkt dieser Fahrt in der richtigen Reihenfolge anfahren muss. Wenn Sie die Ansicht „Fahrt teilen“ angeben, wird die Fleet Engine angewiesen, aktualisierte Informationen in „remaining_waypoints[0]“ (TripWaypoint) zu platzieren. In anderen Ansichten, die nicht zur Fahrtenfreigabe gehören, spiegelt dieser Wegpunkt in der Regel nicht die aktuelle Position des zugewiesenen Fahrzeugs wider. Weitere Informationen finden Sie in der Referenz für RPC oder REST.
Weitere Informationen finden Sie im Leitfaden Einführung in Fahrten unter Fahrtstatus und verbleibende Wegpunkte des Fahrzeugs.
Hier ist ein Beispiel für das Feld remaining_waypoints für eine Fahrt, Fahrt A:
| |||||||||||||||||||||
| |||||||||||||||||||||
Bei aufeinanderfolgenden und gemeinsamen Fahrten kann diese Liste Wegpunkte von anderen Fahrten enthalten, die vor dieser Fahrt durchlaufen werden müssen. Angenommen, Fahrt B wird demselben Fahrzeug wie Fahrt A zugewiesen. Das Feld remaining_waypoints für Fahrt A würde dann so ausgefüllt werden:
Die meisten Felder wurden aus Gründen der Übersichtlichkeit weggelassen, sie würden aber wie im vorherigen Beispiel ausgefüllt werden.
| [0] | trip_id = "trip_A" |
|---|---|
| waypoint_type = PICKUP_WAYPOINT_TYPE | |
| [1] | trip_id = "trip_B" |
| waypoint_type = PICKUP_WAYPOINT_TYPE | |
| [2] | trip_id = "trip_B" |
| waypoint_type = DROP_OFF_WAYPOINT_TYPE | |
| [3] | trip_id = "trip_A" |
| waypoint_type = DROP_OFF_WAYPOINT_TYPE |
Das Feld remaining_waypoint von Fahrt B würde ähnlich ausgefüllt werden, aber nur die ersten drei Einträge wären vorhanden, da der Absetzpunkt von Fahrt A nicht Teil der Route von Fahrt B ist.