Z tego przewodnika dowiesz się, jak pobierać dane o podróży bezpośrednio z Fleet Engine zamiast używać pakietu konsumenckiego SDK. Dzięki temu możesz lepiej kontrolować wrażenia użytkowników, a jednocześnie korzystać z dokładnej i na bieżąco aktualizowanej lokalizacji pojazdów, szacowanego czasu przybycia i planowania trasy w Fleet Engine.
Szczegółowe informacje o korzystaniu z pakietu SDK dla użytkowników indywidualnych znajdziesz w artykule Udostępnianie przejazdów na żądanie.
Pobieranie informacji o podróży
Aby pobrać informacje o podróży bezpośrednio z Fleet Engine, wywołaj metodę GetTrip
, podając widok JOURNEY_SHARING_V1S
. Zapoznaj się z dokumentacją RPC lub REST.
Twój serwer zwykle sprawdza stan każdej podróży w usłudze podróży, podczas gdy pasażer aktywnie monitoruje postępy pojazdu. Aktualizacje lokalizacji pojazdu występują zwykle co 10 sekund, a Twój system powinien przeprowadzać ankiety z taką samą częstotliwością. Pole Trip.last_location.update_time
można monitorować, aby sprawdzić, czy zaszły jakieś zmiany od poprzedniego wywołania funkcji GetTrip
.
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);
Wygenerowany 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 pośrednich trasy
Podmiot Podróż zawiera powtarzalne pole typu TripWaypoint
. Pole to zawiera wszystkie punkty pośrednie, przez które pojazd musi przejechać w kolejności, zanim dotrze do ostatniego punktu docelowego. Określanie widoku Udostępnianie trasy powoduje, że Fleet Engine umieszcza zaktualizowane informacje w elementach remaining_waypoints[0]TripWaypoint
. W innych widokach, które nie są związane z udostępnianiem trasy, ten punkt kontrolny zazwyczaj nie odzwierciedla najnowszej pozycji przypisanego pojazdu. Zapoznaj się z dokumentacją dotyczącą RPC lub REST.
Więcej informacji znajdziesz w sekcji Stan podróży i pozostałe punkty trasy pojazdu w Przewodniku po podróżach.
Oto przykład pola remaining_waypoints
dla podróży A:
| |||||||||||||||||||||
|
W przypadku podróży z wielu przystankami i podróży z współdzieleniem ta lista może zawierać punkty pośrednie z innych podróży, które mają być przejechane przed tą podróżą. Rozważ na przykład scenariusz, w którym trasa B jest przypisana do tego samego pojazdu co trasa A. Pole remaining_waypoints
dla podróży A zostanie wypełnione w ten sposób:
Większość pól została pominięta ze względu na zwięzłość, ale zostałyby 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 podróży B będzie wypełnione w podobny sposób, ale tylko pierwsze 3 hasła będą obecne, ponieważ punkt docelowy w podróży A nie jest częścią trasy w podróży B.