عرض مركبات التوصيل

يوضّح هذا المستند كيفية إدراج مركبات التسليم.

البيئات والقيود

يمكنك إدراج مركبات التسليم من بيئة خادم أو متصفّح. لا تتيح حزمة تطوير البرامج (SDK) لتطبيق Driver listing المركبات المخصّصة للتوصيل.

يتطلب إدراج مركبات التسليم إذن وصول واسع النطاق إلى مركبات التسليم وهو مخصّص للمستخدمين الموثوق بهم فقط. استخدِم رمزَي 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
  }

الخطوات التالية