الأهداف

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

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

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

لا يكون وضع الحل TRANSFORM_AND_RETURN_REQUEST صالحًا إلا لطلبات OptimizeTours، ولا يتوفّر لطلبات أخرى من Route Optimization API.

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

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

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

    يرسل الأمر التالي 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 على رقم مشروعك أو رقم تعريفه على السحابة الإلكترونية.

    يرسل الأمر التالي 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"
      }
    }