الأهداف هي مَعلمات تحدّد مسبقًا أهداف التحسين الشائعة، مثل أقصر مسافة أو مدة للرحلة، أو عمليات التسليم في الوقت المحدّد، أو موازنة الأحمال بين السائقين. تهدف هذه المَعلمات إلى تسهيل عملية إعداد المطوّرين لاستخدام Route Optimization API قبل التعرّف على التفاصيل الدقيقة والتخصيص الكامل لمَعلمات التكلفة. (راجِع "cost model " للتعرّف على كيفية تخصيص مجموعة كبيرة ومتنوّعة من الأهداف بشكل كامل).
عند الضبط، فإنّ 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" } }