Este guia mostra como recuperar dados de viagem diretamente do Fleet Engine, como uma alternativa ao uso do SDK do consumidor. Você pode usar essa abordagem para ter mais controle sobre a experiência do usuário final e aproveitar a localização precisa e em tempo real do veículo, a ETA e o roteamento 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 viagem 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 sondaria 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 parada restantes da viagem
A entidade Trip contém um campo repetido do tipo TripWaypoint
. Esse campo
inclui todos os pontos de passagem que o veículo precisa percorrer, em ordem, antes
do ponto de desembarque final da viagem. Especificar a visualização do 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 pontos de passagem restantes do veículo no guia Introdução às viagens.
Confira um exemplo do campo remaining_waypoints
para uma viagem, a Viagem A:
| |||||||||||||||||||||
|
Com viagens consecutivas e compartilhadas, 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 da 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 seria preenchida 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 maneira semelhante, mas apenas as três primeiras entradas estariam presentes, já que o ponto de desembarque da viagem A não faz parte da rota da viagem B.