اهداف

اهداف، پارامترهایی هستند که اهداف بهینه‌سازی رایج، مانند کوتاه‌ترین مسافت یا مدت زمان سفر، تحویل به موقع، و متعادل کردن بار بین رانندگان را از پیش تعریف می‌کنند. این به منظور آسان‌تر کردن دسترسی توسعه‌دهندگان به API بهینه‌سازی مسیر، قبل از یادگیری پیچیدگی‌ها و سفارشی‌سازی کامل پارامترهای هزینه، در نظر گرفته شده است. (برای نحوه سفارشی‌سازی کامل طیف گسترده‌ای از اهداف خود، به « cost model » مراجعه کنید)

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

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

حالت حل TRANSFORM_AND_RETURN_REQUEST فقط برای درخواست‌های OptimizeTours معتبر است و برای سایر درخواست‌های 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"
      }
    }