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 in derselben Häufigkeit 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 Zielort dieser Fahrt anfahren muss. Wenn Sie die Ansicht „Journey Sharing“ angeben, weist das Fleet Engine-System die aktualisierten Informationen dem remaining_waypoints[0]TripWaypoint zu. In anderen Ansichten, in denen die Routenfreigabe nicht verwendet wird, wird mit diesem Wegpunkt in der Regel nicht die aktuelle Position des zugewiesenen Fahrzeugs wiedergegeben. 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 ist 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
Abholort, falls abweichend vom letzten
traffic_data
distance_meters = Entfernung vom aktuellen vehicle_location entlang des path_to_waypoint zum Abholort
eta = updated ETA
Dauer = aktualisierte Dauer
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] Erster LatLng-Wert aus dem Absetzort-Abschnitt
2. LatLng vom Absetzpunkt-Abschnitt
Letzter LatLng-Wert des Absetzabschnitts
dropoff_point, falls abweichend vom letzten
traffic_data
distance_meters = Entfernung vom Abholort entlang des Pfads zum Wegpunkt bis zum Absetzort
eta = updated ETA
duration = Dauer des Rückgabeabschnitts

Bei aufeinanderfolgenden und gemeinsamen Fahrten kann diese Liste Wegpunkte von anderen Fahrten enthalten, die vor dieser Reise zurückgelegt werden müssen. Stellen Sie sich beispielsweise das Szenario vor, in dem Fahrt B demselben Fahrzeug wie Fahrt A zugewiesen wird. Das Feld remaining_waypoints für Reise A würde dann wie folgt ausgefüllt werden. Die meisten Felder wurden aus Gründen der Übersichtlichkeit weggelassen, würden aber analog zum 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.