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:
- Configura Fleet Engine
- Creare un veicolo
- Scenari di viaggio nella panoramica dei Viaggi on demand
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.
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.
Nome | Obbligatorio? | Descrizione |
---|---|---|
principale | Sì | 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 | Sì | Una stringa creata da te che identifica in modo univoco questa corsa. Gli ID viaggio sono alcune limitazioni, come indicato nel riferimento. |
trip_type | Sì | Imposta TripType sui seguenti valori per il tipo di viaggio che stai creando:
|
pickup_point | Sì | Il punto di partenza della corsa. |
Destinazioni intermedie | Sì | Solo viaggi con più destinazioni: l'elenco delle destinazioni intermedie visitate dal conducente.
ritiro e consegna. Come per |
vehicle_waypoints | Sì | 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 |
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()
restituisceremainingWaypoints
che contengono:
Un abbandono → B Ritiro → B Abbandono. getTrip()
o CallbackonTripRemainingWaypointsUpdated
per Il Trip A restituisceremainingWaypoints
che contengono:
Un abbandono.getTrip()
o CallbackonTripRemainingWaypointsUpdated
per Trip B restituisceremainingWaypoints
che contengono:
Un abbandono → B Ritiro → e B Abbandono.