Pakiet Consumer SDK zapewnia gotową funkcję aplikacji do wspólnych przejazdów, która umożliwia wyświetlanie lokalizacji i postępów pojazdu jadącego.
Niektórzy dostawcy usług wspólnych przejazdów chcą jednak mieć większą kontrolę nad wrażeniami użytkowników dzięki elastycznej integracji, a jednocześnie korzystać z dokładnej lokalizacji pojazdu, szacowanego czasu dotarcia i trasy oferowanej w czasie rzeczywistym przez Google. Z tego przewodnika dowiesz się, jak pobierać dane o podróżach bezpośrednio z Fleet Engine jako alternatywę dla pakietu Consumer SDK.
Przegląd
Aby bezpośrednio pobrać informacje o podróży z Fleet Engine, wywołaj metodę GetTrip
, określając widok JURNEY_SHARING_V1S (RPC | REST).
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);
Utworzony obiekt Podróż (RPC | REST) będzie mieć te pola wypełnione najnowszymi dostępnymi informacjami o podróży:
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
(== UDOSTĘPNIANIE_podróży)
Firmy oferujące wspólne przejazdy zwykle sprawdzają w tej usłudze stan każdej podróży co 2–5 sekund, gdy pasażer aktywnie monitoruje postępy pojazdu. Lokalizacja pojazdu jest zwykle aktualizowana co jakiś czas, np. do 10 sekund. Pole Trip.last_location.update_time
można monitorować, aby sprawdzić, czy od poprzedniego wywołania GetTrip
pojawiły się jakieś zmiany.
Punkty na trasie podróży
Element Podróż zawiera powtórzone pole typu TripWaypoint
(RPC
|
REST).
To pole obejmuje wszystkie punkty pośrednie, którymi pojazd będzie musiał się przemieścić, przed ostatnim punktem w tej podróży. Określenie widoku udostępniania serii czynności powoduje, że Fleet Engine umieszcza zaktualizowane informacje w pozostałych punktach pośrednich[0] TripWaypoint
. W innych widokach innych niż Udostępnianie trasy punkt pośredni nie odzwierciedla zwykle ostatniej pozycji przypisanego pojazdu.
Oto przykład pola remaining_waypoints
w podróży A:
| |||||||||||||||||||||
|
W przypadku podróży po obu stronach lub wspólnych (podwożeniem) lista może zawierać punkty pośrednie z innych podróży, które zostaną przebyte podczas tej podróży. Rozważmy na przykład scenariusz, w którym Podróż B jest przypisana do tego samego pojazdu co podróż 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 zostaną one wypełnione zgodnie z poprzednim przykładem).
[0] | travel_id = "trip_A" |
---|---|
typ_punktu_wejścia = PICKUP_WAYPOINT_TYPE | |
[1] | travel_id = "trip_B" |
typ_punktu_wejścia = PICKUP_WAYPOINT_TYPE | |
[2] | travel_id = "trip_B" |
typ_punktu_środkowego = DROP_OFF_WAYPOINT_TYPE | |
[3] | travel_id = "trip_A" |
typ_punktu_środkowego = DROP_OFF_WAYPOINT_TYPE |
Pole remaining_waypoint
w podróży B zostałoby wypełnione podobnie, ale znalazłyby się tylko 3 pierwsze wpisy, ponieważ punkt zwrotu w podróży A nie należy do trasy Podróży B.