Z tego przewodnika dowiesz się, jak pobierać dane o podróży bezpośrednio z Fleet Engine, co stanowi alternatywę dla korzystania z pakietu SDK dla klientów. Możesz użyć tego podejścia, aby mieć większą kontrolę nad wrażeniami użytkowników, a jednocześnie korzystać z dokładnej lokalizacji pojazdu, szacowanego czasu dotarcia na miejsce i wyznaczania trasy w czasie rzeczywistym w Fleet Engine.
Szczegółowe informacje o korzystaniu z pakietu Consumer SDK znajdziesz w artykule o udostępnianiu tras przejazdów na żądanie.
Pobieranie informacji o podróży
Aby pobrać informacje o przejeździe bezpośrednio z Fleet Engine, wywołaj metodę GetTrip, podając widok JOURNEY_SHARING_V1S. Więcej informacji znajdziesz w dokumentacji RPC lub REST.
Gdy pasażer aktywnie śledzi postępy pojazdu, serwer zwykle odpytuje usługę podróży o stan każdej podróży. Lokalizacja pojazdu jest zwykle aktualizowana co 10 sekund i system powinien wysyłać zapytania z taką samą częstotliwością. Pole Trip.last_location.update_time można monitorować, aby sprawdzić, czy od poprzedniego wywołania funkcji GetTrip wprowadzono 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);
Obiekt Trip zawiera te pola wypełnione najnowszymi dostępnymi informacjami 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 trasy przejazdu
Encja Trip zawiera pole powtarzane typu TripWaypoint. To pole zawiera wszystkie punkty pośrednie, które pojazd musi pokonać w odpowiedniej kolejności, zanim dotrze do końcowego punktu wysiadania. Określenie widoku udostępniania przejazdu powoduje, że Fleet Engine umieszcza zaktualizowane informacje w polu remaining_waypoints[0] TripWaypoint. W innych widokach, które nie są widokami udostępniania przejazdu, ten punkt pośredni zwykle nie odzwierciedla najnowszej pozycji przypisanego pojazdu. Więcej informacji znajdziesz w dokumentacji RPC lub REST.
Więcej informacji znajdziesz w sekcji Stan podróży i pozostałe punkty na trasie pojazdu w przewodniku Wprowadzenie do podróży.
Oto przykład pola remaining_waypoints w przypadku wycieczki A:
| |||||||||||||||||||||
| |||||||||||||||||||||
W przypadku przejazdów z kolejnymi przystankami i przejazdów wspólnych ta lista może zawierać punkty pośrednie
z innych przejazdów, które należy pokonać przed tą podróżą. Rozważmy na przykład sytuację, w której przejazd B jest przypisany do tego samego pojazdu co przejazd A. Pole remaining_waypoints dla podróży A zostanie wypełnione w następujący sposób.
Większość pól została pominięta ze względu na zwięzłość, ale byłyby one wypełnione zgodnie z poprzednim przykładem.
| [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 |
Pole remaining_waypoint w przypadku przejazdu B zostanie wypełnione w podobny sposób, ale będą w nim tylko 3 pierwsze wpisy, ponieważ punkt docelowy przejazdu A nie jest częścią trasy przejazdu B.