יעדים הם פרמטרים שמגדירים מראש יעדי אופטימיזציה נפוצים, כמו המרחק או משך הנסיעה הקצרים ביותר, מסירות בזמן ואיזון העומסים בין הנהגים. הכלי הזה נועד להקל על מפתחים להתחיל להשתמש ב-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
לפני ששולחים בקשה, צריך לבצע את השלבים הבאים:
- מוודאים שהגדרתם Application Default Credentials כמו שמתואר במאמר שימוש ב-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
לפני ששולחים בקשה, צריך לבצע את השלבים הבאים:
- מוודאים שהגדרתם Application Default Credentials כמו שמתואר במאמר שימוש ב-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" } }