Questo documento presuppone che tu sappia come creare e utilizzare le attività. Fornisce esempi specifici su come configurare le attività di spedizione nei seguenti modi:
Imposta la finestra temporale target per un'attività di spedizione: imposta la finestra temporale per il completamento dell'attività.
Personalizza la visibilità delle attività: personalizza la visibilità delle attività per la visualizzazione da parte di clienti o operatori della flotta.
Per informazioni dettagliate sui campi per le attività di spedizione, vedi Creare attività di spedizione. Quando aggiorni informazioni aggiuntive sulle attività esistenti, devi anche includere l'identificatore pertinente per l'attività, oltre ai campi che aggiorni per le attività.
Imposta la finestra temporale target
La finestra temporale di destinazione è il TimeWindow durante il quale l'attività deve essere completata. Ad esempio, se comunichi un intervallo di tempo di consegna ai destinatari della consegna, puoi utilizzare l'intervallo di tempo target dell'attività per acquisire questo intervallo di tempo e generare avvisi oppure puoi utilizzarlo per analizzare le prestazioni dei viaggi passati.
La finestra temporale target è costituita da un'ora di inizio e un'ora di fine e può essere impostata su qualsiasi tipo di attività. La finestra temporale di destinazione non influisce sul comportamento di routing.
Gli esempi seguenti mostrano come impostare la finestra temporale utilizzando la libreria Java gRPC o come effettuare una richiesta HTTP REST a UpdateTask
. Puoi
impostare questo campo anche al momento della creazione dell'attività.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8241890";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task settings
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
Task task = Task.newBuilder()
.setName(taskName)
.setTargetTimeWindow(
TimeWindow.newBuilder()
.setStartTime(Timestamp.newBuilder().setSeconds(1680123600))
.setEndTime(Timestamp.newBuilder().setSeconds(1680130800)))
.build();
// Task request
UpdateTaskRequest updateTaskRequest =
UpdateTaskRequest.newBuilder() // No need for the header
.setTask(task)
.setUpdateMask(FieldMask.newBuilder().addPaths("targetTimeWindow"))
.build();
try {
Task updatedTask = deliveryService.updateTask(updateTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
Per impostare un intervallo di tempo per l'attività utilizzando HTTP, chiama PATCH
e
utilizza updateMask
per aggiornare il parametro targetTimeWindow
:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=targetTimeWindow
Qui <id> è un identificatore univoco per l'attività. L'intestazione della richiesta deve contenere un campo Authorization con il valore Bearer <token>, dove <token> viene emesso dal server in base alle linee guida descritte in Ruoli del service account e Token web JSON.
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=targetTimeWindow" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"targetTimeWindow": {
"startTime": "2023-03-29T21:00:00Z",
"endTime": "2023-03-29T23:00:00Z"
}
}
EOM
Personalizzare la visibilità delle attività
Per impostazione predefinita, Fleet Engine fornisce visibilità sulle attività dei task che possono poi essere visualizzate sia dai clienti che ricevono una spedizione sia dagli operatori della flotta che monitorano le spedizioni. Ciò include informazioni come l'indicazione del numero di fermate prima di inviare a un cliente una notifica sullo stato di consegna del pacco. Puoi personalizzare queste informazioni in base all'attività per adattarle meglio al tuo modello di business.
Questa sezione descrive le regole di visibilità per gli oggetti monitorati sulla mappa. Queste regole si applicano a due categorie di oggetti:
- Visibilità dell'indicatore di posizione
- Visibilità dei dati delle attività per le attività attive del veicolo, come polilinee e orario di arrivo stimato
Regole di visibilità dei segnaposto
Fleet Engine mostra gli indicatori di posizione per la località di consegna della spedizione visualizzata sulla mappa, indipendentemente dallo stato della consegna.
Regole di visibilità dei dati delle attività
Questa sezione descrive le regole di visibilità predefinite che si applicano ai dati delle attività. Puoi personalizzare solo le attività del veicolo attive, il che significa che solo le attività di ritiro e consegna possono applicare regole di visibilità personalizzate.
Le seguenti attività non possono essere personalizzate:
- Arresti programmati
- Attività di mancata disponibilità
- Attività relative a veicoli inattivi
Regole di visibilità delle attività di indisponibilità
Per impostazione predefinita, il veicolo non viene visualizzato sulla mappa se almeno un'attività di indisponibilità è assegnata all'attività in fase di monitoraggio. Ad esempio, se l'autista sta facendo una pausa o il veicolo viene rifornito di carburante durante il percorso verso la spedizione tracciata. L'orario di arrivo stimato e il tempo stimato per il completamento dell'attività sono ancora disponibili. Anche in questo caso, non puoi personalizzare questa regola.
Visibilità delle attività attive del veicolo
L'oggetto TaskTrackingInfo
fornisce una serie di elementi di dati che puoi
rendere visibili utilizzando la libreria di monitoraggio delle spedizioni. Per impostazione predefinita, questi campi
sono visibili quando l'attività è assegnata al veicolo e quando il veicolo si trova
a meno di 5 tappe dall'attività. La visibilità termina quando l'attività viene completata o
annullata.
Puoi personalizzare la configurazione della visibilità in base all'attività impostando
TaskTrackingViewConfig
per un'attività durante la creazione o l'aggiornamento dell'attività
in Fleet Engine. In questo modo vengono create regole per rendere disponibili i singoli elementi di dati.
La tabella seguente mostra i campi a cui puoi applicare le regole di visibilità.
Campi delle attività del veicolo per le regole di visibilità |
---|
|
Questa tabella mostra le opzioni di visibilità disponibili per i campi elencati sopra.
Opzioni di visibilità |
---|
|
Polilinee del percorso e regole di visibilità della posizione del veicolo
Per un percorso monitorato, la visibilità delle polilinee del percorso è soggetta alla visibilità del veicolo. Se una polilinea di un percorso è visibile su un percorso attivo in cui il veicolo non è visibile, la posizione del veicolo può comunque essere dedotta dalla fine della polilinea visibile. Pertanto, la visibilità della polilinea del percorso deve essere restrittiva o più restrittiva di quella del veicolo.
Segui queste regole per fornire una combinazione valida di polilinee dell'itinerario / visibilità della posizione del veicolo.
Le polilinee del percorso e la posizione del veicolo specificano le stesse opzioni di visibilità
In questo scenario, sia la polilinea che la posizione del veicolo impostano le stesse opzioni, tra cui:
- numero di fermate rimanenti
- durata fino all'ETA
- distanza di guida rimanente
Per rispettare le regole, il valore della visibilità delle polilinee del percorso deve essere minore o uguale a quello impostato per la visibilità del veicolo. In questo esempio, la soglia di arresto rimanente per la polilinea è impostata su 3, che è inferiore al valore 5 specificato per il veicolo. Ciò significa che, quando il viaggio monitorato raggiunge 5 fermate di distanza dalla posizione dell'attività, il veicolo viene visualizzato, ma il percorso per quel veicolo non viene visualizzato finché il viaggio non è a 3 fermate di distanza.
```js
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingStopCountThreshold": 5
},
}
```
Le polilinee del percorso e la posizione del veicolo specificano diverse opzioni di visibilità
Quando le polilinee del percorso e la posizione del veicolo hanno opzioni di visibilità diverse, la posizione del veicolo è visibile solo quando entrambe le opzioni di visibilità sono soddisfatte. Anche in questo caso, la visibilità della polilinea è soggetta alle regole di visibilità del veicolo:
- Sempre visibile: una polilinea del percorso deve utilizzare l'opzione di visibilità Sempre visibile quando la posizione del veicolo fornisce la stessa opzione di visibilità Sempre visibile.
- Mai visibile: una polilinea dell'itinerario deve utilizzare un'opzione di visibilità mai visibile quando la posizione del veicolo utilizza un'opzione di visibilità mai visibile.
Ecco un esempio:
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingDrivingDistanceMetersThreshold": 3000
},
}
In questo esempio, la posizione del veicolo è visibile solo se il numero di fermate rimanenti è almeno 3 E la distanza di guida rimanente è almeno 3000 metri.
Esempio di personalizzazione della visibilità delle attività
Gli esempi riportati di seguito mostrano come impostare un'attività con le seguenti regole di visibilità:
- Mostra le polilinee del percorso se il veicolo si trova entro 3 fermate.
- Mostra l'orario di arrivo stimato se la distanza di guida rimanente è inferiore a 5000 metri.
- Non mostrare mai il numero di fermate rimanenti.
- Ogni altro campo mantiene la visibilità predefinita di essere mostrato quando il veicolo si trova a 5 fermate dal compito.
Consulta TaskTrackingViewConfig
per gRPC o REST.
gRPC
static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TASK_ID = "task-8241890";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Task settings
String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
Task task = Task.newBuilder()
.setName(taskName)
.setTaskTrackingViewConfig(
TaskTrackingViewConfig.newBuilder()
.setRoutePolylinePointsVisibility(
VisibilityOption.newBuilder().setRemainingStopCountThreshold(3))
.setEstimatedArrivalTimeVisibility(
VisibilityOption.newBuilder().remainingDrivingDistanceMetersThreshold(5000))
.setRemainingStopCountVisibility(
VisibilityOption.newBuilder().setNever(true)))
.build();
// Task request
UpdateTaskRequest updateTaskRequest =
UpdateTaskRequest.newBuilder() // No need for the header
.setTask(task)
.setUpdateMask(FieldMask.newBuilder().addPaths("taskTrackingViewConfig"))
.build();
try {
Task updatedTask = deliveryService.updateTask(updateTaskRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
Per impostare la finestra di configurazione della visualizzazione del monitoraggio delle attività utilizzando HTTP, chiama PATCH
e
utilizza updateMask
per aggiornare il parametro taskTrackingViewConfig
:
PATCH https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<id>?updateMask=taskTrackingViewConfig
Ad esempio:
# Set JWT, PROJECT_ID, and TASK_ID in the local environment
curl -X PATCH "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}?updateMask=taskTrackingViewConfig" \
-H "Content-type: application/json" \
-H "Authorization: Bearer ${JWT}" \
--data-binary @- << EOM
{
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"estimatedArrivalTimeVisibility": {
"remainingDrivingDistanceMetersThreshold": 5000
},
"remainingStopCountVisibility": {
"never": true
}
}
}
EOM