如路線最佳化總覽一文所述,基本要求包含「型號」、「運送」和「交通工具」做為必要實體:
- 模型會擷取整個要求的設定和限制,包括
Shipments
和Vehicles
。 - 「出貨」代表了包含自取和外送
VisitRequest
的工作或實際出貨項目。出貨商品包含當地設定和限制。 - 車輛是指車輛、駕駛或人員。車輛也有本機設定和限制。
每個實體的屬性都會以特定精細程度描述最佳化問題的一部分。模型層級的限制會套用至所有運送和車輛,而運送或車輛指定的限制和屬性則僅適用於單一運送或車輛。
如需各種訊息類型的完整說明文件,請參閱 ShipmentModel
(REST、gRPC)、Shipment
(REST、gRPC) 和 Vehicle
(REST、gRPC) 訊息參考說明文件。
OptimzeToursRequest
項資源
頂層 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
都會使用與上述範例類似的要求訊息,但會以不同方式耗用。提出路線最佳化要求之前,請務必先瞭解這兩種方法之間的差異: