Fahrtdaten direkt von Fleet Engine abrufen

In dieser Anleitung wird beschrieben, wie Sie Fahrtendaten direkt aus Fleet Engine abrufen können, anstatt das Consumer SDK zu verwenden. So haben Sie mehr Kontrolle über die Endnutzererfahrung und können trotzdem die genauen Echtzeit-Fahrzeugstandorte, voraussichtlichen Ankunftszeiten und Routen von Fleet Engine nutzen.

Weitere Informationen zur Verwendung des Consumer SDK finden Sie unter Fahrten für On-Demand-Fahrten teilen.

Reiseinformationen abrufen

Wenn Sie Reiseinformationen direkt aus Fleet Engine abrufen möchten, rufen Sie die Methode GetTrip auf und geben Sie die Ansicht JOURNEY_SHARING_V1S an. Weitere Informationen finden Sie in der Referenz zu RPC oder REST.

Ihr Server fragt in der Regel den Trip-Dienst nach dem Status der einzelnen Fahrten ab, während der Fahrgast den Fortschritt des Fahrzeugs aktiv beobachtet. Aktualisierungen des Fahrzeugstandorts erfolgen in der Regel alle 10 Sekunden. Ihr System sollte im selben Rhythmus abfragen. Das Feld Trip.last_location.update_time kann überwacht werden, um festzustellen, ob seit dem vorherigen Aufruf von GetTrip Aktualisierungen vorgenommen wurden.

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 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 Abgabeort dieser Fahrt anfahren muss. Wenn Sie die Ansicht „Journey Sharing“ angeben, wird Fleet Engine angewiesen, aktualisierte Informationen in remaining_waypoints[0] TripWaypoint einzufügen. In anderen Ansichten, in denen die Routenfreigabe nicht verwendet wird, wird mit diesem Wegpunkt in der Regel nicht die aktuelle Position des zugewiesenen Fahrzeugs angezeigt. Weitere Informationen finden Sie in der Referenzdokumentation zu RPC oder REST.

Weitere Informationen finden Sie im Leitfaden Einführung in Fahrten unter Fahrtstatus und verbleibende Wegpunkte.

Hier sehen Sie ein Beispiel für das Feld remaining_waypoints für die 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 des verbleibenden Wegs 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 „Abgabeort“
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
duration = Dauer des Rückgabeabschnitts

Bei Fahrten mit aufeinanderfolgenden Fahrten und Fahrten mit mehreren Fahrgästen kann diese Liste Wegpunkte aus anderen Fahrten enthalten, die vor dieser Fahrt angefahren werden müssen. Stellen Sie sich beispielsweise vor, dass Fahrt B demselben Fahrzeug wie Fahrt A zugewiesen wird. Das Feld remaining_waypoints für Fahrt A würde dann so ausgefüllt: Die meisten Felder wurden der Übersichtlichkeit halber 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.