Creare un viaggio con una sola destinazione

Questo documento descrive come creare una corsa con una singola destinazione, impostare i campi corretti e assegnarla a un veicolo per l'esecuzione. Si presuppone che tu abbia configurato Fleet Engine, creato veicoli, che tu abbia un'app per autisti funzionante e, facoltativamente, un'app per i consumatori. Per farlo, consulta le seguenti guide correlate:

Nozioni di base sulla creazione di corse

Questa sezione descrive i dettagli della richiesta necessari per creare una corsa in Fleet Engine. Puoi inviare una richiesta di creazione utilizzando gRPC o REST.

  • Metodo CreateTrip(): gRPC o REST
  • Messaggio CreateTripRequest: gRPC solo

Campi del viaggio

Utilizza i seguenti campi per creare una corsa in Fleet Engine. Puoi utilizzare campi diversi per i diversi tipi di corse: con una o più destinazioni, consecutive o di carpooling. Puoi fornire i campi facoltativi quando crei la corsa oppure puoi impostarli in un secondo momento quando aggiorni la corsa.

Campi del viaggio
Nome Obbligatorio? Descrizione
parent Una stringa che include l'ID progetto. Questo ID deve essere lo stesso utilizzato in tutta l'integrazione di Fleet Engine, con gli stessi ruoli degli account di servizio.
trip_id Una stringa creata da te che identifica in modo univoco questo viaggio. Gli ID corsa hanno alcune limitazioni, come indicato nel riferimento.
trip_type Imposta TripType sui seguenti valori per il tipo di viaggio che stai creando:
  • Singola destinazione: imposta su SHARED o EXCLUSIVE.
  • Più destinazioni: imposta su EXCLUSIVE.
  • Consecutive: imposta su EXCLUSIVE.
  • Carpooling: imposta su SHARED.
pickup_point Il punto di partenza della corsa.
Destinazioni intermedie

Solo corse con più destinazioni: l'elenco delle destinazioni intermedie che l'autista visita tra il punto di prelievo e quello di riconsegna. Come per dropoff_point, questo campo può essere impostato anche in un secondo momento chiamando UpdateTrip, ma una corsa con più destinazioni per definizione contiene destinazioni intermedie.

vehicle_waypoints

Solo corse di carpooling: questo campo supporta l'interleaving dei waypoint di più corse. Contiene tutti i waypoint rimanenti per il veicolo assegnato, nonché i waypoint di prelievo e riconsegna per questa corsa. Puoi impostare questo campo chiamando CreateTrip o UpdateTrip. Puoi anche aggiornare i waypoint del veicolo tramite il campo waypoints con una chiamata a UpdateVehicle. Per motivi di privacy, il servizio non restituisce queste informazioni nelle chiamate GetTrip

number_of_passengers No Il numero di passeggeri della corsa.
dropoff_point No La destinazione della corsa.
vehicle_id No L'ID del veicolo assegnato al viaggio.

Esempio: corsa con una singola destinazione

Il seguente esempio mostra come creare un viaggio verso il centro commerciale Grand Indonesia East Mall. La corsa coinvolge due passeggeri, è esclusiva e il suo stato è NEW. provider_id della corsa deve essere uguale all'ID progetto Google Cloud. Gli esempi mostrano un progetto Google Cloud con l'ID progetto my-rideshare-co-gcp-project. Questo progetto deve includere anche un account di servizio per poter chiamare Fleet Engine. Per i dettagli, consulta Ruoli degli account di servizio.

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;
}

Passaggi successivi