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. Mit diesem Ansatz haben Sie mehr Kontrolle über die Nutzererfahrung, können aber trotzdem die genauen Echtzeit-Fahrzeugstandorte, voraussichtlichen Ankunftszeiten und Routen der Fleet Engine nutzen.

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

Fahrtinformationen abrufen

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

Ihr Server fragt normalerweise den Fahrtdienst nach dem Status jeder Fahrt ab, während der Fahrgast den Fortschritt des Fahrzeugs aktiv überwacht. Fahrzeugstandorte werden in der Regel alle 10 Sekunden aktualisiert. Ihr System sollte die Daten im selben Intervall abrufen. Das Feld Trip.last_location.update_time kann überwacht werden, um zu sehen, 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 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 Entität „Fahrt“ enthält ein wiederkehrendes Feld vom Typ TripWaypoint. Dieses Feld enthält alle Wegpunkte, die das Fahrzeug vor dem endgültigen Absetzpunkt dieser Fahrt in der richtigen Reihenfolge 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 zur Fahrtenfreigabe gehören, spiegelt dieser Wegpunkt in der Regel 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 Wegpunkte des Fahrzeugs.

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-Wert des verbleibenden Pfads zum Abholort
Zweiter LatLng-Wert des verbleibenden Pfads zum Abholort
…
Letzter LatLng-Wert des verbleibenden Pfads zum Abholort
pickup_point, falls abweichend vom letzten
traffic_data
distance_meters = Entfernung von der aktuellen vehicle_location entlang des path_to_waypoint zum Abholort
eta = aktualisierte voraussichtliche 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[] Erster LatLng-Wert des Absetzabschnitts
2. Breiten- und Längengrad des Absetzabschnitts
…
Letzter LatLng-Wert des Absetzabschnitts
dropoff_point, falls abweichend vom letzten
traffic_data
distance_meters = Entfernung vom Abholort entlang des path_to_waypoint zum Absetzort
eta = aktualisierte voraussichtliche Ankunftszeit
Dauer = Dauer des Ausstiegsabschnitts

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

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