Neste documento, descrevemos como criar uma viagem de volta, definir os campos corretos e atribuir a um veículo para concluir. Ele pressupõe que você já configurou o Fleet Engine, criou veículos, tem um app para motoristas funcionando e, opcionalmente, um aplicativo para o consumidor. Também é necessário 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 de Viagens sob demanda
Noções básicas da 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 ou REST.
Campos de 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, consecutivas ou compartilhadas. Você pode fornecer os campos opcionais ao criar a viagem ou 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 as mesmas funções da conta de serviço. |
| trip_id | Sim | Uma string criada por você que identifica exclusivamente esta 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 | O 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 entre
a retirada e o desembarque. Assim como |
| vehicle_waypoints | Sim | Somente viagens de transporte compartilhado: esse campo oferece suporte ao intercalamento dos pontos de parada de várias viagens.
Ele contém todos os pontos de parada restantes do veículo atribuído, bem como os pontos de parada de
embarque e desembarque da viagem. Para definir esse campo, chame |
| 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 de volta
A seguir, mostramos como criar uma viagem consecutiva e atribuí-la a um veículo. Nesse cenário, a criação de viagens é a mesma de 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 a uma viagem consecutiva, você atribui uma viagem a um veículo mesmo que ele já tenha uma.
Todas as viagens criadas no Fleet Engine precisam ser atribuídas a um veículo para que o Fleet Engine calcule os ETAs e rastreie a viagem. Isso pode ser feito durante a criação da viagem ou depois, ao atualizar.
Depois de atribuir a viagem a um veículo, o Fleet Engine adiciona automaticamente os
pontos de parada associados às viagens consecutivas ao campo de pontos de parada
do veículo. O campo remainingWaypoints de uma viagem contém uma lista de todos os
pontos de parada, incluindo os de outras viagens que serão visitados antes
do 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 desembarque, o motorista recebeu um pedido para pegar outro consumidor para a próxima viagem, a Viagem B.
- Chamar
getVehicle()retornaremainingWaypointsque contém:
Um desembarque → Um embarque → Um desembarque. getTrip()ou o callbackonTripRemainingWaypointsUpdatedpara Viagem A retornaremainingWaypointsque contém:
Um desembarque.getTrip()ou o callbackonTripRemainingWaypointsUpdatedpara Viagem B retornaremainingWaypointsque contém:
Um desembarque → Um embarque → e Um desembarque.