Este guia mostra como recuperar dados de viagem diretamente do Fleet Engine, como uma alternativa ao uso do SDK do Consumidor. Use essa abordagem para ter mais controle sobre a experiência do usuário final e, ao mesmo tempo, aproveitar a localização precisa e em tempo real do veículo, o HEC e o trajeto do Fleet Engine.
Para detalhes sobre como usar o SDK do consumidor, consulte Compartilhar trajetos para viagens sob demanda.
Recuperar informações da viagem
Para recuperar informações de viagens diretamente do Fleet Engine, chame o método GetTrip, especificando a visualização JOURNEY_SHARING_V1S. Consulte a referência para RPC ou
REST.
Normalmente, o servidor pesquisa o serviço de viagem para saber o status de cada viagem
enquanto o passageiro monitora ativamente o progresso do veículo. As atualizações de localização do veículo geralmente ocorrem a cada 10 segundos, e seu sistema deve fazer pesquisas na mesma taxa. O campo Trip.last_location.update_time pode ser monitorado para verificar se houve atualizações desde a chamada anterior para 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);
O objeto Trip resultante tem os seguintes campos preenchidos com as informações mais recentes disponíveis para a viagem:
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 |
|
Recuperar os pontos de referência restantes da viagem
A entidade Trip contém um campo repetido do tipo TripWaypoint. Esse campo
inclui todos os pontos de parada que o veículo precisa percorrer, em ordem, antes
do ponto de desembarque final da viagem. Especificar a visualização de compartilhamento de trajeto informa ao Fleet Engine para colocar informações atualizadas em remaining_waypoints[0] TripWaypoint. Em outras visualizações que não são do Compartilhamento de trajeto, esse ponto de referência geralmente não reflete a posição mais recente do veículo atribuído. Consulte a
referência para RPC ou REST.
Para mais informações, consulte Status da viagem e waypoints restantes do veículo no guia Introdução às viagens.
Veja um exemplo do campo remaining_waypoints para uma viagem, Viagem A:
| |||||||||||||||||||||
| |||||||||||||||||||||
Com viagens de ida e volta e de carpooling compartilhado, essa lista pode conter pontos de referência
de outras viagens a serem percorridas antes desta. Por exemplo, considere
o cenário em que a viagem B é atribuída ao mesmo veículo que a viagem A. O campo remaining_waypoints da viagem A seria preenchido da seguinte forma.
A maioria dos campos foi omitida para fins de concisão, mas eles seriam preenchidos de acordo com o exemplo anterior.
| [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 |
O campo remaining_waypoint da viagem B seria preenchido de forma semelhante, mas apenas as três primeiras entradas estariam presentes, já que o ponto de desembarque da viagem A não faz parte do trajeto da viagem B.