Liệt kê xe giao hàng

Tài liệu này mô tả cách đăng danh sách xe giao hàng.

Môi trường và giới hạn

Bạn có thể đăng danh sách xe giao hàng từ môi trường máy chủ hoặc trình duyệt. Driver SDK không hỗ trợ việc đăng danh sách xe giao hàng.

Việc đăng danh sách xe giao hàng yêu cầu quyền truy cập rộng rãi vào xe giao hàng và chỉ dành cho người dùng đáng tin cậy. Hãy sử dụng mã thông báo Trình đọc đội xe giao hàng hoặc Quản trị viên giao hàng của Fleet Engine khi đưa ra yêu cầu đăng danh sách xe giao hàng.

Các xe giao hàng được đăng trong danh sách đã được chỉnh sửa các trường sau do ảnh hưởng đến kích thước phản hồi:

  • CurrentRouteSegment
  • RemainingVehicleJourneySegments

Cách sử dụng

Bạn có thể đăng danh sách xe theo bộ lọc thuộc tính và ranh giới khung nhìn. Nếu bạn không chỉ định bộ lọc hoặc khung nhìn, thì phản hồi sẽ bao gồm tất cả xe giao hàng.

Danh sách có bộ lọc thuộc tính

Bạn có thể đăng danh sách xe giao hàng theo bộ lọc bằng cách sử dụng thuộc tính attributes của xe. Ví dụ: để truy vấn một thuộc tính có khoá my_key và giá trị my_value, hãy sử dụng attributes.my_key = my_value. Để truy vấn nhiều thuộc tính, hãy kết hợp các truy vấn bằng cách sử dụng toán tử logic ANDOR như trong attributes.key1 = value1 AND attributes.key2 = value2. Hãy xem AIP-160 để biết nội dung mô tả đầy đủ về cú pháp truy vấn bộ lọc. Nếu bạn kết hợp bộ lọc với ranh giới khung nhìn, thì bộ lọc sẽ hoạt động như một toán tử AND đối với ranh giới khung nhìn. Hãy xem phần Truy vấn bộ lọc thuộc tính xe để biết thông tin chi tiết.

Danh sách có ranh giới khung nhìn

Bạn có thể lọc các xe giao hàng được đăng trong danh sách theo vị trí bằng cách sử dụng tham số yêu cầu viewport. Tham số yêu cầu viewport xác định khung nhìn bằng cách sử dụng hai toạ độ ranh giới: một cặp toạ độ vĩ độ và kinh độ high (đông bắc) và low (tây nam). Yêu cầu sẽ bị từ chối nếu chứa vĩ độ cao thấp hơn về mặt địa lý so với vĩ độ thấp.

Phản hồi danh sách

Theo mặc định, danh sách xe giao hàng được phân trang bằng cách sử dụng kích thước trang hợp lý. Nếu bạn chỉ định kích thước trang, thì yêu cầu sẽ chỉ trả về số lượng xe do giới hạn chỉ định hoặc ít hơn. Nếu kích thước trang được yêu cầu vượt quá giá trị tối đa nội bộ, thì giá trị tối đa nội bộ sẽ được sử dụng. Kích thước trang mặc định và tối đa đều là 100 xe.

Danh sách xe giao hàng có thể bao gồm một mã thông báo để đọc trang kết quả tiếp theo. Mã thông báo trang chỉ xuất hiện trong phản hồi khi có nhiều trang xe giao hàng hơn để truy xuất. Để truy xuất trang tiếp theo của nhiệm vụ, hãy sử dụng mã thông báo trang với một yêu cầu giống hệt với yêu cầu trước đó.

Ví dụ về danh sách xe

Bạn có thể sử dụng thư viện gRPC Java hoặc REST để đăng danh sách xe giao hàng trong một khu vực cụ thể có một thuộc tính nhất định. Phản hồi thành công vẫn có thể trống. Khi điều đó xảy ra, có nghĩa là không có xe nào có thuộc tính được chỉ định trong khung nhìn được chỉ định. Để xem danh sách đầy đủ các ngôn ngữ được hỗ trợ, hãy xem phần Thư viện ứng dụng cho các dịch vụ nhiệm vụ theo lịch biểu.

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"

Nếu quá trình tra cứu thành công, nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

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

Bước tiếp theo