Cómo crear un viaje de un solo destino

En este documento, se describe cómo crear un viaje de destino único, establecer la campos y asignarlos a un vehículo para completar. Se supone que configuraste la flota Engine y que creaste vehículos, tienes una app para conductores que funciona y opcionalmente, una aplicación para consumidores. Consulta las siguientes guías relacionadas para hacerlo:

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.

  • Método CreateTrip(): gRPC o REST
  • Mensaje CreateTripRequest: Solo gRPC

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.

Campos del viaje
Nombre ¿Obligatorio? Descripción
elemento superior 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 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 Establece los siguientes valores de TripType para el tipo de viaje que crearás:
  • Destino único: Se establece en SHARED o EXCLUSIVE.
  • Varios destinos: Configúralo en EXCLUSIVE.
  • Back-to-back-to-back: Se establece en EXCLUSIVE.
  • Agrupación compartida: Se establece en SHARED.
pickup_point El punto de origen del viaje.
Destinos intermedios

Solo viajes con varios destinos: Es la lista de destinos intermedios que el conductor visita. partida y destino. Al igual que con dropoff_point, este campo también se puede configurar más tarde llamando a UpdateTrip, pero una viaje por definición contiene destinos intermedios.

vehicle_waypoints

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 CreateTrip o UpdateTrip. También puedes actualizar los puntos de referencia del vehículo a través del campo waypoints con un llamada a UpdateVehicle. El servicio no devuelve esta información en las llamadas a GetTrip. por motivos de privacidad.

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: viaje con un solo destino

En el siguiente ejemplo, se muestra cómo crear un viaje a la Gran Indonesia East Mall. El viaje incluye dos pasajeros, es exclusivo y su estado es NEW El provider_id del viaje debe ser el mismo que el de Google Cloud. el ID del proyecto. 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 Funciones 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;
}

¿Qué sigue?