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à per mostrare ai clienti o agli operatori del parco risorse.
Consulta Creare attività di spedizione per maggiori dettagli sui campi relativi alle attività di spedizione. Quando aggiorni informazioni aggiuntive sulle attività esistenti, devi anche dovrai includere l'identificatore pertinente per l'attività, oltre ai campi che aggiornato per le attività.
Impostare la finestra temporale target
La finestra temporale di destinazione è la TimeWindow durante la quale deve essere eseguita l'attività completata. Ad esempio, se comunichi un intervallo di tempo per la consegna destinatari, puoi utilizzare la finestra temporale di destinazione dell'attività per acquisire questa finestra temporale e generare avvisi. In alternativa, puoi utilizzare questa informazione per analizzare il rendimento dei viaggi passati.
La finestra temporale di destinazione è composta da un'ora di inizio e un'ora di fine e può essere impostata per qualsiasi tipo di attività. L'intervallo di tempo di destinazione non influisce sul routing comportamento degli utenti.
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 le 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
In questo caso, <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
Personalizza 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 all'attività il tuo modello di business.
In questa sezione vengono descritte le regole di visibilità per gli oggetti tracciati 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 posizione
Fleet Engine mostra gli indicatori di posizione per la località di consegna della spedizione riportata 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 indisponibilità
- Attività relative ai veicoli non attivi
Regole di visibilità delle attività di non disponibilità
Per impostazione predefinita, il veicolo non viene visualizzato sulla mappa se è presente almeno uno l'attività di indisponibilità è assegnata all'attività monitorata. Ad esempio, se il conducente sta facendo una pausa o il veicolo sta facendo rifornimento lungo il percorso verso la spedizione tracciata. L'ora di arrivo stimata e l'ora di completamento stimata 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 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. Questo crea regole per i singoli elementi dei dati
disponibili.
La tabella seguente mostra i campi a cui puoi applicare le regole di visibilità.
Campi delle attività dei veicoli 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 una polilinea del percorso è visibile su un percorso attivo Se il veicolo non è visibile, la sua posizione può comunque essere dedotta dalla fine della 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 interruzioni rimanenti
- durata fino all'orario di arrivo stimato
- distanza di guida rimanente
Per rispettare le regole, il valore per la visibilità delle polilinee della route deve essere inferiore uguale o superiore a il valore impostato per la visibilità del veicolo. In questo esempio, la soglia di interruzione rimanente per la polilinea è impostata su 3, che è minore di il valore 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à della polilinea è soggetta alle relative regole del veicolo:
- Sempre visibile: una polilinea del percorso deve usare l'opzione sempre visibile. di visibilità quando la posizione del veicolo offre la stessa 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.
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 è di almeno 3000 metri.
Esempio di personalizzazione della visibilità delle attività
I seguenti esempi mostrano come impostare un'attività con: 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 percorsa in auto è inferiore a 5000 metri.
- Non mostrare mai il numero di fermate rimanenti.
- Tutti gli altri campi mantengono la visibilità predefinita di essere visualizzati quando il veicolo si trova a 5 fermate dall'attività.
Vedi 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