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

المطوّرون في المنطقة الاقتصادية الأوروبية

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

  • تتضمّن النموذج الإعدادات والقيود الخاصة بالطلب بأكمله، بما في ذلك Shipments وVehicles.
  • تمثّل الشحنات المهام أو الشحنات الفعلية التي تتضمّن VisitRequestخدمات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