En este documento, se describe cómo crear un viaje con un solo destino, establecer los campos correctos y asignarlo a un vehículo para que lo realice. Se supone que configuraste Fleet Engine y que creaste vehículos, tienes una app para conductores que funciona y, de manera opcional, una aplicación para consumidores. Consulta las siguientes guías relacionadas para obtener más información:
Conceptos básicos de la creación de viajes
En esta sección, se describen los detalles de la solicitud necesarios para crear un viaje en Fleet Engine. 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 distintos tipos de viajes: de destino único o múltiple, consecutivos o de viajes compartidos. Puedes proporcionar los campos opcionales cuando creas el viaje o puedes establecerlos más adelante cuando lo actualices.
| Nombre | ¿Obligatorio? | Descripción |
|---|---|---|
| parent | 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 los mismos roles de cuenta de servicio. |
| trip_id | Sí | Es una cadena que creas para identificar este viaje de forma inequívoca. Los IDs de viaje tienen ciertas restricciones, como se indica en la referencia. |
| trip_type | Sí | Establece el TripType en los siguientes valores para el tipo de viaje que estás creando:
|
| pickup_point | Sí | Es el punto de origen del viaje. |
| Destinos intermedios | Sí | Solo para viajes con varios destinos: Es la lista de destinos intermedios que visita el conductor entre
la recogida y la llegada. Al igual que con |
| vehicle_waypoints | Sí | Solo viajes de uso compartido: Este campo admite la intercalación de puntos de referencia de varios viajes.
Contiene todos los puntos de referencia restantes para el vehículo asignado, así como los puntos de referencia de retiro y llegada de este viaje. Puedes configurar este campo llamando a |
| number_of_passengers | No | La cantidad de pasajeros del viaje. |
| dropoff_point | No | Es el destino del viaje. |
| vehicle_id | No | Es el ID del vehículo asignado al viaje. |
Ejemplo: Viaje con un solo destino
En el siguiente ejemplo, se muestra cómo crear un viaje al centro comercial Grand Indonesia
East Mall. El viaje involucra a dos pasajeros, es exclusivo y su estado es
NEW. El provider_id del viaje debe ser el mismo que el ID del proyecto de Google Cloud. En los ejemplos, se muestra un proyecto de Google Cloud con el ID del proyecto
my-rideshare-co-gcp-project. Este proyecto también debe incluir una cuenta de servicio
para llamar a Fleet Engine. Consulta Roles de cuentas de servicio para obtener más detalles.
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);
// Trip initial settings.
String parent = "providers/" + PROJECT_ID;
Trip trip = Trip.newBuilder()
.setTripType(TripType.EXCLUSIVE) // Use TripType.SHARED for carpooling.
.setPickupPoint( // Grand Indonesia East Mall.
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.195139).setLongitude(106.820826)))
.setNumberOfPassengers(2)
// Provide the drop-off point if available.
.setDropoffPoint(
TerminalLocation.newBuilder().setPoint(
LatLng.newBuilder()
.setLatitude(-6.1275).setLongitude(106.6537)))
.build();
// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
.setParent(parent)
.setTripId("trip-8241890") // Trip ID assigned by the provider.
.setTrip(trip) // The initial state is NEW.
.build();
// Error handling.
try {
Trip createdTrip = tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case ALREADY_EXISTS:
break;
case PERMISSION_DENIED:
break;
}
return;
}