Fahrtdaten direkt von Fleet Engine abrufen

In diesem Leitfaden erfahren Sie, wie Sie Fahrtdaten direkt aus der Fleet Engine abrufen, anstatt das Consumer SDK zu verwenden. So haben Sie mehr Kontrolle über die Nutzererfahrung und können trotzdem die genauen Echtzeitdaten zu Fahrzeugstandort, voraussichtlicher Ankunftszeit und Routen von Fleet Engine nutzen.

Weitere Informationen zur Verwendung des Consumer SDK finden Sie unter Fahrten auf Abruf teilen.

Reiseinformationen abrufen

Wenn Sie Fahrtinformationen direkt aus 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 in der Regel den Status jeder Fahrt beim Trip-Dienst ab, während der Fahrgast den Fortschritt des Fahrzeugs aktiv beobachtet. Aktualisierungen des Fahrzeugstandorts erfolgen in der Regel alle 10 Sekunden. Ihr System sollte in diesem Rhythmus abfragen. Anhand des Felds Trip.last_location.update_time können Sie prüfen, 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 für die 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 Trip-Entität enthält ein wiederholtes Feld vom Typ TripWaypoint. Dieses Feld enthält alle Wegpunkte, die das Fahrzeug in der richtigen Reihenfolge vor dem endgültigen Zielort dieser Fahrt 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 für die gemeinsame Nutzung von Fahrten vorgesehen sind, spiegelt dieser Wegpunkt normalerweise 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 Fahrzeugwegpunkte.

Hier ist ein Beispiel für das Feld remaining_waypoints für eine Fahrt, Fahrt A:

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] Erster LatLng vom verbleibenden Weg zum Abholort
2. LatLng vom verbleibenden Weg zum Abholort
…
Letzter LatLng vom verbleibenden Weg zum Abholort
pickup_point, falls abweichend vom letzten
traffic_data
distance_meters = Entfernung vom aktuellen vehicle_location entlang des path_to_waypoint bis zum Abholort
eta = updated ETA
duration = updated duration
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] Erster LatLng aus dem Absetzort-Abschnitt
2. LatLng aus dem Abschnitt „Absetzen“
…
Letzter LatLng-Wert des Absetzabschnitts
dropoff_point, falls abweichend vom letzten
traffic_data
distance_meters = Entfernung vom Abholort entlang des Pfads zum Wegpunkt zum Absetzort
eta = updated ETA
Dauer = Dauer der Teilstrecke bis zum Absetzpunkt

Bei Fahrten mit aufeinanderfolgenden Fahrten und Fahrten mit Fahrgemeinschaften kann diese Liste Wegpunkte aus anderen Fahrten enthalten, die vor dieser Fahrt angefahren werden müssen. Nehmen wir beispielsweise an, Fahrt B ist demselben Fahrzeug wie Fahrt A zugewiesen. Das Feld remaining_waypoints für Fahrt A würde dann so ausgefüllt: Die meisten Felder wurden aus Gründen der Übersichtlichkeit weggelassen, sie würden aber wie im vorherigen Beispiel ausgefüllt.

[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 für Fahrt B würde ähnlich ausgefüllt werden, aber nur die ersten drei Einträge wären vorhanden, da der Abgabeort von Fahrt A nicht Teil der Route von Fahrt B ist.