Ce document explique comment lister les véhicules de livraison.
Environnements et limites
Vous pouvez lister les véhicules de livraison à partir d'un environnement serveur ou navigateur. Le SDK Driver n'est pas compatible avec la liste des véhicules de livraison.
L'ajout de véhicules de livraison nécessite un accès étendu aux véhicules de livraison et n'est destiné qu'aux utilisateurs de confiance. Utilisez les jetons Lecteur Fleet Engine Delivery ou Fleet Engine Delivery Admin lorsque vous envoyez des requêtes de liste des véhicules de livraison.
Les champs suivants sont masqués pour les véhicules de livraison listés en raison de leur impact sur la taille de la réponse:
CurrentRouteSegment
RemainingVehicleJourneySegments
Utilisation
Vous pouvez lister les véhicules par filtres d'attributs et limites de vue. Si vous ne spécifiez aucun filtre ni aucun viewport, la réponse inclut tous les canaux de diffusion.
Liste avec des filtres d'attributs
Vous pouvez lister les véhicules de livraison par filtre à l'aide de leur propriété attributes
. Par exemple, pour interroger un attribut avec la clé my_key
et la valeur my_value
, utilisez attributes.my_key = my_value
. Pour effectuer une requête sur plusieurs attributs, joignez des requêtes à l'aide des opérateurs logiques AND
et OR
, comme dans attributes.key1 = value1 AND
attributes.key2 = value2
. Pour obtenir une description complète de la syntaxe des requêtes de filtrage, consultez la section AIP-160. Si vous combinez des filtres avec des limites de vue, le filtre agit comme un opérateur AND
pour la limite de vue. Pour en savoir plus, consultez la section Requêtes de filtrage des attributs de véhicule.
Liste avec les limites de la vue
Vous pouvez filtrer les véhicules de livraison répertoriés par zone géographique à l'aide du paramètre de requête viewport
. Le paramètre de requête viewport
définit des vues d'ensemble à l'aide de deux coordonnées de délimitation: une paire de coordonnées de latitude et de longitude high
(nord-est) et low
(sud-ouest). Les requêtes sont refusées si elles contiennent une latitude élevée qui est géographiquement inférieure à une latitude basse.
Réponses de liste
Les listes de véhicules de livraison sont paginées par défaut à l'aide d'une taille de page raisonnable. Si vous spécifiez une taille de page, la requête ne renvoie que le nombre de véhicules spécifié par la limite, ou moins. Si la taille de page demandée dépasse une valeur maximale interne, la valeur maximale interne est utilisée. Les tailles de page par défaut et maximales sont toutes deux de 100 véhicules.
Une liste de véhicules de livraison peut inclure un jeton pour lire la page de résultats suivante. Un jeton de page n'est présent dans une réponse que lorsque d'autres pages de véhicules de livraison sont disponibles à la récupération. Pour récupérer la page de tâches suivante, utilisez le jeton de page avec une requête qui est par ailleurs identique à la requête précédente.
Exemples de listes de véhicules
Vous pouvez utiliser la bibliothèque Java gRPC ou REST pour lister les véhicules de livraison dans une région donnée avec un attribut spécifique. Une réponse réussie peut toujours être vide. Dans ce cas, cela signifie qu'aucun véhicule avec l'attribut spécifié n'existe dans le viewport spécifié.
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"
Si la recherche aboutit, le corps de la réponse contient des données qui ont la structure suivante:
// JSON representation
{
"deliveryVehicles": [
{
object (DeliveryVehicle)
}
],
"nextPageToken": string,
"totalSize": integer
}