اهداف، پارامترهایی هستند که اهداف بهینهسازی رایج، مانند کوتاهترین مسافت یا مدت زمان سفر، تحویل به موقع، و متعادل کردن بار بین رانندگان را از پیش تعریف میکنند. این به منظور آسانتر کردن دسترسی توسعهدهندگان به 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" } }