Enumerar vehículos de entrega

En este documento, se describe cómo enumerar los vehículos de entrega.

Entornos y limitaciones

Puedes enumerar vehículos de entrega desde un entorno de servidor o navegador. El SDK del controlador no admite mostrar fichas de vehículos de entrega.

Enumerar los vehículos de entrega solicita un acceso amplio a los vehículos de entrega y está destinada solo a usuarios de confianza. Usa los tokens del lector de flotas de entrega o del administrador de entrega de Fleet Engine cuando realices solicitudes de listas de vehículos de entrega.

Los vehículos de publicación enumerados tienen los siguientes campos ocultos debido a su impacto en el tamaño de la respuesta:

  • CurrentRouteSegment
  • RemainingVehicleJourneySegments

Uso

Puedes enumerar vehículos por filtros de atributos y límites de viewport. Si no especificas ningún filtro o viewport, la respuesta incluirá todos los vehículos de entrega.

Lista con filtros de atributos

Puedes enumerar los vehículos de entrega mediante un filtro con su propiedad attributes. Por ejemplo, para consultar un atributo con la clave my_key y el valor my_value, usa attributes.my_key = my_value. Para consultar varios atributos, une las consultas mediante los operadores lógicos AND y OR, como en attributes.key1 = value1 AND attributes.key2 = value2. Consulta AIP-160 para obtener una descripción completa de la sintaxis de la consulta de filtro. Si combinas filtros con límites del viewport, el filtro actúa como un operador AND para el límite del viewport. Consulta Consultas de filtro de atributos de vehículo para obtener más detalles.

Lista con límites de viewport

Puedes filtrar los vehículos de entrega de la lista según la ubicación mediante el parámetro de solicitud viewport. El parámetro de solicitud viewport define viewports con dos coordenadas de límite: un par de coordenadas de latitud y longitud high (nordeste) y low (sudoeste). Las solicitudes se rechazan si contienen una latitud alta que es geográficamente menor que una latitud baja.

Cómo mostrar respuestas en una lista

Las listas de vehículos de entrega se paginan de forma predeterminada con un tamaño de página razonable. Si especificas un tamaño de página, la solicitud muestra solo la cantidad de vehículos que especifica el límite o menos. Si el tamaño de página solicitado supera un valor máximo interno, se usa ese máximo. Los tamaños de página predeterminados y máximos son de 100 vehículos.

Una lista de vehículos de entrega puede incluir un token para leer la siguiente página de resultados. Un token de página solo está presente en una respuesta cuando hay más páginas de vehículos de entrega disponibles para recuperar. Para recuperar la siguiente página de tareas, usa el token de página con una solicitud que, en otro caso, sea idéntica a la solicitud anterior.

Enumera ejemplos de vehículos

Puedes usar la biblioteca gRPC de Java o REST para enumerar los vehículos de entrega en una región particular con un atributo determinado. Una respuesta correcta aún puede estar vacía. Cuando esto sucede, significa que no hay vehículos con el atributo especificado en el viewport especificado.

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 búsqueda se realiza correctamente, el cuerpo de la respuesta contiene datos con la siguiente estructura:

  // JSON representation
  {
    "deliveryVehicles": [
      {
        object (DeliveryVehicle)
      }
    ],
    "nextPageToken": string,
    "totalSize": integer
  }

¿Qué sigue?