Список транспортных средств доставки

В этом документе описывается, как получить список транспортных средств доставки.

Среды и ограничения

Вы можете получить список транспортных средств доставки из среды сервера или браузера. Driver SDK не поддерживает вывод списка транспортных средств доставки.

Для получения списка транспортных средств доставки требуется широкий доступ к ним, и эта функция предназначена только для доверенных пользователей. При отправке запросов на получение списка транспортных средств доставки используйте токены Delivery Fleet Reader или Fleet Engine Delivery Admin.

В списке транспортных средств доставки следующие поля не указываются, поскольку они влияют на размер ответа:

  • CurrentRouteSegment
  • RemainingVehicleJourneySegments

Использование

Вы можете составить список транспортных средств по фильтрам атрибутов и границам области просмотра. Если вы не укажете фильтр или область просмотра, ответ будет включать все транспортные средства доставки.

Список фильтров атрибутов

Вы можете отфильтровать список транспортных средств доставки по свойству 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
  }

Дальнейшие действия