Pobieranie danych podróży bezpośrednio z Fleet Engine

Z tego przewodnika dowiesz się, jak pobrać dane podróży bezpośrednio z Fleet Engine, jako jest alternatywą dla pakietu Consumer SDK. Możesz zastosować tę metodę, aby uzyskać więcej kontrolę nad wrażeniami użytkowników, jednocześnie korzystając z zalet floty Dokładna lokalizacja pojazdu, szacowany czas dotarcia na miejsce i trasy w czasie rzeczywistym z wyszukiwarki.

Szczegółowe informacje o korzystaniu z pakietu SDK dla klientów indywidualnych znajdziesz w artykule Udostępnianie ścieżek na żądanie podróży.

Pobieranie informacji o podróży

Aby pobrać informacje o podróży bezpośrednio z Fleet Engine, wywołaj GetTrip określającą widok JOURNEY_SHARING_V1S. Zapoznaj się z informacjami o RPC lub REST.

Serwer zwykle odpytuje usługę podróży pod kątem stanu każdej podróży podczas gdy pasażer aktywnie monitoruje postępy pojazdu. Lokalizacja pojazdu aktualizacje odbywają się zwykle co 10 sekund, więc system powinien stawki nie zmienia się. Pole Trip.last_location.update_time można monitorować, aby sprawdzić, czy od ostatniego połączenia z numerem GetTrip pojawiły się jakieś zmiany.

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

Powstały w ten sposób obiekt Trip ma następujące pola wypełnione najnowszymi danymi dostępne informacje o podróży:

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

Pobieranie pozostałych punktów na trasie

Element Podróż zawiera pole powtarzane typu TripWaypoint To pole obejmuje wszystkie punkty, które musi pokonać pojazd, aby do miejsca docelowego tej podróży. Określanie widoku udostępniania trasy Fleet Engine do umieszczenia zaktualizowanych informacji w pozostałych punktach pośrednich[0] TripWaypoint W innych widokach, które nie są udostępniane w podróży, taki punkt pośredni zwykle odzwierciedlają najnowsze położenie przypisanego pojazdu. Zobacz odniesienie do RPC lub REST.

Więcej informacji znajdziesz w sekcji Stan podróży i pozostałe punkty na trasie pojazdu w przewodnika Wprowadzenie do podróży.

Oto przykład pola remaining_waypoints dotyczącego podróży, Podróży A:

[0] location.point = travel.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
ścieżka_do_punktu pośredniego = szer.Lng[] Pierwsza długość geograficzna od pozostałej ścieżki do odbioru
Druga długość geograficzna od pozostałej ścieżki do odbioru
ostatnia długość geograficzna od pozostałej ścieżki do odbioru
pickup_point, jeśli jest inny niż ostatni
traffic_data
długość_metrów = odległość od bieżącej lokalizacji pojazdu na ścieżce do_punktu_kierunkowego do punktu odbioru
eta = zaktualizowany szacowany czas dotarcia
czas trwania = zaktualizowany czas trwania
[1] location.point = travel.dropoff_point.point
journey_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
ścieżka_do_punktu pośredniego = szer.Lng[] 1. długość geograficzna od miejsca powrotnego
Druga długość geograficzna od etapu powrotnego
ostatnie położenie geograficzne od etapu opuszczenia
dropoff_point, jeśli jest inny niż ostatni
traffic_data
odległość_metrów = odległość od punktu odbioru do punktu wyznaczania trasy do punktu wyjścia
eta = zaktualizowany szacowany czas dotarcia
czas trwania = czas, w którym opuszczano etap

W przypadku wspólnych podróży i wspólnych przejazdów ta lista może zawierać punkty pośrednie z innych podróży, które warto pokonać. Na przykład: scenariusz, w którym Podróż B jest przypisana do tego samego pojazdu co Podróż A. Pole remaining_waypoints dotyczące Podróży A zostałoby wypełnione w ten sposób: Większość pól została pominięta ze względu na zwięzłość, ale byłyby one jest wypełniane zgodnie z poprzednim przykładem.

[0] journey_id = "trip_A"
Waypoint_type = PICKUP_WAYPOINT_TYPE
[1] journey_id = "trip_B"
Waypoint_type = PICKUP_WAYPOINT_TYPE
[2] journey_id = "trip_B"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
[3] journey_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE

Pole remaining_waypoint w podróży B zostałoby wypełnione w podobny sposób, ale tylko widoczne będą pierwsze trzy wpisy, ponieważ miejsce, do którego wraca się dla Podróży A, nie jest częścią na trasie podróży B.