Questo documento descrive come elencare i veicoli di consegna.
Ambienti e limitazioni
Puoi elencare i veicoli di consegna da un ambiente server o browser. L'SDK Driver non supporta la pubblicazione di veicoli di consegna.
La pubblicazione di veicoli per la consegna richiede un accesso ampio ai veicoli per la consegna ed è rivolta solo agli utenti attendibili. Utilizza i token Lettore Delivery Fleet o Amministratore Delivery Fleet di Fleet Engine quando effettui richieste di veicoli per la consegna degli elenchi.
I veicoli di consegna elencati hanno i seguenti campi oscurati a causa del loro impatto sulle dimensioni della risposta:
CurrentRouteSegment
RemainingVehicleJourneySegments
Utilizzo
Puoi elencare i veicoli in base ai filtri degli attributi e ai limiti dell'area visibile. Se non specifichi nessun filtro o viewport, la risposta include tutti i veicoli di pubblicazione.
Elenco con filtri degli attributi
Puoi elencare i veicoli di consegna in base al filtro utilizzando la relativa proprietà attributes
. Ad esempio, per eseguire una query su un attributo con chiave my_key
e valore my_value
, utilizza attributes.my_key = my_value
. Per eseguire query su più attributi, unisci le query utilizzando gli operatori logici AND
e OR
come in attributes.key1 = value1 AND
attributes.key2 = value2
. Per una descrizione completa della sintassi delle query di filtro, consulta AIP-160. Se combini i filtri con i limiti del viewport, il filtro
agisce come operatore AND
per il limite del viewport. Per maggiori dettagli, consulta la sezione Query di filtro degli attributi del veicolo.
Elenco con limiti dell'area visibile
Puoi filtrare i veicoli di consegna elencati in base alla località utilizzando il parametro della richiesta viewport
. Il parametro di richiesta viewport
definisce i viewport utilizzando due coordinate di delimitazione: una coppia di coordinate di latitudine e longitudine high
(nord-est) e low
(sud-ovest). Le richieste vengono rifiutate se contengono una latitudine elevata
che è geograficamente inferiore a una latitudine bassa.
Elenca le risposte
Per impostazione predefinita, gli elenchi di veicoli di consegna sono suddivisi in pagine utilizzando dimensioni ragionevoli. Se specifichi un numero di pagine, la richiesta restituisce solo il numero di veicoli specificato dal limite o meno. Se le dimensioni della pagina richieste superano un valore massimo interno, viene utilizzato il valore massimo interno. Le dimensioni della pagina predefinite e massime sono entrambe di 100 veicoli.
Un elenco di veicoli di consegna può includere un token per leggere la pagina successiva dei risultati. Un token pagina è presente in una risposta solo quando sono disponibili altre pagine di veicoli di consegna per il recupero. Per recuperare la pagina successiva di attività, utilizza il token di pagina con una richiesta che sia altrimenti identica alla richiesta precedente.
Esempi di veicoli elencati
Puoi utilizzare la libreria gRPC Java o REST per elencare i veicoli di consegna in una determinata regione con un determinato attributo. Una risposta corretta può comunque essere vuota. In questo caso, significa che non esistono veicoli con l'attributo specificato nel viewport specificato.
Java
static final String PROJECT_ID = "my-delivery-co-gcp-project";
DeliveryServiceBlockingStub deliveryService =
DeliveryServiceGrpc.newBlockingStub(channel);
// Tasks request
String parent = "providers/" + PROJECT_ID;
ListDeliveryVehiclesRequest listDeliveryVehiclesRequest =
ListDeliveryVehiclesRequest.newBuilder() // No need for the header
.setParent(parent)
.setViewport(
Viewport.newBuilder()
.setHigh(LatLng.newBuilder()
.setLatitude(37.45)
.setLongitude(-122.06)
.build())
.setLow(LatLng.newBuilder()
.setLatitude(37.41)
.setLongitude(-122.11)
.build())
.setFilter("attributes.my_key = my_value")
.build();
try {
ListDeliveryVehiclesResponse listDeliveryVehiclesResponse =
deliveryService.listDeliveryVehicles(listDeliveryVehiclesRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND:
break;
case PERMISSION_DENIED:
break;
}
return;
}
REST
# HTTP request
html GET https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles
# Request with a filter
# Request sets JWT, PROJECT_ID, and VEHICLE_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryVehicles?filter=attributes.my_key%20%3D%20my_value%20&viewport.high.latitude=37.45&viewport.high.longitude=-122.06&viewport.low.latitude=37.41&viewport.low.longitude=-122.11"
Se la ricerca va a buon fine, il corpo della risposta contiene dati con la seguente struttura:
// JSON representation
{
"deliveryVehicles": [
{
object (DeliveryVehicle)
}
],
"nextPageToken": string,
"totalSize": integer
}