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 l'intervallo di tempo per il completamento dell'attività.
Personalizza la visibilità delle attività: personalizza la visibilità delle attività delle attività per la visualizzazione da parte dei clienti o degli operatori del parco risorse.
Per informazioni dettagliate sui campi per le attività di spedizione, consulta Creare attività di spedizione. Quando aggiorni informazioni aggiuntive sulle attività esistenti, devi includere anche l'identificatore pertinente per l'attività, oltre ai campi che aggiorni per le attività.
Impostare la finestra temporale target
La finestra temporale di destinazione è la TimeWindow durante la quale deve essere completata l'attività. Ad esempio, se comunichi una finestra temporale di consegna ai destinatari, puoi utilizzare la finestra temporale target dell'attività per acquisire questa finestra temporale e generare avvisi oppure puoi utilizzarla per analizzare il rendimento dei viaggi passati.
La finestra temporale target è composta da un'ora di inizio e un'ora di fine e può essere impostata su qualsiasi tipo di attività. La finestra temporale target non influisce sul comportamento del routing.
Gli esempi riportati di seguito mostrano come impostare la finestra temporale utilizzando la libreria gRPC Java o come effettuare una richiesta REST HTTP a UpdateTask
. Puoi anche impostare questo campo 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 una finestra temporale 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 dell'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 dell'account di servizio 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à alle attività delle attività che possono essere visualizzate sia dai clienti che ricevono una spedizione sia dagli operatori del parco veicoli che monitorano le spedizioni. Sono incluse informazioni quali l'indicazione del numero di fermate prima di inviare al cliente una notifica sullo stato di consegna del pacco. Puoi personalizzare queste informazioni in base alle singole 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à degli indicatori di posizione
- Visibilità dei dati delle attività per le attività dei veicoli attivi, ad esempio polilinee e ETA
Regole di visibilità degli indicatori di località
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à dei veicoli attivi, il che significa che solo le attività di ritiro e riconsegna possono applicare regole di visibilità personalizzate.
Le seguenti attività potrebbero non essere personalizzabili:
- Fermate programmate
- Attività di non disponibilità
- Attività relative ai veicoli non attivi
Regole di visibilità delle attività di mancata disponibilità
Per impostazione predefinita, il veicolo non viene visualizzato sulla mappa se all'attività monitorata è assegnata almeno un'attività di non disponibilità. Ad esempio, se il conducente fa una pausa o il veicolo fa rifornimento lungo il percorso verso la spedizione monitorata. L'orario di arrivo stimato e il tempo di completamento stimato delle attività sono ancora disponibili. Anche in questo caso, non puoi personalizzare questa regola.
Visibilità delle attività dei veicoli attive
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 fermate dall'attività. La visibilità termina quando l'attività viene completata o cancellata.
Puoi personalizzare la configurazione della visibilità in base all'attività impostando TaskTrackingViewConfig
su un'attività durante la creazione o l'aggiornamento dell'attività all'interno di Fleet Engine. In questo modo vengono create regole per la disponibilità dei 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 sopra elencati.
Opzioni di visibilità |
---|
|
Polilinee dei percorsi e regole di visibilità della posizione del veicolo
Per un percorso tracciato, la visibilità delle polilinee del percorso è soggetta alla visibilità del veicolo. Se un polilinea del percorso è visibile su un percorso attivo dove il veicolo non è visibile, la posizione del veicolo può essere ancora ricavata dalla fine del polilinea visibile. Pertanto, la visibilità del polilinea del percorso deve essere uguale o più restrittiva della visibilità del veicolo.
Segui queste regole per fornire una combinazione valida di polilinee del percorso / visibilità della posizione del veicolo.
Le polilinee del percorso e la posizione del veicolo specificano le stesse opzioni di visibilità
In questo scenario, sia il polilinea sia la posizione del veicolo impostano le stesse opzioni, tra cui:
- numero di fermate rimanenti
- durata fino all'orario di arrivo stimato
- distanza di guida rimanente
Per rispettare le regole, il valore della visibilità dei polilinee del percorso deve essere inferiore o uguale al valore impostato per la visibilità del veicolo. In questo esempio, la soglia di fermata rimanente per il polilinea è impostata su 3, che è inferiore al valore di 5 specificato per il veicolo. Ciò significa che, quando il tragitto monitorato si trova a 5 fermate dalla posizione della richiesta, viene visualizzato il veicolo, ma il percorso del veicolo non viene visualizzato finché il tragitto non è a 3 fermate di distanza.
```js
"taskTrackingViewConfig": {
"routePolylinePointsVisibility": {
"remainingStopCountThreshold": 3
},
"vehicleLocationVisibility": {
"remainingStopCountThreshold": 5
},
}
```
I polilinei del percorso e la posizione del veicolo specificano le diverse opzioni di visibilità
Quando i polilinei 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à del polilinea è soggetta alle regole di visibilità del veicolo:
- Sempre visibile: un polilinea del percorso deve utilizzare l'opzione di visibilità sempre visibile quando anche la posizione del veicolo fornisce la stessa opzione di visibilità sempre visibile.
- Mai visibile: un polilinea del percorso deve utilizzare un'opzione di visibilità Mai visibile quando la posizione del veicolo utilizza un'opzione di visibilità Mai visibile.
Di seguito è riportato 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 è di 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 a meno di 3 fermate.
- Mostra l'orario di arrivo stimato se la distanza in auto rimanente è inferiore a 5000 metri.
- Non mostrare mai il numero di fermate rimanenti.
- Tutti gli altri campi mantengono la visibilità predefinita di essere mostrati quando il veicolo si trova a 5 fermate dall'attività.
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