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

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

  • يلتقط النموذج الإعدادات والقيود المفروضة على الطلب بأكمله، بما في ذلك 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