Este documento descreve como criar uma viagem consecutiva, definir os campos corretos e atribuir a um veículo para ser atendido. Ele pressupõe que você tenha configurado o Fleet Engine, criado veículos, tenha um app de motorista funcionando e, opcionalmente, um app de consumidor. Você também precisa conhecer os vários cenários de viagem disponíveis para viagens sob demanda. Consulte os guias relacionados a seguir:
- Configurar o Fleet Engine
- Criar um veículo
- Cenários de viagem na visão geral das Viagens sob demanda
Noções básicas sobre a criação de viagens
Esta seção descreve os detalhes da solicitação necessários para criar uma viagem no Fleet Engine. Você emite uma solicitação de criação usando gRPC e REST.
Campos da viagem
Use os campos a seguir para criar uma viagem no Fleet Engine. É possível usar campos diferentes para os diferentes tipos de viagens: com um ou vários destinos, viagens consecutivas ou compartilhadas. Você você pode fornecer os campos opcionais ao criar a viagem ou pode defini-los mais tarde, ao atualizar a viagem.
Nome | Obrigatório? | Descrição |
---|---|---|
parent | Sim | Uma string que inclui o ID do projeto. Esse ID precisa ser o mesmo usado em toda a integração do Fleet Engine com a mesma conta de serviço papéis de segurança na nuvem. |
trip_id | Sim | Uma string que você cria que identifica exclusivamente essa viagem. Os IDs de viagem têm algumas restrições, conforme indicado na referência. |
trip_type | Sim | Defina o TripType com os seguintes valores para o tipo de viagem que você está criando:
|
pickup_point | Sim | Ponto de origem da viagem. |
Destinos intermediários | Sim | Somente viagens com vários destinos: a lista de destinos intermediários que o motorista visita durante a viagem.
embarque e desembarque. Assim como em |
vehicle_waypoints | Sim | Somente viagens compartilhadas: esse campo aceita a intercalação de pontos de passagem de várias viagens.
Ele contém todos os pontos de referência restantes do veículo atribuído, bem como os pontos de referência de retirada e entrega dessa viagem. É possível definir esse campo
chamando |
number_of_passengers | Não | O número de passageiros na viagem. |
dropoff_point | Não | O destino da viagem. |
vehicle_id | Não | O ID do veículo atribuído à viagem. |
Exemplo: criar uma viagem consecutiva
Confira a seguir como criar uma viagem consecutiva e atribuí-la a um veículo. Nesse cenário, a criação de viagens é a mesma para uma viagem de destino único. Só depois você cria outra viagem e a atribui a um veículo com uma viagem já ativa.
// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");
TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);
String parent = "providers/" + PROJECT_ID;
Trip trip = Trip.newBuilder()
.setTripType(TripType.EXCLUSIVE)
.setPickupPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.195139).setLongitude(106.820826)))
.setDropoffPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.1275).setLongitude(106.6537)))
.setVehicleId(VEHICLE_ID)
.build();
// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
.setParent(parent)
.setTripId(TRIP_ID)
.setTrip(trip)
.build();
// Error handling.
try {
// Fleet Engine automatically assigns a 'waypoints' list to the trip containing
// the vehicle's current trip waypoints.
Trip createdTrip =
tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}
Atualizar viagens consecutivas
Ao atribuir um veículo para uma viagem de ida e volta, você atribui uma viagem a um veículo, mesmo que já tenha sido atribuído a ele.
Qualquer viagem criada no Fleet Engine deve ser atribuída a um veículo para que o Fleet Engine para calcular os HECs das viagens e monitorá-los. Você pode fazer isso durante a criação da viagem ou depois, quando a atualizar.
Depois de atribuir a viagem a um veículo, o Fleet Engine adiciona automaticamente o
waypoints associados às viagens de ida e volta até os waypoints do veículo
. O campo remainingWaypoints
de uma viagem contém uma lista de todos os
waypoints, incluindo os de outras viagens que serão visitadas antes
o desembarque da viagem.
Por exemplo, considere duas viagens consecutivas: Viagem A e Viagem B. O veículo pegou o consumidor para a Viagem A e, enquanto estava a caminho do local de entrega, o motorista recebeu uma solicitação para pegar outro consumidor para a próxima viagem, a Viagem B.
- Chamar
getVehicle()
retornaremainingWaypoints
que contém:
A entrega → B retirada → B entrega. getTrip()
ou o CallbackonTripRemainingWaypointsUpdated
para A viagem A retornaremainingWaypoints
que contenham:
Uma desistência.getTrip()
ou o callbackonTripRemainingWaypointsUpdated
para Viagem B retornaremainingWaypoints
que contém:
A entrega → B retirada → e B entrega.