En este documento, se describe cómo crear un viaje de ida y vuelta, establecer la configuración campos y asignarlos a un vehículo para completar. Se supone que configuraste la flota Engine, creaste vehículos, tienes una app para conductores que funciona y opcionalmente, una aplicación para consumidores. También debes estar familiarizado con los diversos de viajes disponibles para los viajes a pedido. Consulta las siguientes guías relacionadas para que:
- Configurar Fleet Engine
- Crea un vehículo
- Situaciones de viaje en la descripción general de Viajes on demand
Conceptos básicos sobre la creación de viajes
En esta sección, se describen los detalles de la solicitud necesarios para crear un viaje en Fleet Engine. Se emite una solicitud de creación con gRPC y REST.
Campos de viaje
Usa los siguientes campos para crear un viaje en Fleet Engine. Puedes usar diferentes campos para los diferentes tipos de viajes: uno o varios destinos, consecutivos o de reducción compartida. Tú puedes proporcionar los campos opcionales cuando crees el viaje o puedes configurarlos más adelante cuando actualices el viaje.
Nombre | ¿Obligatorio? | Descripción |
---|---|---|
elemento superior | Sí | Es una cadena que incluye el ID del proyecto. Este ID debe ser el mismo que se usa en toda la integración de Fleet Engine con la misma cuenta de servicio roles de seguridad. |
trip_id | Sí | Es una cadena que creas para identificar este viaje de forma exclusiva. Los IDs de viaje tienen ciertas restricciones, como se indica en la referencia. |
trip_type | Sí | Establece los siguientes valores de TripType para el tipo de viaje que crearás:
|
pickup_point | Sí | El punto de origen del viaje. |
Destinos intermedios | Sí | Solo viajes con varios destinos: Es la lista de destinos intermedios que el conductor visita.
partida y destino. Al igual que con |
vehicle_waypoints | Sí | Solo viajes de reducción compartida: Este campo admite la intercalación de los puntos de referencia desde varios viajes.
Contiene todos los puntos de referencia restantes para el vehículo asignado, además de
como puntos de referencia de partida y llegada para este viaje. Puedes configurar este campo
llamando a |
number_of_passengers | No | La cantidad de pasajeros en el viaje. |
dropoff_point | No | El destino del viaje. |
vehicle_id | No | El ID del vehículo asignado al viaje. |
Ejemplo: Crear un viaje de ida y vuelta
A continuación, se muestra cómo crear un viaje de ida y vuelta y asignarlo a una vehículo. En este caso, la creación de viajes es igual a la de un viaje de viaje. Solo más tarde puedes crear otro viaje y asignarlo a un vehículo. con un viaje que ya está activo.
// 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;
}
Cómo actualizar viajes consecutivos
Cuando asignas un vehículo para un viaje de ida y vuelta, asignas un viaje a vehículo, incluso si ya se le asignó uno.
Cualquier viaje creado en Fleet Engine se debe asignar a un vehículo para que Fleet Engine para calcular las horas de llegada estimadas de los viajes y hacer un seguimiento de ella. Puedes hacer esto durante la creación del viaje o más adelante cuando actualices el viaje.
Después de asignar el viaje a un vehículo, Fleet Engine agrega automáticamente el
puntos de referencia asociados con los viajes consecutivos a los puntos de referencia del vehículo
. El campo remainingWaypoints
de un viaje contiene una lista de todas las
puntos de referencia, incluidos los de otros viajes que se visitarán antes
la llegada del viaje.
Por ejemplo, piensa en dos viajes consecutivos: Viaje A. y el Viaje B. El vehículo recogió al consumidor para el Viaje A y mientras esté en camino al lugar de llegada ubicación, el conductor recibe una solicitud para recoger a otro consumidor para el próximo viaje, Viaje B.
- Si llamas a
getVehicle()
, se muestraremainingWaypoints
que contengan:
Un abandono → B Retiro → B Abandono. - Ya sea
getTrip()
o Devolución de llamada deonTripRemainingWaypointsUpdated
para El viaje A devuelveremainingWaypoints
que contengan lo siguiente:
Un destino. - Ya sea
getTrip()
o Devolución de llamada deonTripRemainingWaypointsUpdated
para El viaje B devuelveremainingWaypoints
que contengan lo siguiente:
Un destino → B Retiro → y B Drop-off.