فهرست کردن وسایل نقلیه توزیع

این سند نحوه فهرست کردن وسایل نقلیه تحویل را شرح می‌دهد.

محیط‌ها و محدودیت‌ها

می‌توانید وسایل نقلیه تحویل را از محیط سرور یا مرورگر فهرست کنید. «کیت توسعه نرم‌افزار راننده» از فهرست کردن خودروهای تحویل پشتیبانی نمی‌کند.

فهرست کردن وسایل نقلیه تحویل کالا درخواست دسترسی گسترده به وسایل نقلیه تحویل کالا می‌کند و فقط برای کاربران مورداعتماد درنظر گرفته شده است. هنگام ایجاد درخواست‌های فهرست کردن وسایل نقلیه تحویل، از نشان‌های Delivery Fleet Reader (خواننده ناوگان تحویل) یا Fleet Engine Delivery Admin (مدیر تحویل Fleet Engine) استفاده کنید.

فیلدهای زیر از وسایل نقلیه تحویل فهرست‌شده به‌دلیل تأثیرشان بر اندازه پاسخ محو شده است:

  • 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 (جنوب غربی). درخواست‌ها اگر حاوی عرض جغرافیایی بالایی باشند که ازنظر جغرافیایی پایین‌تر از عرض جغرافیایی پایین باشد، رد می‌شوند.

فهرست پاسخ‌ها

فهرست‌های خودروهای تحویل به‌طور پیش‌فرض بااستفاده از اندازه صفحه معقول صفحه‌بندی می‌شوند. اگر اندازه صفحه را مشخص کنید، درخواست فقط تعداد خودروهای مشخص‌شده توسط حد مجاز یا کمتر را برمی‌گرداند. اگر اندازه صفحه درخواستی از حداکثر مقدار داخلی بیشتر باشد، از حداکثر مقدار داخلی استفاده می‌شود. اندازه پیش‌فرض و حداکثر اندازه صفحه هر دو ۱۰۰ خودرو است.

فهرست وسایل نقلیه تحویل می‌تواند شامل یک توکن برای خواندن صفحه بعدی نتایج باشد. نشانه صفحه فقط زمانی در پاسخ وجود دارد که صفحات بیشتری از خودروهای تحویل برای بازیابی دردسترس باشد. برای بازیابی صفحه بعدی تکالیف، از نشان صفحه با درخواستی استفاده کنید که از هر نظر با درخواست قبلی یکسان باشد.

مثال‌های فهرست کردن خودروها

می‌توانید از کتابخانه Java gRPC یا REST برای فهرست کردن وسایل نقلیه توزیع در منطقه‌ای خاص با مشخصه‌ای معین استفاده کنید. پاسخ موفقیت‌آمیز همچنان می‌تواند خالی باشد. وقتی این اتفاق می‌افتد، به این معنی است که هیچ وسیله نقلیه‌ای با مشخصه تعیین‌شده در نمای هدف تعیین‌شده وجود ندارد. برای فهرست کامل زبان‌های پشتیبانی‌شده، به کتابخانه‌های مشتری برای خدمات وظایف زمان‌بندی‌شده مراجعه کنید.

جاوا


  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
  }

قدم بعدی چیست