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

В этом документе описывается порядок размещения информации о транспортных средствах для доставки.

Окружающая среда и ограничения

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

ОТДЫХ

  # 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
  }

Что дальше?