Lister les véhicules de livraison

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 de serveur ou de navigateur. Le Driver SDK n'est pas compatible avec la liste des véhicules de livraison.

La demande d'accès étendu aux véhicules de livraison est réservée aux utilisateurs de confiance. Utilisez les jetons Lecteur Fleet Engine Delivery ou Administrateur Fleet Engine Delivery lorsque vous envoyez des requêtes de liste des véhicules de livraison.

Les champs suivants des véhicules de livraison listés sont masqué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 la fenêtre d'affichage. Si vous ne spécifiez aucun filtre ni aucune fenêtre d'affichage, la réponse inclut tous les véhicules de livraison.

Liste avec 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 interroger plusieurs attributs, joignez les 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 filtre, consultez AIP-160. Si vous combinez des filtres avec des limites de fenêtre d'affichage, le filtre agit comme un opérateur AND sur la limite de fenêtre d'affichage. Pour en savoir plus, consultez Requêtes de filtrage des attributs de véhicule.

Liste avec limites de la fenêtre d'affichage

Vous pouvez filtrer les véhicules de livraison listés par emplacement à l'aide du paramètre de requête viewport. Le paramètre de requête viewport définit les fenêtres d'affichage à l'aide de deux coordonnées limites : 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épertorier les réponses

Par défaut, les listes de véhicules de livraison sont paginées avec 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, c'est cette dernière qui est utilisée. La taille de page par défaut et maximale est de 100 véhicules.

Une liste de véhicules de livraison peut inclure un jeton permettant de 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 peuvent être récupérées. 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 gRPC Java ou REST pour lister les véhicules de livraison dans une région spécifique avec un certain attribut. 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 la fenêtre d'affichage spécifiée.

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
  }

Étape suivante