En este documento, se describe cómo enumerar vehículos de entrega.
Entornos y limitaciones
Puedes enumerar vehículos de entrega desde un entorno de servidor o navegador. El SDK de Driver no admite la enumeración de vehículos de entrega.
La enumeración de vehículos de entrega solicita un acceso amplio a los vehículos de entrega y está destinada solo a usuarios de confianza. Usa tokens de lector de flota de entrega o administrador de entrega de Fleet Engine cuando realices solicitudes de enumeración de vehículos de entrega.
Los vehículos de entrega enumerados tienen los siguientes campos redactados debido a su impacto en el tamaño de la respuesta:
CurrentRouteSegmentRemainingVehicleJourneySegments
Uso
Puedes enumerar vehículos por filtros de atributos y límites de la ventana gráfica. Si no especificas ningún filtro ni ventana gráfica, la respuesta incluirá todos los vehículos de entrega.
Lista con filtros de atributos
Puedes enumerar vehículos de entrega por 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
con 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 las consultas de filtro. Si combinas filtros con límites de la ventana gráfica, el filtro actúa como un operador AND para el límite de la ventana gráfica. Consulta Consultas de filtro de atributos de vehículos para obtener más detalles.
Lista con límites de la ventana gráfica
Puedes filtrar los vehículos de entrega enumerados por ubicación con el parámetro de solicitud viewport. El parámetro de solicitud viewport define las ventanas gráficas con dos coordenadas delimitadoras: un par de coordenadas de latitud y longitud high (noreste) y low (sudoeste). Las solicitudes se rechazan si contienen una latitud alta que es geográficamente más baja que una latitud baja.
Respuestas de la 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 solo muestra la cantidad de vehículos especificada por el límite o menos. Si el tamaño de página solicitado supera un valor máximo interno, se usa el máximo interno. 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, de lo contrario, sea idéntica a la solicitud anterior.
Ejemplos de enumeración de vehículos
Puedes usar la biblioteca gRPC de Java o REST para enumerar vehículos de entrega en una región en particular con un atributo determinado. Una respuesta correcta aún puede estar vacía. Cuando eso sucede, significa que no existen vehículos con el atributo especificado en la ventana gráfica especificada. Para obtener una lista completa de los lenguajes admitidos, consulta Bibliotecas cliente para servicios de tareas programadas.
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 es exitosa, el cuerpo de la respuesta contendrá datos con la siguiente estructura:
// JSON representation
{
"deliveryVehicles": [
{
object (DeliveryVehicle)
}
],
"nextPageToken": string,
"totalSize": integer
}