如「路線最佳化總覽」一文所述,基本要求包含「模型」、「運送作業」和「車輛」,做為必要實體:
- Model 會擷取整個要求的設定和限制,包括
Shipments
和Vehicles
。 - Shipments 代表工作或實際出貨,包括接送和運送
VisitRequest
。運送作業有本機設定和限制。 - 車輛代表車輛、駕駛或人員。車輛也有本機設定和限制。
每個實體的屬性會描述特定精細程度的部分最佳化問題。模型全域限制會套用至所有出貨和車輛,而出貨或車輛上指定的限制和屬性則僅適用於單一出貨或車輛。
如需各類型訊息的完整說明文件,請參閱 ShipmentModel
(REST、gRPC)、Shipment
(REST、gRPC) 和 Vehicle
(REST、gRPC) 訊息的參考說明文件。
OptimizeToursRequest
個房源
頂層 OptimizeToursRequest
訊息 (REST、gRPC) 的一些常用屬性包括:
searchMode
會指出要傳回符合指定限制條件的首個解決方案,還是在指定期限內找出最佳解決方案。considerRoadTraffic
會決定是否要使用即時路況資料來計算路線和預估到達時間。populateTransitionPolylines
會決定是否在回應中傳回路線多邊形和路線符記。
模型屬性
ShipmentModel
訊息 (REST、gRPC) 的一些常用屬性包括:
globalStartTime
代表所有車輛和貨物的路線最早開始時間。在此時間之前,任何車輛都無法開始首次轉換和出貨。globalEndTime
代表所有車輛和貨物的路線最新結束時間。所有指派的出貨和轉移作業都必須在此時間前完成。
出貨屬性
Shipment
訊息 (REST、gRPC) 的一些常用屬性包括:
pickups[]
和deliveries[]
代表可取貨或送貨的位置。pickups[]
和deliveries[]
屬性都使用VisitRequest
訊息 (REST、gRPC)。loadDemands
代表車輛完成運送所需的負載量。車輛的對應load_limits
(REST、gRPC) 屬性代表車輛一次可容納的負載量。如要進一步瞭解負載,請參閱「負載需求和限制」。penalty_cost
代表略過運送作業所產生的費用。如要進一步瞭解費用,請參閱「成本模型參數」。
車輛屬性
Vehicle
訊息 (REST、gRPC) 的一些常用屬性包括:
startLocation
代表車輛必須從哪裡開始行駛路線。這是選用屬性。如未指定,車輛的路線會從第一個指派給它的貨件所在地開始。endLocation
代表車輛必須終止路線的位置。這是選用屬性。如未指定,車輛的路線會在最後一次指派的運送地點結束。startTimeWindows[]
代表車輛可開始行駛的時間。這是選用屬性。endTimeWindows[]
代表車輛可開始和結束路線的時間。這兩個屬性皆為選用屬性。loadLimits
代表車輛可用來滿足貨物負載需求的容量。如要進一步瞭解負載需求和限制,請參閱「負載需求和限制」。
以下是 JSON 格式的完整要求範例:
{
"model": {
"shipments": [
{
"pickups": [
{
"arrivalLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
}
}
],
"deliveries": [
{
"arrivalLocation": {
"latitude": 37.79581,
"longitude": -122.4218856
}
}
]
}
],
"vehicles": [
{
"startLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"endLocation": {
"latitude": 37.73881799999999,
"longitude": -122.4161
},
"costPerKilometer": 1.0
}
],
"globalStartTime": "2024-02-13T00:00:00.000Z",
"globalEndTime": "2024-02-14T06:00:00.000Z"
}
}
OptimizeTours
和 BatchOptimizeTours
都會使用上述範例中的要求訊息,但方式不同。提出路線最佳化要求前,請務必瞭解這兩種方法的差異: