إنشاء رسالة طلب

كما هو موضّح بشكل موجز في نظرة عامة على تحسين المسار، يتألّف الطلب الأساسي من النموذج والشحنات والمركبات بصفتها كيانات مطلوبة:

  • يلتقط النموذج الإعدادات والقيود للطلب بالكامل، بما في ذلك Shipments وVehicles.
  • تمثّل الشحنات المهام أو الشحنات الفعلية التي تتضمّن VisitRequest جمع الطلبات ونقلها. تشمل الشحنات إعدادات وقيودًا محلية.
  • تمثّل المركبات المركبات أو السائقين أو الموظفين. تتمتع المركبات أيضًا الإعدادات والقيود المحلية.

تصف سمات كلّ عنصر جزءًا من مشكلة التحسين على مستوى تحديدٍ معيّن للدقة. يتم تطبيق القيود على مستوى الطراز على جميع الشحنات والمركبات، في حين أنّ القيود والخصائص المحدّدة للشحنات أو المركبات تكون خاصة بشحنة أو مركبة واحدة.

للحصول على مستندات كاملة عن كل نوع من أنواع الرسائل، اطّلِع على المستندات المرجعية لرسائل ShipmentModel (REST وgRPC) وShipment (REST وgRPC) وVehicle (REST وgRPC).

OptimizeToursRequest مكانًا للإقامة

بعض السمات الشائعة الاستخدام لرسالة OptimizeToursRequest ذات المستوى الأعلى (REST، gRPC) تشمل ما يلي:

  • تشير السمة searchMode إلى ما إذا كان سيتم عرض الحل الأول الذي يعجبك. قيود محددة أو إيجاد أفضل حل ممكن داخل مجموعة الموعد النهائي.
  • considerRoadTraffic يحدّد ما إذا كان سيتم استخدام بيانات حركة المرور المباشرة لتوجيه المسار وتقدير الوقت المقدَّر للوصول.
  • تحدِّد populateTransitionPolylines ما إذا كان سيتم توجيه الخطوط المتعددة أم لا يتم إرجاع رموز المسار في الاستجابة.

خصائص الطراز

تشمل بعض السمات الشائعة الاستخدام لرسالة ShipmentModel (REST، gRPC) ما يلي:

  • يمثّل globalStartTime أقرب وقت لبدء المسارات لجميع المركبات والشحنات. ولا يجوز لأي مركبة بدء عمليات النقل والتحميل الأولى قبل هذا الوقت.
  • يمثّل globalEndTime آخر وقت لانتهاء المسارات لجميع المركبات والشحنات. يجب أن تكتمل جميع عمليات الشحن وعمليات النقل المخصصة. قبل هذا الوقت.

خصائص الشحن

بعض السمات شائعة الاستخدام للرسالة Shipment (REST، gRPC) تشمل:

  • يمثّل كلّ من pickups[] وdeliveries[] المكان الذي يمكن استلام شحنة فيه. أو انسحبوا. تستخدم السمتان pickups[] وdeliveries[] السمة VisitRequest رسالة (REST، gRPC).
  • يمثّل loadDemands الحمولة المطلوبة لمركبة لإكمال شحن. المركبات load_limits المقابلة (REST، gRPC) قيمة الحمولة التي يمكن أن تتسع للمركبة في المرة الواحدة. يمكنك قراءة المزيد من المعلومات عن التحميل في مقالة تحميل الطلبات والحدود.
  • يمثّل penalty_cost التكلفة المتكبّدة في حال تخطّي شحنة. يمكنك الاطّلاع علىمزيد من المعلومات عن التكاليف في مَعلمات نموذج التكلفة.

خصائص المركبة

بعض السمات شائعة الاستخدام للرسالة Vehicle (REST، gRPC) تشمل:

  • يمثّل الرمز startLocation المكان الذي يجب أن تبدأ فيه المركبة مسارها. هذا السمة اختيارية. إذا لم يتم تحديده، يبدأ مسار المركبة من موقع الشحنة الأولى المخصّصة لها.
  • يمثّل الرمز endLocation المكان الذي يجب أن تنتهي فيه رحلة المركبة. هذا الموقع اختيارية. إذا لم يتم تحديده، ينتهي مسار المركبة في موقع آخر شحنة تم تعيينها له.
  • يمثّل startTimeWindows[] الوقت الذي يمكن فيه للمركبة بدء مسارها. هذا النمط سمة اختيارية.
  • تشير السمة endTimeWindows[] إلى الوقت الذي يمكن فيه للمركبة بدء مسارها وإنهاؤها. وكلا السمتَين اختياريَين.
  • تمثّل السمة loadLimits سعة المركبة المتاحة لتلبية الشحنات. لتحميل البيانات. يمكنك الاطّلاع على مزيد من المعلومات عن متطلبات الحمل وحدوده في مقالة متطلبات الحمل وحدوده .

في ما يلي مثال كامل لطلب بتنسيق JSON:

{
  "model": {
    "shipments": [
      {
        "pickups": [
          {
            "arrivalLocation": {
              "latitude": 37.73881799999999,
              "longitude": -122.4161
            }
          }
        ],
        "deliveries": [
          {
            "arrivalLocation": {
              "latitude": 37.79581,
              "longitude": -122.4218856
            }
          }
        ]
      }
    ],
    "vehicles": [
      {
        "startLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "endLocation": {
          "latitude": 37.73881799999999,
          "longitude": -122.4161
        },
        "costPerKilometer": 1.0
      }
    ],
   "globalStartTime": "2024-02-13T00:00:00.000Z",
   "globalEndTime": "2024-02-14T06:00:00.000Z"
  }
}

تستهلك كل من OptimizeTours وBatchOptimizeTours رسائل طلب، مثل المثال أعلاه، ولكن بطرق مختلفة. قبل تقديم طلب تحسين مسار، من المهم فهم الفرق بين الطريقتَين التاليتَين:

مقارنة OptimizeTours وBatchOptimizeTours