Creare corse consecutive

Questo documento descrive come creare un viaggio back-to-back, impostare il corretto e assegnarlo a un veicolo da completare. Si presume che tu abbia configurato il parco risorse Engine, hai creato veicoli, disponi di un'app per conducente funzionante e un'app consumer, facoltativamente. Dovresti anche conoscere i vari percorsi disponibili per le corse on demand. Consulta le seguenti guide correlate per che:

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
principale Una stringa che include l'ID progetto. Questo ID deve essere lo stesso utilizzato nell'intera integrazione di Fleet Engine, con lo stesso account di servizio ruoli.
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.
  • Dietro a croce: imposta su EXCLUSIVE.
  • Pooling condiviso: impostato su SHARED.
pickup_point Il punto di partenza della corsa.
Destinazioni intermedie

Solo viaggi con più destinazioni: l'elenco delle destinazioni intermedie visitate dal conducente. ritiro e consegna. Come per dropoff_point, questo campo può anche essere impostata in un secondo momento chiamando UpdateTrip, ma un indirizzo multi-destinazione viaggio 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 per le 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: creare un viaggio in sequenza

Di seguito viene illustrato come creare un viaggio in sequenza e assegnarlo a un veicolo. In questo scenario, la creazione di un viaggio è uguale a quella di una singola destinazione percorso. È solo in un secondo momento che crei un altro percorso e lo assegni a un veicolo con una corsa già attiva.

// A vehicle with ID 'my-vehicle' is already created and it is assigned to a trip with ID 'current-trip'.

static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID =" my-vehicle";
static final String TRIP_ID = "back-to-back-trip");

TripServiceBlockingStub tripService = TripService.newBlockingStub(channel);

String parent = "providers/" + PROJECT_ID;

Trip trip = Trip.newBuilder()
    .setTripType(TripType.EXCLUSIVE)
    .setPickupPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.195139).setLongitude(106.820826)))
    .setDropoffPoint(
        TerminalLocation.newBuilder().setPoint(
            LatLng.newBuilder()
                .setLatitude(-6.1275).setLongitude(106.6537)))
    .setVehicleId(VEHICLE_ID)
    .build();

// Create trip request
CreateTripRequest createTripRequest = CreateTripRequest.newBuilder()
    .setParent(parent)
    .setTripId(TRIP_ID)
    .setTrip(trip)
    .build();

// Error handling.
try {
  // Fleet Engine automatically assigns a 'waypoints' list to the trip containing
  // the vehicle's current trip waypoints.
  Trip createdTrip =
      tripService.createTrip(createTripRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
    case ALREADY_EXISTS:
      break;
    case PERMISSION_DENIED:
      break;
  }
  return;
}

Aggiornare i percorsi uno dopo l'altro

Quando assegni un veicolo per una corsa successiva, assegni una corsa a una anche se gli è già stato assegnato uno.

Qualsiasi corsa creata in Fleet Engine deve essere assegnata a un veicolo per Fleet Engine per calcolare l'orario di arrivo stimato delle corse e monitorarlo. Puoi eseguire questa operazione durante la creazione di un percorso o in un secondo momento quando lo aggiorni.

Dopo aver assegnato la corsa a un veicolo, Fleet Engine aggiunge automaticamente tappe associate alle corse consecutive verso le tappe del veicolo . Il campo remainingWaypoints di un viaggio contiene un elenco di tutte le tappe, incluse quelle di altri viaggi che verranno visitati prima la discesa della corsa.

Ad esempio, considera due corse consecutive: Trip A e Trip B. Il veicolo ha ritirato il consumatore per la Trip A e lungo il percorso verso la fermata località, il conducente riceve una richiesta di ritiro di un altro consumatore per prossimo viaggio, Trip B.

  • La chiamata a getVehicle() restituisce remainingWaypoints che contengono:
    Un abbandonoB RitiroB Abbandono.
  • getTrip() o Callback onTripRemainingWaypointsUpdated per Il Trip A restituisce remainingWaypoints che contengono:
    Un abbandono.
  • getTrip() o Callback onTripRemainingWaypointsUpdated per Trip B restituisce remainingWaypoints che contengono:
    Un abbandonoB Ritiro → e B Abbandono.

Passaggi successivi