В этом документе описывается, как получить список транспортных средств доставки.
Среды и ограничения
Вы можете получить список транспортных средств доставки из среды сервера или браузера. Driver SDK не поддерживает получение списка транспортных средств доставки.
Запрос на получение списка транспортных средств для доставки предоставляет широкий доступ к таким транспортным средствам и предназначен только для доверенных пользователей. При отправке запросов на получение списка транспортных средств доставки используйте токены Delivery Fleet Reader или Fleet Engine Delivery Admin.
В списке транспортных средств доставки не указываются следующие поля, поскольку они влияют на размер ответа:
CurrentRouteSegmentRemainingVehicleJourneySegments
Использование
Вы можете фильтровать автомобили по атрибутам и границам области просмотра. Если вы не укажете фильтр или область просмотра, ответ будет включать все транспортные средства доставки.
Список с фильтрами атрибутов
Вы можете отфильтровать список транспортных средств доставки по свойству attributes. Например, чтобы запросить атрибут с ключом my_key и значением my_value, используйте attributes.my_key = my_value. Чтобы выполнить запрос по нескольким атрибутам, объедините запросы с помощью логических операторов AND и OR, как в attributes.key1 = value1 AND
attributes.key2 = value2. Полное описание синтаксиса запросов фильтрации приведено в AIP-160. Если вы используете фильтры вместе с границами области просмотра, фильтр действует как оператор AND для границы области просмотра. Подробнее о фильтрации запросов по атрибутам автомобилей…
Список с границами области просмотра
Вы можете отфильтровать список транспортных средств по местоположению, используя параметр запроса viewport. Параметр запроса viewport определяет области просмотра с помощью двух ограничивающих координат: пары координат широты и долготы high (северо-восток) и low (юго-запад). Запросы отклоняются, если в них указана высокая широта, которая географически ниже низкой широты.
Получение списка ответов
Списки транспортных средств доставки по умолчанию разбиваются на страницы разумного размера. Если вы укажете размер страницы, запрос вернет только количество транспортных средств, указанное в ограничении, или меньше. Если размер запрошенной страницы превышает внутреннее максимальное значение, используется внутреннее максимальное значение. По умолчанию на странице показывается 100 автомобилей. Это максимальное значение.
Список транспортных средств доставки может включать токен для чтения следующей страницы результатов. Токен страницы присутствует в ответе только в том случае, если доступно больше страниц с транспортными средствами. Чтобы получить следующую страницу задач, используйте токен страницы в запросе, который идентичен предыдущему.
Примеры запросов для получения списка транспортных средств
Вы можете использовать библиотеку Java gRPC или REST, чтобы получить список транспортных средств доставки в определенном регионе с определенным атрибутом. Успешный ответ может быть пустым. Это означает, что в указанной области просмотра нет транспортных средств с заданным атрибутом. Полный список поддерживаемых языков приведен в статье Клиентские библиотеки для сервисов запланированных задач.
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"
Если поиск выполнен успешно, тело ответа содержит данные следующей структуры:
// JSON representation
{
"deliveryVehicles": [
{
object (DeliveryVehicle)
}
],
"nextPageToken": string,
"totalSize": integer
}