Recuperar dados de viagens diretamente do Fleet Engine

Este guia mostra como recuperar dados de viagem diretamente do Fleet Engine, como um alternativa ao uso do SDK do consumidor. Essa abordagem pode ser usada controle sobre a experiência do usuário final e, ao mesmo tempo, aproveitar os recursos da frota Localização precisa e em tempo real do veículo, HEC e trajeto.

Para mais detalhes sobre como usar o SDK Consumer, consulte Compartilhar jornadas sob demanda viagens.

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 (link em inglês).

O servidor normalmente consulta o serviço de viagem para saber o status de cada viagem. enquanto o passageiro monitora ativamente o progresso do veículo. Localização do veículo as atualizações geralmente ocorrem a cada 10 segundos, e o sistema na mesma taxa. O campo Trip.last_location.update_time pode ser monitorado para ver 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 os valores mais recentes informações 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 waypoints da viagem restantes

A entidade Trip contém um campo repetido do tipo TripWaypoint Este campo inclui todos os waypoints que o veículo precisará percorrer, em ordem, antes ponto de desembarque final dessa viagem. Especificar a visualização "Compartilhamento de jornada" informa O Fleet Engine para colocar as informações atualizadas em restante_de_waypoints[0] TripWaypoint: Em outras visualizações que não sejam de compartilhamento da jornada, esse waypoint não geralmente mostra 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 em guia Introdução a viagens.

Veja um exemplo do campo remaining_waypoints para uma viagem, "Viagem A":

[0] location.point = trip.pickup_point.point
trip_id = "trip_A"
waypoint_type = PICKUP_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 1a LatLng do caminho restante até o embarque
2a LatLng do caminho restante até o embarque
última LatLng do caminho restante para o embarque
pickup_point, se for diferente do último
traffic_data
distância_meters = distância do local do veículo atual ao longo do path_to_waypoint até o embarque
eta = HEC atualizado
duração = duração atualizada
[1] location.point = trip.dropoff_point.point
trip_id = "trip_A"
waypoint_type = DROP_OFF_WAYPOINT_TYPE
path_to_waypoint = LatLng[] 1a LatLng da etapa de desembarque
2a LatLng da etapa de desembarque
última LatLng da etapa de desembarque
dropoff_point, se for diferente do último
traffic_data
distância_meters = distância do embarque ao longo do path_to_waypoint até o desembarque
eta = HEC atualizado
duração = duração do trecho de desembarque

Com viagens em pooling e compartilhadas, esta lista pode conter waypoints 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. 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 forma consistente 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 o as três primeiras entradas estariam presentes, uma vez que o ponto de desembarque da Viagem A não faz parte do trajeto da Viagem B.