Fahrtdaten direkt von Fleet Engine abrufen

In dieser Anleitung erfahren Sie, wie Sie Fahrtdaten direkt aus Fleet Engine abrufen können, anstatt das Consumer SDK zu verwenden. Mit diesem Ansatz können Sie die Nutzerfreundlichkeit verbessern und gleichzeitig die genaue und Echtzeit-Fahrzeugposition, die geschätzte Ankunftszeit und die Routen von Fleet Engine nutzen.

Weitere Informationen zur Verwendung des Consumer SDK finden Sie unter Fahrten 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.

Normalerweise fragt Ihr Server den Fahrtdienst nach dem Status jeder Fahrt ab, während der Fahrgast den Fortschritt des Fahrzeugs aktiv 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 der Fahrt 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 anfahren muss, bevor es den letzten Zielort dieser Fahrt erreicht. Wenn Sie die Ansicht für die Fahrtfreigabe angeben, wird die Fleet Engine angewiesen, aktualisierte Informationen in die remaining_waypoints[0]TripWaypoint einzugeben. In anderen Ansichten, die nicht für die Freigabe von Fahrten gedacht sind, entspricht dieser Wegpunkt in der Regel nicht der aktuellen Position des zugewiesenen Fahrzeugs. Weitere Informationen finden Sie in der RPC- oder REST-Referenz.

Weitere Informationen finden Sie im Leitfaden Einführung in Fahrten unter Fahrtstatus 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 zur Abholung
2. LatLng vom verbleibenden Weg zur Abholung
Letzte LatLng vom verbleibenden Pfad zur Abholung
pickup_point, falls abweichend vom letzten
traffic_data
distance_meters = Entfernung vom aktuellen Fahrzeugstandort entlang von path_to_waypoint zur Abholstelle
eta = aktualisierte geschätzte Ankunftszeit
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
traffic_data
distance_meters = Entfernung von der Abholstelle entlang von path_to_waypoint zur Rückgabestelle
eta = aktualisierte geschätzte Ankunftszeit
duration = Dauer des Rückgabeabschnitts

Bei aufeinanderfolgenden Fahrten und Fahrten mit geteiltem Pool können diese Liste Wegpunkte aus anderen Fahrten enthalten, die vor dieser Fahrt zurückgelegt werden müssen. Angenommen, 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 von Fahrt B wird auf ähnliche Weise ausgefüllt, aber nur die ersten drei Einträge sind vorhanden, da der Abholpunkt von Fahrt A nicht Teil der Route von Fahrt B ist.