Fahrtdaten direkt von Fleet Engine abrufen

In diesem Leitfaden erfahren Sie, wie Sie Fahrtdaten als Alternative zur Verwendung des Consumer SDK direkt aus Fleet Engine abrufen. Mit diesem Ansatz haben Sie mehr Kontrolle über die Endnutzererfahrung und können gleichzeitig den genauen Fahrzeugstandort, die voraussichtliche Ankunftszeit und die Routenführung von Fleet Engine in Echtzeit nutzen.

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

Fahrtinformationen abrufen

Wenn Sie Fahrtinformationen 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.

In der Regel fragt Ihr Server den Fahrtdienst den Status jeder Fahrt ab, während der Fahrgast aktiv den Fahrzeugfortschritt beobachtet. Aktualisierungen der Fahrzeugposition erfolgen in der Regel alle 10 Sekunden und Ihr System sollte mit derselben Rate abfragen. Im Feld Trip.last_location.update_time kann geprüft werden, ob seit dem letzten Aufruf von GetTrip Updates verfügbar sind.

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 abrufen

Die Fahrtenentität enthält ein wiederholtes Feld vom Typ TripWaypoint. Dieses Feld enthält alle Wegpunkte, die das Fahrzeug in der richtigen Reihenfolge vor dem Endabholpunkt dieser Fahrt zurücklegen muss. Wenn Sie die Ansicht „Freigabe der Reise“ angeben, wird die Fleet Engine angewiesen, in den verbleibenden_waypoints[0] TripWaypoint aktualisierte Informationen zu speichern. In anderen Ansichten, bei denen es sich nicht um eine Fahrtfreigabe handelt, entspricht dieser Wegpunkt normalerweise nicht der letzten Position des zugewiesenen Fahrzeugs. Weitere Informationen finden Sie in der Referenz zu RPC oder REST.

Weitere Informationen finden Sie in der Einführung in Fahrten unter Reisestatus und verbleibende Fahrzeug-Wegpunkte.

Hier 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[] 1. LatLng vom verbleibenden Weg bis zur Abholung
2. LatLng vom verbleibenden Weg zur Abholung
Letzte LatLng vom verbleibenden Weg bis zur Abholung
pickup_point (Abholpunkt), falls abweichend vom letzten
traffic_data
length_meters = Entfernung von der aktuellen „vehicle_location“ entlang von path_to_waypoint bis zur Abholung
eta = aktualisierte 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[] 1. LatLng vom Abgabeabschnitt
2. LatLng vom Abholabschnitt
Letzte LatLng vom Abholabschnitt
dropoff_point, falls abweichend vom letzten Wert
traffic_data
length_meters = Entfernung von der Abholstelle entlang von path_to_waypoint bis zur Abgabe
eta = aktualisierte ETA
Dauer = Streckenlänge des Ausstiegs

Bei direkt aufeinanderfolgenden und gemeinsamen Pooling-Fahrten kann diese Liste Wegpunkte von anderen Fahrten enthalten, die vor dieser Fahrt durchlaufen werden müssen. Angenommen, Fahrt B ist demselben Fahrzeug wie Fahrt A zugewiesen. Das Feld remaining_waypoints für Fahrt A wird dann so ausgefüllt. Die meisten Felder wurden aus Gründen der Übersichtlichkeit weggelassen. Sie werden jedoch im Einklang mit dem 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 von Fahrt B wird ähnlich gefüllt, aber nur die ersten drei Einträge sind vorhanden, da der Zielort von Fahrt A nicht Teil der Route von Fahrt B ist.