الأهداف

الأهداف هي مَعلمات تحدّد مسبقًا استهدافات التحسين الشائعة، مثل أقصر مسافة أو مدة للسفر، والتسليم في الوقت المحدّد، وموازنة الحمولات بين السائقين. تهدف هذه الخطوة إلى تسهيل استخدام مطوّري التطبيقات لواجهة برمجة التطبيقات Route Optimization API قبل التعرّف على التفاصيل الدقيقة والتخصيص الكامل لمَعلمات ملف تكلفة العميل.

عند ضبط القيمة ShipmentModel.objectives، يتم استبدال نموذج التكلفة تمامًا، وبالتالي لا يكون متوافقًا مع التكاليف الحالية. يتم ربط كل رمز Objective بعدد من التكاليف المحدّدة مسبقًا للمركبات أو الشحنات أوسمات الانتقال.

عند تحديد وضع حلّ TRANSFORM_AND_RETURN_REQUEST، لا يتم حلّ الطلب، بل يتم التحقّق منه فقط وتعبئته بالتكاليف المتوافقة مع الأهداف المحدّدة. يتم عرض الطلب المعدَّل على النحو التالي: OptimizeToursResponse.processed_request. ستؤدي جميع أوضاع الحل الأخرى إلى عرض الطلب الذي تم حلّه.

لا يكون وضع حلّ TRANSFORM_AND_RETURN_REQUEST صالحًا إلا لطلبات OptimizeTours، ولا يتوفّر لطلبات واجهة برمجة التطبيقات الأخرى لتحسين المسار.

مثال: تقديم طلب ShipmentModel.objectives

قبل تقديم طلب، يُرجى إكمال الخطوات التالية:

  • تأكَّد من ضبط بيانات الاعتماد التلقائية للتطبيق على النحو الموضّح في استخدام OAuth.
  • اضبط PROJECT_NUMBER_OR_ID على رقم مشروع Cloud أو رقم تعريفه.

    يُرسِل الأمر التالي OptimizeToursRequest إلى ‎ Route Optimization API الذي يعرض OptimizeToursResponse.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
          }
        ],
        "objectives": [
          {
            "type": "MIN_TRAVEL_TIME"
          }
        ],
      }
    }
    EOM

مثال: تقديم طلب TRANSFORM_AND_RETURN_REQUEST

قبل تقديم طلب، يُرجى إكمال الخطوات التالية:

  • تأكَّد من ضبط بيانات الاعتماد التلقائية للتطبيق على النحو الموضّح في استخدام OAuth.
  • اضبط PROJECT_NUMBER_OR_ID على رقم مشروع Cloud أو رقم تعريفه.

    يُرسِل الأمر التالي OptimizeToursRequest إلى Route Optimization API التي تُعرِض OptimizeToursResponse مع مجموعة الحقول ProcessedRequest.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
          }
        ],
        "objectives": [
          {
            "type": "MIN_TRAVEL_TIME"
          }
        ]
      },
      "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
    }
    EOM
    سيؤدي الأمر السابق إلى عرض استجابة مشابهة لما يلي.
    {
      "processedRequest": {
        "model": {
          "shipments": [
            {
              "pickups": [
                {
                  "arrivalLocation": {
                    "latitude": 37.425062610009959,
                    "longitude": -122.09535511930135
                  }
                }
              ],
              "deliveries": [
                {
                  "arrivalLocation": {
                    "latitude": 37.424215032060211,
                    "longitude": -122.09526063135228
                  }
                }
              ]
            }
          ],
          "vehicles": [
            {
              "travelMode": "DRIVING",
              "costPerHour": 30,
              "costPerTraveledHour": 330,
              "costPerKilometer": 0.2
            }
          ],
          "objectives": [
            {
              "type": "MIN_TRAVEL_TIME"
            }
          ]
        },
        "solvingMode": "TRANSFORM_AND_RETURN_REQUEST"
      }
    }