اهداف

اهداف پارامترهایی هستند که اهداف بهینه‌سازی مشترک را از پیش تعریف می‌کنند، مانند کوتاه‌ترین مسافت یا مدت سفر، تحویل به موقع، متعادل کردن بارها بین رانندگان. هدف از این کار این است که توسعه‌دهندگان را قبل از یادگیری پیچیدگی‌ها و سفارشی‌سازی کامل پارامترهای هزینه، به API بهینه‌سازی مسیر آسان‌تر کند.

در صورت تنظیم، ShipmentModel.objectives مدل هزینه را به طور کامل بازنویسی می کنند، بنابراین با هزینه های قبلی ناسازگار هستند. هر Objective به تعدادی از هزینه های از پیش تعریف شده برای وسایل نقلیه، محموله ها یا ویژگی های انتقال نقشه می دهد.

هنگام تعیین حالت حل TRANSFORM_AND_RETURN_REQUEST ، درخواست حل نمی شود و فقط اعتبارسنجی می شود و با هزینه های مربوط به اهداف داده شده پر می شود. درخواست اصلاح شده به عنوان OptimizeToursResponse.processed_request برگردانده می شود. تمام حالت های حل دیگر درخواست حل شده را برمی گرداند.

حالت حل TRANSFORM_AND_RETURN_REQUEST فقط برای درخواست‌های OptimizeTours معتبر است و برای سایر درخواست‌های API بهینه‌سازی مسیر در دسترس نیست.

مثال: درخواست ShipmentModel.objectives را ارسال کنید

قبل از درخواست، مراحل زیر را انجام دهید:

  • اطمینان حاصل کنید که اعتبارنامه پیش‌فرض برنامه را همانطور که در Use 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 کنید

قبل از درخواست، مراحل زیر را انجام دهید:

  • اطمینان حاصل کنید که اعتبارنامه پیش‌فرض برنامه را همانطور که در Use 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"
      }
    }