Fahrtdaten direkt von Fleet Engine abrufen

Das Consumer SDK bietet eine sofort einsetzbare Funktion für Nutzer-Apps für Mitfahrdienste, mit denen der Standort und der Fortschritt des Fahrzeugs auf der Fahrt angezeigt werden können.

Einige Mitfahrdienstanbieter wünschen sich jedoch durch flexible Einbindung mehr Kontrolle über die Erfahrung der Endnutzer und nutzen gleichzeitig die Vorteile des genauen Fahrzeugstandorts, der voraussichtlichen Ankunftszeit und der Route von Google in Echtzeit. In diesem Leitfaden erfahren Sie, wie Sie als Alternative zur Verwendung des Consumer SDK Fahrtdaten direkt aus der Fleet Engine abrufen können.

Überblick

Wenn Sie Fahrtinformationen direkt von Fleet Engine abrufen möchten, rufen Sie die Methode GetTrip auf und geben Sie die Ansicht JOURNEY_SHARING_V1S (RPC | REST) an.

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);

In die folgenden Felder des resultierenden Objekts „Trip“ (RPC | REST) werden die neuesten verfügbaren Informationen für die Fahrt eingetragen:

  • name
  • vehicle_id
  • trip_status
  • trip_type
  • number_of_passengers
  • pickup_point
  • actual_pickup_point
  • pickup_time
  • intermediate_destinations
  • intermediate_destinations_version
  • intermediate_destination_index
  • dropoff_point
  • actual_dropoff_point
  • dropoff_time
  • remaining_waypoints
  • last_location
  • view (== JOURNEY_SHARING_V1S)

Mitfahrdienstanbieter fragen den Fahrdienst in der Regel alle zwei bis fünf Sekunden den Status jeder Fahrt ab, während der Fahrgast den Fahrzeugfortschritt aktiv überwacht. Die Aktualisierung des Fahrzeugstandorts erfolgt in der Regel in längeren Intervallen, etwa zehn Sekunden. Das Feld Trip.last_location.update_time kann überwacht werden, um zu sehen, ob seit dem vorherigen Aufruf von GetTrip Aktualisierungen stattgefunden haben.

Wegpunkte für Fahrten

Die Entität „Trip“ enthält ein wiederkehrendes Feld vom Typ TripWaypoint (RPC | REST). Dieses Feld enthält alle Wegpunkte, die das Fahrzeug der Reihe nach vor dem endgültigen Ausstiegspunkt dieser Fahrt zurücklegen muss. Wenn Sie die Ansicht für die Fahrt teilen, weisen Sie Fleet Engine an, aktualisierte Informationen in die verbleibenden_waypoints[0]-TripWaypoint einzutragen. In anderen Ansichten, die keine Fahrten teilen, entspricht dieser Wegpunkt normalerweise nicht der letzten Position des zugewiesenen Fahrzeugs.

Hier ein Beispiel für das Feld remaining_waypoints von 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 Pfad zur Abholung
...
Letzte LatLng vom verbleibenden Pfad zur Abholung
pickup_point, falls abweichend vom letzten Wert
traffic_data
distance_meters = Entfernung von aktuellem Fahrzeugort entlang „path_to_waypoint“ bis zur Abholung
eta = aktualisierte voraussichtliche Ankunftszeit
duration = 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 Drop-off-Abschnitt
Zweite LatLng-Position ab Drop-off-Abschnitt
...
Letzte LatLng-Position aus dem Drop-off-Abschnitt
dropoff_point, falls abweichend vom letzten Wert
traffic_data
distance_meters = Entfernung vom Abholort entlang path_to_waypoint bis Zielpunkt
eta = aktualisierte voraussichtliche Ankunftszeit
dauer = Dauer der Abreisestrecke

Bei aufeinanderfolgenden Fahrten und gemeinsamen Fahrten (Fahrgemeinschaften) kann diese Liste Wegpunkte von anderen Fahrten enthalten, die während dieser Fahrt durchlaufen werden. Stellen Sie sich zum Beispiel das Szenario vor, bei dem Fahrt B dem gleichen Fahrzeug zugewiesen wird wie Fahrt A. 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 werden 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 würde ähnlich ausgefüllt werden, aber es wären nur die ersten drei Einträge vorhanden, da der Ausstiegspunkt von Fahrt A nicht Teil der Route von Fahrt B ist.