Creare un viaggio con una sola destinazione

Questo documento descrive come creare un viaggio con una sola destinazione, impostare il percorso corretto e assegnarlo a un veicolo da completare. Si presume che tu abbia configurato il parco risorse di aver creato veicoli, disporre di un'app per conducente funzionante e un'app consumer, facoltativamente. Consulta le seguenti guide correlate:

Nozioni di base sulla creazione di viaggi

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

  • Metodo CreateTrip(): gRPC o REST
  • Messaggio CreateTripRequest: solo gRPC
di Gemini Advanced.

Campi viaggio

Utilizza i campi seguenti per creare una corsa in Fleet Engine. Puoi utilizzare diversi per i diversi tipi di viaggio: singola o più destinazione, di sequenze consecutive o di pooling condivisi. Tu può fornire i campi facoltativi quando crei il viaggio oppure puoi impostarli in un secondo momento, quando aggiorni la corsa.

Campi corsa
Nome Obbligatorio? Descrizione
parent 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 questa corsa. Gli ID viaggio sono alcune 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.
  • Back-to-back: impostato su EXCLUSIVE.
  • Aggregazione condivisa: impostato su SHARED.
pickup_point Il punto di partenza della corsa.
Destinazioni intermedie

Solo per i viaggi con più destinazioni: l'elenco delle destinazioni intermedie che il conducente visita tra il ritiro e la consegna. Come per dropoff_point, questo campo può essere impostato anche in un secondo momento chiamando UpdateTrip, ma un viaggio con più destinazioni per definizione contiene destinazioni intermedie.

vehicle_waypoints

Solo corse in pool condivise: questo campo supporta l'interfoliazione delle tappe di più corse. Contiene tutte le tappe rimanenti per il veicolo assegnato, nonché come tappe di partenza e arrivo della corsa. Puoi impostare questo campo chiamando CreateTrip o UpdateTrip. Puoi anche aggiorna le tappe dei veicoli tramite il campo waypoints con un 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

L'esempio seguente mostra come creare un viaggio nel Grand Indonesia centro commerciale East Mall La corsa prevede due passeggeri, è esclusiva e il suo stato è NEW. Il valore provider_id della corsa deve corrispondere a quello di Google Cloud dell'ID progetto. Gli esempi mostrano un progetto Google Cloud con l'ID progettomy-rideshare-co-gcp-project. Per chiamare Fleet Engine, questo progetto deve includere anche un account di servizio. Per maggiori dettagli, consulta Ruoli dell'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