Creare un viaggio con una sola destinazione

Questo documento descrive come creare un viaggio con una singola destinazione, impostare i campi corretti e assegnarlo a un veicolo da completare. Si presume che tu abbia configurato Fleet Engine e che tu abbia creato veicoli, un'app per i conducenti funzionante e, facoltativamente, un'app per i consumatori. Consulta le seguenti guide correlate:

Nozioni di base sulla creazione di viaggi

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

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

Campi viaggio

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

Campi corsa
Nome Obbligatorio? Descrizione
padre Una stringa che include l'ID progetto. Questo ID deve essere lo stesso ID utilizzato nell'intera integrazione di Fleet Engine, con gli stessi ruoli dell'account di servizio.
trip_id Una stringa creata da te che identifica in modo univoco questo viaggio. Gli ID viaggio hanno determinate limitazioni, come indicato nel riferimento.
trip_type Imposta TripType sui seguenti valori per il tipo di viaggio che stai creando:
  • Destinazione singola: imposta su SHARED o EXCLUSIVE.
  • Più destinazioni: imposta su EXCLUSIVE.
  • Dietro a croce: imposta su EXCLUSIVE.
  • Pooling condiviso: impostato su SHARED.
pickup_point Il punto di partenza del viaggio.
Destinazioni intermedie

Solo viaggi con più destinazioni: l'elenco di destinazioni intermedie visitate dal conducente tra il prelievo e la partenza. Come per dropoff_point, questo campo può anche essere impostato in un secondo momento chiamando UpdateTrip, ma una corsa con più destinazioni per definizione contiene destinazioni intermedie.

vehicle_waypoints

Solo viaggi con car pooling: questo campo supporta l'interlacciamento dei waypoint di più viaggi. Contiene tutti i waypoint rimanenti per il veicolo assegnato, nonché i waypoint di ritiro e riconsegna per questo viaggio. Puoi impostare questo campo chiamando CreateTrip o UpdateTrip. Puoi anche aggiornare le tappe dei veicoli tramite il campo waypoints con una chiamata a UpdateVehicle. Il servizio non restituisce queste informazioni sulle chiamate GetTrip per motivi di privacy.

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

Esempio: viaggio con una sola destinazione

Il seguente esempio mostra come creare un viaggio al Grand Indonesia East Mall. La corsa prevede due passeggeri, è esclusiva e il relativo stato è NEW. Il provider_id del viaggio deve corrispondere all'ID progetto Google Cloud. Gli esempi mostrano un progetto Google Cloud con ID progetto my-rideshare-co-gcp-project. Questo progetto deve includere anche un account di servizio per chiamare Fleet Engine. Per maggiori 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