- การแสดง JSON
 - การจัดส่ง
 - VisitRequest
 - LatLng
 - Waypoint
 - ตำแหน่ง
 - TimeWindow
 - ยานพาหนะ
 - TravelMode
 - UnloadingPolicy
 - LoadLimit
 - ช่วงเวลา
 - DurationLimit
 - DistanceLimit
 - BreakRule
 - BreakRequest
 - FrequencyConstraint
 - DurationDistanceMatrix
 - แถว
 - TransitionAttributes
 - ShipmentTypeIncompatibility
 - IncompatibilityMode
 - ShipmentTypeRequirement
 - RequirementMode
 - PrecedenceRule
 
รูปแบบการจัดส่งประกอบด้วยชุดการจัดส่งที่ต้องดำเนินการโดยยานพาหนะชุดหนึ่ง ขณะเดียวกันก็ลดค่าใช้จ่ายโดยรวมลง ซึ่งก็คือผลรวมของสิ่งต่อไปนี้
- ค่าใช้จ่ายในการกำหนดเส้นทางของยานพาหนะ (ผลรวมของต้นทุนต่อเวลาทั้งหมด ต้นทุนต่อเวลาเดินทาง และต้นทุนคงที่สำหรับยานพาหนะทั้งหมด)
 - บทลงโทษสำหรับการไม่ดำเนินการจัดส่ง
 - ค่าใช้จ่ายของระยะเวลาการจัดส่งทั่วโลก
 
| การแสดง JSON | 
|---|
{ "shipments": [ { object (  | 
            
| ช่อง | |
|---|---|
shipments[] | 
              
                 
 ชุดการจัดส่งที่ต้องดำเนินการในโมเดล  | 
            
vehicles[] | 
              
                 
 ชุดยานพาหนะที่สามารถใช้เพื่อเข้าชม  | 
            
globalStartTime | 
              
                 
 เวลาเริ่มต้นและสิ้นสุดทั่วโลกของโมเดล: ไม่มีเวลานอกช่วงนี้ที่จะถือว่าถูกต้อง ช่วงเวลาของโมเดลต้องน้อยกว่า 1 ปี กล่าวคือ  เมื่อใช้ฟิลด์  การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและมีตัวเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง:   | 
            
globalEndTime | 
              
                 
 หากไม่ได้ตั้งค่า ระบบจะใช้เวลา 00:00:00 UTC ของวันที่ 1 มกราคม 1971 (เช่น วินาที: 31536000, nanos: 0) เป็นค่าเริ่มต้น การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและทศนิยมสูงสุด 9 หลัก ตัวอย่าง:   | 
            
globalDurationCostPerHour | 
              
                 
 "ระยะเวลาโดยรวม" ของแผนโดยรวมคือความแตกต่างระหว่างเวลาเริ่มต้นที่เร็วที่สุดที่มีผลและเวลาสิ้นสุดที่ช้าที่สุดที่มีผลของยานพาหนะทั้งหมด เช่น ผู้ใช้สามารถกำหนดค่าใช้จ่ายต่อชั่วโมงให้กับจำนวนดังกล่าวเพื่อพยายามเพิ่มประสิทธิภาพเพื่อให้งานเสร็จเร็วที่สุด เป็นต้น ค่าใช้จ่ายนี้ต้องอยู่ในหน่วยเดียวกับ   | 
            
durationDistanceMatrices[] | 
              
                 
 ระบุระยะเวลาและเมทริกซ์ระยะทางที่ใช้ในโมเดล หากฟิลด์นี้ว่างเปล่า ระบบจะใช้ Google Maps หรือระยะทางตามพิกัดภูมิศาสตร์แทน ทั้งนี้ขึ้นอยู่กับค่าของช่อง  ตัวอย่างการใช้งาน 
 
  | 
            
durationDistanceMatrixSrcTags[] | 
              
                 
 แท็กที่กําหนดแหล่งที่มาของเมตริกระยะเวลาและระยะทาง  แท็กสอดคล้องกับ   | 
            
durationDistanceMatrixDstTags[] | 
              
                 
 แท็กที่กำหนดปลายทางของเมทริกซ์ระยะเวลาและระยะทาง,  แท็กจะสอดคล้องกับ   | 
            
transitionAttributes[] | 
              
                 
 เพิ่มแอตทริบิวต์การเปลี่ยนไปยังโมเดล  | 
            
shipmentTypeIncompatibilities[] | 
              
                 
 ชุดของ shipment_types ที่ใช้ร่วมกันไม่ได้ (ดู   | 
            
shipmentTypeRequirements[] | 
              
                 
 ชุดข้อกำหนด   | 
            
precedenceRules[] | 
              
                 
 ชุดกฎลําดับความสําคัญที่ต้องบังคับใช้ในโมเดล  | 
            
maxActiveVehicles | 
              
                 
 จำกัดจำนวนยานพาหนะที่ใช้งานอยู่สูงสุด ยานพาหนะจะถือว่าใช้งานอยู่หากเส้นทางของยานพาหนะมีการจัดส่งอย่างน้อย 1 รายการ สามารถใช้เพื่อจำกัดจำนวนเส้นทางในกรณีที่มีคนขับน้อยกว่ายานพาหนะและกลุ่มยานพาหนะมีความหลากหลาย จากนั้นการเพิ่มประสิทธิภาพจะเลือกยานพาหนะที่ดีที่สุดที่จะใช้ ต้องเป็นเชิงบวกเท่านั้น  | 
            
การจัดส่ง
การจัดส่งสินค้า 1 รายการ ตั้งแต่การไปรับที่ร้าน 1 ครั้งไปจนถึงการจัดส่งสินค้า 1 รายการ เพื่อให้ระบบถือว่ามีการจัดส่งเกิดขึ้น รถคันเดียวต้องไปที่จุดรับสินค้าแห่งหนึ่ง (และลดกำลังการผลิตที่เหลือตามนั้น) จากนั้นไปที่จุดนำส่งแห่งหนึ่งในภายหลัง (และเพิ่มกำลังการผลิตที่เหลือตามนั้นอีกครั้ง)
| การแสดง JSON | 
|---|
{ "displayName": string, "pickups": [ { object (  | 
              
| ช่อง | |
|---|---|
displayName | 
                
                   
 ชื่อที่แสดงของการจัดส่งที่ผู้ใช้กำหนด โดยมีความยาวได้สูงสุด 63 อักขระและ UTF-8 ได้  | 
              
pickups[] | 
                
                   
 ชุดตัวเลือกการรับสินค้าที่เกี่ยวข้องกับการจัดส่ง หากไม่ได้ระบุ ยานพาหนะจะต้องไปที่สถานที่ที่สอดคล้องกับการนำส่งเท่านั้น  | 
              
deliveries[] | 
                
                   
 ชุดตัวเลือกการนำส่งที่เชื่อมโยงกับการจัดส่ง หากไม่ได้ระบุ ยานพาหนะจะต้องไปที่สถานที่ที่สอดคล้องกับการรับส่งเท่านั้น  | 
              
loadDemands | 
                
                   
 โหลดความต้องการในการจัดส่ง (เช่น น้ำหนัก ปริมาตร จำนวนพาเลต เป็นต้น) คีย์ในแผนที่ควรเป็นตัวระบุที่อธิบายประเภทของโหลดที่เกี่ยวข้อง และโดยหลักการแล้ว อาจรวมถึงหน่วยต่างๆ ด้วย เช่น "weight_kg", "volume_gallons", "pallet_count" ฯลฯ หากคีย์ที่ระบุไม่ปรากฏในแผนที่ โหลดที่เกี่ยวข้องจะถือว่าเป็น Null ออบเจ็กต์ที่มีรายการคู่   | 
              
allowedVehicleIndices[] | 
                
                   
 ชุดยานพาหนะที่อาจทำการขนส่งนี้ หากเป็นค่าว่าง หมายความว่ารถทุกรุ่นจะดำเนินการได้ ยานพาหนะจะแสดงตามดัชนีในรายการ   | 
              
costsPerVehicle[] | 
                
                   
 ระบุค่าใช้จ่ายที่เกิดขึ้นเมื่อนำส่งการจัดส่งนี้โดยยานพาหนะแต่ละคัน หากระบุไว้ จะต้องมีอย่างใดอย่างหนึ่งต่อไปนี้ 
 ค่าใช้จ่ายเหล่านี้ต้องเป็นหน่วยเดียวกับ   | 
              
costsPerVehicleIndices[] | 
                
                   
 ตัวบอกยานพาหนะที่ใช้   | 
              
pickupToDeliveryAbsoluteDetourLimit | 
                
                   
 ระบุเวลาสูงสุดสัมบูรณ์ของทางอ้อมเทียบกับเส้นทางที่สั้นที่สุดตั้งแต่การรับสินค้าจนถึงการจัดส่ง หากระบุ ต้องไม่เป็นค่าลบ และการจัดส่งต้องมีการรับสินค้าและการนำส่งอย่างน้อย 1 รายการ ตัวอย่างเช่น สมมติให้ t เป็นเวลาที่สั้นที่สุดจากทางเลือกการรับสินค้าซึ่งเลือกไว้ไปยังทางเลือกการนำส่งซึ่งเลือกไว้โดยตรง จากนั้นการตั้งค่า  หากระบุทั้งขีดจำกัดแบบสัมพัทธ์และแบบสัมบูรณ์ในการจัดส่งเดียวกัน ระบบจะใช้ขีดจำกัดที่จำกัดมากขึ้นสำหรับคู่การรับ/การนำส่งที่เป็นไปได้แต่ละคู่ ตั้งแต่ปี 2017 เป็นต้นไป ระบบจะรองรับการออกนอกเส้นทางในกรณีที่ระยะเวลาเดินทางไม่ได้ขึ้นอยู่กับยานพาหนะเท่านั้น ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "  | 
              
pickupToDeliveryTimeLimit | 
                
                   
 ระบุระยะเวลาสูงสุดตั้งแต่เริ่มรับพัสดุไปจนถึงเริ่มนำส่งพัสดุ หากระบุ ต้องไม่เป็นค่าลบ และการจัดส่งต้องมีการรับสินค้าและการนำส่งอย่างน้อย 1 รายการ ซึ่งไม่ได้ขึ้นอยู่กับว่าเลือกบริการใดสำหรับการรับและการนำส่ง หรือความเร็วของยานพาหนะ ซึ่งสามารถระบุควบคู่กับข้อจำกัดการเปลี่ยนเส้นทางสูงสุด: โซลูชันจะเป็นไปตามข้อกำหนดทั้ง 2 ข้อ ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย "  | 
              
shipmentType | 
                
                   
 สตริงที่ไม่ว่างเปล่าซึ่งระบุ "ประเภท" สำหรับการจัดส่งนี้ ฟีเจอร์นี้สามารถใช้เพื่อนิยามความไม่เข้ากันหรือข้อกำหนดระหว่าง  แตกต่างจาก   | 
              
label | 
                
                   
 ระบุป้ายกำกับสำหรับการจัดส่งนี้ ระบบจะรายงานป้ายกำกับนี้ในการตอบสนองใน   | 
              
ignore | 
                
                   
 หากเป็นจริง ให้ข้ามการจัดส่งนี้ แต่อย่าใช้  การละเว้นการจัดส่งจะทำให้เกิดข้อผิดพลาดในการตรวจสอบเมื่อมี  อนุญาตให้ละเว้นการจัดส่งที่ดำเนินการใน   | 
              
penaltyCost | 
                
                   
 หากการจัดส่งไม่เสร็จสมบูรณ์ จะมีการเพิ่มค่าปรับนี้ในค่าใช้จ่ายโดยรวมของเส้นทาง ระบบจะถือว่าการจัดส่งเสร็จสมบูรณ์หากมีการนำส่งหรือรับสินค้าตามทางเลือกใดทางเลือกหนึ่ง ค่าใช้จ่ายอาจแสดงเป็นหน่วยเดียวกับที่ใช้กับช่องอื่นๆ ทั้งหมดที่เกี่ยวข้องกับต้นทุนในโมเดล และต้องมีค่าเป็นบวก สำคัญ: หากไม่ได้ระบุบทลงโทษนี้ ระบบจะถือว่าเป็นอนันต์ กล่าวคือ การจัดส่งจะต้องเสร็จสมบูรณ์  | 
              
pickupToDeliveryRelativeDetourLimit | 
                
                   
 ระบุเวลาอ้อมสูงสุดแบบสัมพัทธ์เทียบกับเส้นทางที่สั้นที่สุดตั้งแต่การไปรับจนถึงการนำส่ง หากระบุ ต้องไม่เป็นค่าลบ และการจัดส่งต้องมีการรับสินค้าและการนำส่งอย่างน้อย 1 รายการ ตัวอย่างเช่น สมมติให้ t เป็นเวลาที่สั้นที่สุดจากทางเลือกการรับสินค้าซึ่งเลือกไว้ไปยังทางเลือกการนำส่งซึ่งเลือกไว้โดยตรง จากนั้นการตั้งค่า  หากระบุทั้งขีดจำกัดแบบสัมพัทธ์และขีดจำกัดสัมบูรณ์ในการจัดส่งเดียวกัน ระบบจะใช้ขีดจำกัดมากกว่าสำหรับคู่รับสินค้า/การนำส่งที่เป็นไปได้แต่ละคู่ ตั้งแต่ปี 2017 เป็นต้นไป ระบบจะรองรับการออกนอกเส้นทางในกรณีที่ระยะเวลาเดินทางไม่ได้ขึ้นอยู่กับยานพาหนะเท่านั้น  | 
              
VisitRequest
คำขอเข้าชมที่สามารถทำได้โดยยานพาหนะ: สถานที่ตั้งทางภูมิศาสตร์ (หรือ 2 แห่ง ดูด้านล่าง) เวลาเปิดและปิดที่แสดงโดยกรอบเวลา และระยะเวลาของบริการ (เวลาที่ยานพาหนะใช้ในการรับหรือส่งสินค้าเมื่อมาถึง)
| การแสดง JSON | 
|---|
{ "arrivalLocation": { object (  | 
              
| ช่อง | |
|---|---|
arrivalLocation | 
                
                   
 ตำแหน่งทางภูมิศาสตร์ที่ยานพาหนะจะมาถึงเมื่อดำเนินการ  | 
              
arrivalWaypoint | 
                
                   
 จุดที่รถมาถึงเมื่อทำ   | 
              
departureLocation | 
                
                   
 ตำแหน่งทางภูมิศาสตร์ที่รถจะออกเดินทางหลังจากเสร็จสิ้น  | 
              
departureWaypoint | 
                
                   
 เส้นทางที่รถจะออกหลังจากเสร็จสิ้น  | 
              
tags[] | 
                
                   
 ระบุแท็กที่แนบมากับคำขอเข้าชม ไม่อนุญาตให้ใช้สตริงที่ว่างเปล่าหรือซ้ำกัน  | 
              
timeWindows[] | 
                
                   
 กรอบเวลาที่จํากัดเวลามาถึงในการเข้าชม โปรดทราบว่ายานพาหนะอาจออกเดินทางนอกกรอบเวลาเวลาถึง เช่น เวลาถึงและระยะเวลาไม่จำเป็นต้องอยู่ในกรอบเวลา ซึ่งอาจทำให้ต้องรอหากยานพาหนะมาถึงก่อนวันที่  การที่ไม่มี  กรอบเวลาต้องไม่ซ้อนทับกัน เช่น กรอบเวลาต้องไม่ซ้อนทับหรืออยู่ติดกับกรอบเวลาอื่น และต้องเป็นลำดับเวลาจากน้อยไปมาก คุณจะตั้งค่า   | 
              
duration | 
                
                   
 ระยะเวลาการเยี่ยมชม เช่น เวลาที่ใช้โดยยานพาหนะตั้งแต่มาถึงและออกเดินทาง (เพื่อเพิ่มลงในเวลาที่รอรถได้ โปรดดู  ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "  | 
              
cost | 
                
                   
 ค่าบริการตามคำขอเข้าชมนี้ในเส้นทางของยานพาหนะ ซึ่งอาจใช้ในการชำระค่าใช้จ่ายที่แตกต่างกันสำหรับการรับสินค้าหรือการจัดส่งแต่ละครั้ง ค่าใช้จ่ายนี้ต้องเป็นหน่วยเดียวกับ   | 
              
loadDemands | 
                
                   
 โหลดดีมานด์ของคำขอเข้าชมนี้ ค่านี้เหมือนกับช่อง  ออบเจ็กต์ที่มีรายการคู่   | 
              
visitTypes[] | 
                
                   
 ระบุประเภทการเข้าชม ข้อมูลนี้อาจใช้เพื่อจัดสรรเวลาเพิ่มเติมที่จําเป็นสำหรับยานพาหนะในการเข้าชมนี้ให้เสร็จสมบูรณ์ (ดู  ประเภทจะปรากฏได้เพียงครั้งเดียว  | 
              
label | 
                
                   
 ระบุป้ายกำกับสำหรับ   | 
              
avoidUTurns | 
                
                   
 ระบุว่าควรหลีกเลี่ยงการยูเทิร์นในเส้นทางขับรถ ณ ตำแหน่งนี้หรือไม่ การหลีกเลี่ยงการเลี้ยวกลับจะดำเนินการอย่างดีที่สุดและไม่มีการรับประกันว่าจะหลีกเลี่ยงได้ทั้งหมด นี่เป็นฟีเจอร์ทดลองและลักษณะการทำงานอาจมีการเปลี่ยนแปลง  | 
              
LatLng
ออบเจ็กต์ที่แสดงคู่ละติจูด/ลองจิจูด ซึ่งจะแสดงเป็นคู่ของตัวเลขทศนิยมเพื่อแสดงองศาละติจูดและองศาลองจิจูด วัตถุนี้ต้องเป็นไปตามมาตรฐาน WGS84 เว้นแต่จะระบุไว้เป็นอย่างอื่น ค่าต้องอยู่ในช่วงมาตรฐาน
| การแสดง JSON | 
|---|
{ "latitude": number, "longitude": number }  | 
              
| ช่อง | |
|---|---|
latitude | 
                
                   
 ละติจูด หน่วยเป็นองศา โดยต้องอยู่ในช่วง [-90.0, +90.0]  | 
              
longitude | 
                
                   
 ลองจิจูดเป็นองศา โดยต้องอยู่ในช่วง [-180.0, +180.0]  | 
              
จุดบอกทาง
บรรจุจุดอ้างอิง จุดสังเกตจะระบุสถานที่มาถึงและออกเดินทางของคำขอเข้าชม รวมถึงสถานที่เริ่มต้นและสิ้นสุดของยานพาหนะ
| การแสดง JSON | 
|---|
{ "sideOfRoad": boolean, // Union field  | 
              
| ช่อง | |
|---|---|
sideOfRoad | 
                
                   
 ไม่บังคับ บ่งบอกว่าตําแหน่งของจุดแวะพักนี้มีไว้เพื่อกำหนดค่ากําหนดให้ยานพาหนะหยุดที่ด้านใดด้านหนึ่งของถนน เมื่อคุณกำหนดค่านี้ เส้นทางนี้จะผ่านตำแหน่งดังกล่าวเพื่อให้รถสามารถหยุดด้านข้างของถนนที่เอนเอียงไปทางตำแหน่งนั้นจากจุดกึ่งกลางของถนน ตัวเลือกนี้ใช้ไม่ได้กับโหมดการเดินทาง "เดิน"  | 
              
ฟิลด์สหภาพ location_type วิธีต่างๆ ในการแสดงสถานที่ location_type ต้องเป็นค่าใดค่าหนึ่งต่อไปนี้ | 
              |
location | 
                
                   
 จุดที่ระบุโดยใช้พิกัดทางภูมิศาสตร์ รวมถึงส่วนหัวที่ไม่บังคับ  | 
              
placeId | 
                
                   
 รหัสสถานที่ของจุดที่น่าสนใจที่เกี่ยวข้องกับการชี้ทาง  | 
              
ตำแหน่ง
บรรจุสถานที่ตั้ง (จุดทางภูมิศาสตร์และส่วนหัวที่ไม่บังคับ)
| การแสดง JSON | 
|---|
{
  "latLng": {
    object ( | 
              
| ช่อง | |
|---|---|
latLng | 
                
                   
 พิกัดทางภูมิศาสตร์ของจุดอ้างอิง  | 
              
heading | 
                
                   
 เข็มทิศที่เชื่อมโยงกับทิศทางของการเข้าชม ค่านี้ใช้เพื่อระบุฝั่งถนนที่จะใช้รับและส่งผู้โดยสาร ค่าทิศทางมีตั้งแต่ 0 ถึง 360 โดยที่ 0 ระบุทิศทางเป็นทิศเหนือ 90 ระบุทิศทางเป็นทิศตะวันออก เป็นต้น  | 
              
TimeWindow
กรอบเวลาจะจํากัดเวลาของกิจกรรม เช่น เวลามาถึงในการเข้าชม หรือเวลาเริ่มต้นและสิ้นสุดของยานพาหนะ
ขอบเขตกรอบเวลาแบบบังคับ startTime และ endTime จะบังคับใช้เวลาเริ่มต้นเร็วที่สุดและช้าสุดของเหตุการณ์ เช่น startTime <= event_time <=
          endTime ขอบเขตล่างของกรอบเวลาแบบยืดหยุ่น softStartTime แสดงถึงค่ากําหนดให้เหตุการณ์เกิดขึ้นตั้งแต่หรือหลังจาก softStartTime โดยจะมีค่าใช้จ่ายตามสัดส่วนกับระยะเวลาก่อนที่เหตุการณ์จะเกิดขึ้นก่อน softStartTime ขอบบนของกรอบเวลาแบบยืดหยุ่น softEndTime แสดงถึงค่ากําหนดให้เหตุการณ์เกิดขึ้นในหรือก่อนวันที่ softEndTime โดยจะมีต้นทุนตามสัดส่วนกับระยะเวลาหลังจากที่เกิดเหตุการณ์หลังจากวันที่ softEndTime startTime, endTime, softStartTime และ softEndTime ควรอยู่ภายในขีดจำกัดเวลาทั่วโลก (ดู ShipmentModel.global_start_time และ ShipmentModel.global_end_time) และควรเป็นไปตามข้อกำหนดต่อไปนี้
  0 <= `startTime` <= `endTime` and
  0 <= `startTime` <= `softStartTime` and
  0 <= `softEndTime` <= `endTime`.
| การแสดง JSON | 
|---|
{ "startTime": string, "endTime": string, "softStartTime": string, "softEndTime": string, "costPerHourBeforeSoftStartTime": number, "costPerHourAfterSoftEndTime": number }  | 
              
| ช่อง | |
|---|---|
startTime | 
                
                   
 เวลาเริ่มต้นของกรอบเวลาที่เจาะจง หากไม่ระบุ ระบบจะตั้งค่าเป็น  การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและมีตัวเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง:   | 
              
endTime | 
                
                   
 เวลาสิ้นสุดของกรอบเวลาที่ยากลำบาก หากไม่ระบุ ระบบจะตั้งค่าเป็น  การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและมีตัวเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง:   | 
              
softStartTime | 
                
                   
 Soft Start ของกรอบเวลา การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและมีตัวเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่างเช่น   | 
              
softEndTime | 
                
                   
 เวลาสิ้นสุดโดยประมาณของกรอบเวลา การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและทศนิยมสูงสุด 9 หลัก ตัวอย่าง:   | 
              
costPerHourBeforeSoftStartTime | 
                
                   
 ค่าใช้จ่ายต่อชั่วโมงที่เพิ่มจากค่าใช้จ่ายอื่นๆ ในโมเดล หากเหตุการณ์เกิดขึ้นก่อน softStartTime โดยคำนวณดังนี้ ค่าใช้จ่ายนี้ต้องเป็นค่าบวก และจะตั้งค่าช่องนี้ได้ก็ต่อเมื่อตั้งค่า softStartTime ไว้  | 
              
costPerHourAfterSoftEndTime | 
                
                   
 ค่าใช้จ่ายต่อชั่วโมงที่เพิ่มลงในค่าใช้จ่ายอื่นๆ ในโมเดลหากเหตุการณ์เกิดขึ้นหลังจากวันที่  ค่าใช้จ่ายนี้ต้องเป็นค่าบวก และจะตั้งค่าช่องนี้ได้ก็ต่อเมื่อตั้งค่า   | 
              
ยานพาหนะ
จำลองยานพาหนะในปัญหาการจัดส่ง การแก้ปัญหาการจัดส่งจะสร้างเส้นทางที่เริ่มต้นจาก startLocation และสิ้นสุดที่ endLocation สำหรับยานพาหนะนี้ เส้นทางคือลําดับการเข้าชม (ดู ShipmentRoute)
| การแสดง JSON | 
|---|
{ "displayName": string, "travelMode": enum (  | 
              
| ช่อง | |
|---|---|
displayName | 
                
                   
 ชื่อที่แสดงของยานพาหนะที่ผู้ใช้กำหนด โดยมีความยาวได้สูงสุด 63 อักขระและ UTF-8 ได้  | 
              
travelMode | 
                
                   
 รูปแบบการเดินทางซึ่งส่งผลต่อถนนที่ยานพาหนะใช้และความเร็วของรถได้ ดู   | 
              
startLocation | 
                
                   
 สถานที่ตั้งทางภูมิศาสตร์ที่ยานพาหนะเริ่มขึ้นก่อนที่จะรับการจัดส่ง หากไม่ได้ระบุ รถจะเริ่มจากการมารับครั้งแรก หากรูปแบบการจัดส่งมีเมทริกซ์ระยะเวลาและระยะทาง คุณไม่จำเป็นต้องระบุ   | 
              
startWaypoint | 
                
                   
 จุดสังเกตที่แสดงสถานที่ตั้งทางภูมิศาสตร์ที่ยานพาหนะเริ่มต้นก่อนรับการจัดส่ง หากไม่ได้ระบุ   | 
              
endLocation | 
                
                   
 สถานที่ตั้งทางภูมิศาสตร์ที่รถสิ้นสุดการเดินทางหลังจากทำ   | 
              
endWaypoint | 
                
                   
 จุดบนเส้นทางที่แสดงสถานที่ตั้งทางภูมิศาสตร์ที่ยานพาหนะสิ้นสุดหลังจากขับขี่รถยนต์เสร็จสิ้นเมื่อ   | 
              
startTags[] | 
                
                   
 ระบุแท็กที่แนบมากับจุดเริ่มต้นของเส้นทางของยานพาหนะ ไม่อนุญาตสตริงว่างหรือสตริงที่ซ้ำกัน  | 
              
endTags[] | 
                
                   
 ระบุแท็กที่แนบกับจุดสิ้นสุดของเส้นทางของพาหนะ ไม่อนุญาตสตริงว่างหรือสตริงที่ซ้ำกัน  | 
              
startTimeWindows[] | 
                
                   
 ช่วงเวลาที่ยานพาหนะอาจออกจากจุดเริ่มต้น โดยต้องอยู่ภายในขีดจำกัดเวลารวม (ดูช่อง  กรอบเวลาที่อยู่ในช่องเดียวกันต้องไม่ต่อเนื่องกัน กล่าวคือ ไม่มีกรอบเวลาใดทับซ้อนกันหรืออยู่ติดกันได้ และกรอบเวลาดังกล่าวต้องอยู่ตามลำดับเวลา คุณจะตั้งค่า   | 
              
endTimeWindows[] | 
                
                   
 กรอบเวลารถอาจมาถึงจุดหมาย โดยต้องอยู่ภายในขีดจำกัดเวลารวม (ดูช่อง  กรอบเวลาที่อยู่ในช่องเดียวกันต้องไม่ต่อเนื่องกัน กล่าวคือ ไม่มีกรอบเวลาใดทับซ้อนกันหรืออยู่ติดกันได้ และกรอบเวลาดังกล่าวต้องอยู่ตามลำดับเวลา คุณจะตั้งค่า   | 
              
unloadingPolicy | 
                
                   
 นโยบายการขนถ่ายสินค้าที่มีผลกับยานพาหนะ  | 
              
loadLimits | 
                
                   
 ความจุของยานพาหนะ (น้ำหนัก ปริมาตร จำนวนพาเลต เป็นต้น) คีย์ในการแมปเป็นตัวระบุประเภทของการโหลด ซึ่งสอดคล้องกับคีย์ของฟิลด์  ออบเจ็กต์ที่มีรายการคู่   | 
              
costPerHour | 
                
                   
 ค่ายานพาหนะ: รวมค่าใช้จ่ายทั้งหมดและต้องอยู่ในรูปแบบเดียวกับ  ค่าบริการต่อชั่วโมงของเส้นทางยานพาหนะ ค่าใช้จ่ายนี้จะมีผลกับเวลาทั้งหมดที่ใช้ในเส้นทาง ซึ่งรวมถึงเวลาเดินทาง เวลารอ และเวลาเข้าชม การใช้   | 
              
costPerTraveledHour | 
                
                   
 ค่าใช้จ่ายต่อชั่วโมงในการเดินทางของยานพาหนะ ค่าใช้จ่ายนี้จะใช้ได้เฉพาะกับเวลาเดินทางของเส้นทางนั้นๆ (ซึ่งรายงานใน   | 
              
costPerKilometer | 
                
                   
 ต้นทุนต่อหนึ่งกิโลเมตรของเส้นทางยานพาหนะ โดยค่าใช้จ่ายนี้จะมีผลกับระยะทางที่รายงานใน   | 
              
fixedCost | 
                
                   
 ค่าใช้จ่ายคงที่จะมีผลหากใช้ยานพาหนะนี้เพื่อจัดการการจัดส่ง  | 
              
usedIfRouteIsEmpty | 
                
                   
 ช่องนี้ใช้กับยานพาหนะเมื่อเส้นทางไม่ได้ให้บริการจัดส่งเท่านั้น ข้อมูลนี้ระบุว่าควรพิจารณายานพาหนะเป็นยานพาหนะมือสองหรือไม่ในกรณีนี้ หากเป็นจริง ยานพาหนะจะเดินทางจากจุดเริ่มต้นไปยังจุดสิ้นสุดแม้ว่าจะไม่มีการจัดส่งใดๆ ก็ตาม และระบบจะพิจารณาเวลาและค่าใช้จ่ายจากระยะทางที่เกิดขึ้นจากการเดินทางจากจุดเริ่มต้นไปยังจุดสิ้นสุด มิเช่นนั้น รถจะไม่เดินทางจากจุดเริ่มต้นไปยังตำแหน่งปลายทาง และไม่มีการกำหนดเวลา   | 
              
routeDurationLimit | 
                
                   
 ขีดจํากัดที่มีผลกับระยะเวลาทั้งหมดของเส้นทางยานพาหนะ ใน   | 
              
travelDurationLimit | 
                
                   
 ขีดจำกัดมีผลกับระยะเวลาเดินทางในเส้นทางของยานพาหนะ ใน   | 
              
routeDistanceLimit | 
                
                   
 ขีดจํากัดที่มีผลกับระยะทางรวมของเส้นทางยานพาหนะ ใน   | 
              
extraVisitDurationForVisitType | 
                
                   
 ระบุการแมปจากสตริง visitTypes ไปยังระยะเวลา ระยะเวลาคือเวลาเพิ่มเติมจาก  หากคำขอการเยี่ยมชมมีหลายประเภท ระบบจะเพิ่มระยะเวลาสำหรับแต่ละประเภทในแผนที่ ออบเจ็กต์ที่มีรายการคู่   | 
              
breakRule | 
                
                   
 อธิบายกำหนดเวลาพักที่จะบังคับใช้กับยานพาหนะนี้ หากว่างเปล่า ระบบจะไม่กำหนดเวลาพักสำหรับยานพาหนะนี้  | 
              
label | 
                
                   
 ระบุป้ายกำกับสำหรับยานพาหนะนี้ ระบบจะรายงานป้ายกำกับนี้ในคำตอบเป็น   | 
              
ignore | 
                
                   
 หากเป็นจริง  หากการจัดส่งดำเนินการโดยยานพาหนะที่ละเว้นใน  หากดำเนินการจัดส่งโดยยานพาหนะที่ละเว้นใน   | 
              
travelDurationMultiple | 
                
                   
 ระบุตัวคูณที่สามารถใช้เพื่อเพิ่มหรือลดเวลาเดินทางของยานพาหนะนี้ ตัวอย่างเช่น หากตั้งค่าเป็น 2.0 หมายความว่ารถคันนี้ทำงานช้ากว่าและมีเวลาเดินทางมากกว่ายานพาหนะมาตรฐานถึง 2 เท่า อัตราส่วนนี้ไม่ส่งผลต่อระยะเวลาในการเข้าชม แต่จะมีผลต่อต้นทุนหากมีการระบุ  โปรดทราบว่าระบบจะปัดเศษเวลาเดินทางเป็นวินาทีที่ใกล้ที่สุดหลังจากใช้ตัวคูณนี้ แต่ก่อนที่จะดำเนินการทางตัวเลขใดๆ ดังนั้นตัวคูณขนาดเล็กอาจทำให้ความแม่นยำลดลง ดู  | 
              
TravelMode
โหมดการเดินทางที่ยานพาหนะใช้ได้
ซึ่งควรเป็นชุดย่อยของโหมดการเดินทางของ Routes Preferred API ของ Google Maps Platform ดูได้ที่ https://developers.google.com/maps/documentation/routes_preferred/reference/rest/Shared.Types/RouteTravelMode
| Enum | |
|---|---|
TRAVEL_MODE_UNSPECIFIED | 
                โหมดการเดินทางที่ไม่ระบุ ซึ่งเทียบเท่ากับ DRIVING | 
              
DRIVING | 
                รูปแบบการเดินทางที่สอดคล้องกับเส้นทางการขับขี่ (รถยนต์ ...) | 
WALKING | 
                รูปแบบการเดินทางที่สอดคล้องกับเส้นทางเดินเท้า | 
UnloadingPolicy
นโยบายเกี่ยวกับวิธีขนถ่ายยานพาหนะ ใช้กับการจัดส่งที่มีทั้งการรับสินค้าและการนำส่งเท่านั้น
การจัดส่งอื่นๆ ไม่เสียค่าใช้จ่ายเกิดขึ้นที่ใดก็ได้บนเส้นทางโดยไม่คำนึงถึง unloadingPolicy
| Enum | |
|---|---|
UNLOADING_POLICY_UNSPECIFIED | 
                นโยบายการยกเลิกการโหลดที่ไม่ระบุ การนำส่งจะต้องเกิดขึ้นหลังจากการรับสินค้าที่เกี่ยวข้องเท่านั้น | 
LAST_IN_FIRST_OUT | 
                การนำส่งต้องเกิดขึ้นในลำดับที่กลับกันของการรับสินค้า | 
FIRST_IN_FIRST_OUT | 
                การนำส่งต้องเกิดขึ้นตามลำดับเดียวกับการรับสินค้า | 
LoadLimit
กำหนดขีดจำกัดการโหลดที่ใช้กับยานพาหนะ เช่น "รถบรรทุกคันนี้รับน้ำหนักได้สูงสุด 3, 500 กก. เท่านั้น" ดูloadLimits
| การแสดง JSON | 
|---|
{ "softMaxLoad": string, "costPerUnitAboveSoftMax": number, "startLoadInterval": { object (  | 
              
| ช่อง | |
|---|---|
softMaxLoad | 
                
                   
 ขีดจำกัดแบบไม่เข้มงวดของการโหลด ดู  | 
              
costPerUnitAboveSoftMax | 
                
                   
 หากน้ำหนักบรรทุกเกิน   | 
              
startLoadInterval | 
                
                   
 ช่วงโหลดที่ยอมรับได้ของยานพาหนะที่จุดเริ่มต้นของเส้นทาง  | 
              
endLoadInterval | 
                
                   
 ช่วงเวลาการบรรทุกที่ยอมรับได้ของยานพาหนะเมื่อสิ้นสุดเส้นทาง  | 
              
maxLoad | 
                
                   
 ปริมาณการโหลดสูงสุดที่ยอมรับได้  | 
              
ช่วงเวลา
ช่วงเวลาของจำนวนการโหลดที่ยอมรับได้
| การแสดง JSON | 
|---|
{ "min": string, "max": string }  | 
              
| ช่อง | |
|---|---|
min | 
                
                   
 โหลดต่ำสุดที่ยอมรับได้ ต้องมากกว่าหรือเท่ากับ 0 หากระบุทั้ง 2 รายการ   | 
              
max | 
                
                   
 น้ำหนักบรรทุกสูงสุดที่ยอมรับได้ ต้องมากกว่าหรือเท่ากับ 0 หากไม่ระบุ ข้อความนี้จะไม่จำกัดโหลดสูงสุด หากระบุทั้ง 2 รายการ   | 
              
DurationLimit
ขีดจํากัดที่กําหนดระยะเวลาสูงสุดของเส้นทางยานพาหนะ โดยจะเป็นแบบแข็งหรือเบา
เมื่อกำหนดช่องขีดจำกัดชั่วคราว ทั้งเกณฑ์ Soft Max และค่าใช้จ่ายที่เกี่ยวข้องจะต้องกำหนดร่วมกัน
| การแสดง JSON | 
|---|
{ "maxDuration": string, "softMaxDuration": string, "quadraticSoftMaxDuration": string, "costPerHourAfterSoftMax": number, "costPerSquareHourAfterQuadraticSoftMax": number }  | 
              
| ช่อง | |
|---|---|
maxDuration | 
                
                   
 ขีดจํากัดสูงสุดที่กําหนดให้ระยะเวลาไม่เกิน maxDuration ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "  | 
              
softMaxDuration | 
                
                   
 ขีดจำกัดชั่วคราวไม่ได้บังคับใช้ขีดจำกัดระยะเวลาสูงสุด แต่หากมีการละเมิดจะทำให้เส้นทางมีค่าใช้จ่าย ต้นทุนนี้จะรวมกับต้นทุนอื่นๆ ที่กําหนดไว้ในโมเดลซึ่งมีหน่วยเดียวกัน หากมีการกําหนด  ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย "  | 
              
quadraticSoftMaxDuration | 
                
                   
 ขีดจำกัดชั่วคราวไม่ได้บังคับใช้ขีดจำกัดระยะเวลาสูงสุด แต่หากมีการละเมิดจะทำให้เส้นทางมีค่าใช้จ่าย เป็นกำลังสองในระยะเวลา ต้นทุนนี้จะรวมกับต้นทุนอื่นๆ ที่กําหนดไว้ในโมเดลซึ่งมีหน่วยเดียวกัน หากกำหนดไว้  
 ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย "  | 
              
costPerHourAfterSoftMax | 
                
                   
 ค่าใช้จ่ายต่อชั่วโมงที่เกิดขึ้นหากมีการละเมิดเกณฑ์  ค่าใช้จ่ายต้องไม่ติดลบ  | 
              
costPerSquareHourAfterQuadraticSoftMax | 
                
                   
 ค่าใช้จ่ายต่อตารางชั่วโมงที่เกิดขึ้นหากละเมิดเกณฑ์  ค่าใช้จ่ายเพิ่มเติมจะเป็น 0 หากระยะเวลาอยู่ต่ำกว่าเกณฑ์ มิฉะนั้นค่าใช้จ่ายจะขึ้นอยู่กับระยะเวลา ดังนี้ ค่าใช้จ่ายต้องไม่ติดลบ  | 
              
DistanceLimit
ขีดจำกัดที่กำหนดระยะทางสูงสุดที่สามารถเดินทางได้ โดยจะเป็นแบบแข็งหรือเบา
หากกำหนดขีดจำกัดชั่วคราว จะต้องกำหนดทั้ง softMaxMeters และ costPerKilometerAboveSoftMax และไม่เป็นค่าลบ
| การแสดง JSON | 
|---|
{ "maxMeters": string, "softMaxMeters": string, "costPerKilometerAboveSoftMax": number }  | 
              
| ช่อง | |
|---|---|
maxMeters | 
                
                   
 ขีดจํากัดสูงสุดที่กําหนดระยะทางไว้ไม่เกิน maxMeters ขีดจํากัดต้องไม่ติดลบ  | 
              
softMaxMeters | 
                
                   
 ขีดจํากัดแบบไม่บังคับไม่ได้บังคับใช้ขีดจํากัดระยะทางสูงสุด แต่หากมีการละเมิด ค่าใช้จ่ายจะเพิ่มขึ้นตามค่าใช้จ่ายอื่นๆ ที่กําหนดไว้ในรูปแบบเดียวกัน หากกำหนด softMaxMeters ต้องน้อยกว่า maxMeters และต้องไม่ติดลบ  | 
              
costPerKilometerAboveSoftMax | 
                
                   
 ค่าใช้จ่ายต่อกิโลเมตรที่เกิดขึ้นหากระยะทางเกินขีดจำกัด  ค่าใช้จ่ายต้องไม่ติดลบ  | 
              
BreakRule
กฎในการสร้างช่วงพักสำหรับยานพาหนะ (เช่น ช่วงพักกลางวัน) ช่วงพักคือช่วงเวลาต่อเนื่องกันระหว่างที่รถไม่มีความเคลื่อนไหว ณ ตำแหน่งปัจจุบัน และไม่สามารถออกตัวได้ ช่วงพักอาจเกิดขึ้นในกรณีต่อไปนี้
- ระหว่างการเดินทางระหว่างการเข้าชม 2 ครั้ง (ซึ่งรวมถึงเวลาก่อนหรือหลังการเข้าชม แต่ไม่ใช่ในระหว่างการเข้าชม) ในกรณีนี้ ระบบจะขยายเวลาขนส่งที่เกี่ยวข้องระหว่างการเข้าชมเหล่านั้น
 - หรือก่อนที่รถจะสตาร์ท (ยานพาหนะอาจไม่สตาร์ทขณะหยุดพัก) ซึ่งในกรณีนี้จะไม่ส่งผลต่อสตาร์ทรถ
 - หรือหลังจากท้ายรถ (ตามด้วยเวลาสิ้นสุดของยานพาหนะ)
 
| การแสดง JSON | 
|---|
{ "breakRequests": [ { object (  | 
              
| ช่อง | |
|---|---|
breakRequests[] | 
                
                   
 ลำดับของช่วงพัก ดูข้อความ   | 
              
frequencyConstraints[] | 
                
                   
 อาจมี  | 
              
BreakRequest
คุณจะต้องทราบลำดับการหยุดพัก (เช่น หมายเลขและลำดับการพัก) ที่มีผลกับยานพาหนะแต่ละคันล่วงหน้า BreakRequest ที่ซ้ำกันจะกำหนดลำดับนั้นตามลำดับที่ต้องเกิดขึ้น กรอบเวลา (earliestStartTime / latestStartTime) อาจทับซ้อนกัน แต่จะต้องเข้ากันได้กับลำดับ (เลือกไว้)
| การแสดง JSON | 
|---|
{ "earliestStartTime": string, "latestStartTime": string, "minDuration": string }  | 
              
| ช่อง | |
|---|---|
earliestStartTime | 
                
                   
 ต้องระบุ ขอบเขตล่าง (รวม) ของช่วงพัก การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและมีตัวเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง:   | 
              
latestStartTime | 
                
                   
 ต้องระบุ ขอบเขตบน (รวม) ที่จุดเริ่มต้นของช่วงพัก การประทับเวลาจะอยู่ในรูปแบบ RFC3339 UTC "Zulu" ที่มีความละเอียดระดับนาโนวินาทีและมีตัวเลขเศษส่วนสูงสุด 9 หลัก ตัวอย่าง:   | 
              
minDuration | 
                
                   
 ต้องระบุ ระยะเวลาขั้นต่ำของช่วงพัก ต้องเป็นค่าบวก ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย "  | 
              
FrequencyConstraint
นอกจากนี้อาจมีการจำกัดความถี่และระยะเวลาของช่วงพักตามที่ระบุไว้ข้างต้นอีก โดยการบังคับใช้ความถี่ของช่วงพักขั้นต่ำ เช่น "ต้องมีช่วงพักอย่างน้อย 1 ชั่วโมงทุก 12 ชั่วโมง" สมมติว่าสามารถตีความได้ว่า "ภายในกรอบเวลาแบบเลื่อนได้ 12 ชั่วโมง ต้องมีช่วงพักอย่างน้อย 1 ชั่วโมงอย่างน้อย 1 ช่วง" ตัวอย่างดังกล่าวจะแปลเป็น FrequencyConstraint ดังนี้
{
   minBreakDuration { seconds: 3600 }         # 1 hour.
   maxInterBreakDuration { seconds: 39600 }  # 11 hours (12 - 1 = 11).
}
ช่วงเวลาและระยะเวลาของช่วงพักในโซลูชันจะเป็นไปตามข้อจำกัดดังกล่าวทั้งหมด นอกเหนือจากกรอบเวลาและระยะเวลาขั้นต่ำที่ระบุไว้ใน BreakRequest แล้ว
ในทางปฏิบัติ FrequencyConstraint อาจมีผลกับช่วงพักที่ไม่ต่อเนื่องกัน ตัวอย่างเช่น กำหนดการต่อไปนี้เป็นไปตามตัวอย่าง "1 ชั่วโมงทุก 12 ชั่วโมง"
  04:00 vehicle start
   .. performing travel and visits ..
  09:00 1 hour break
  10:00 end of the break
   .. performing travel and visits ..
  12:00 20-min lunch break
  12:20 end of the break
   .. performing travel and visits ..
  21:00 1 hour break
  22:00 end of the break
   .. performing travel and visits ..
  23:59 vehicle end
| การแสดง JSON | 
|---|
{ "minBreakDuration": string, "maxInterBreakDuration": string }  | 
              
| ช่อง | |
|---|---|
minBreakDuration | 
                
                   
 ต้องระบุ ระยะเวลาขั้นต่ำของช่วงพักสำหรับข้อจำกัดนี้ มีค่าไม่ติดลบ ดูคำอธิบายของ  ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย "  | 
              
maxInterBreakDuration | 
                
                   
 ต้องระบุ ช่วงที่อนุญาตสูงสุดของช่วงเวลาในเส้นทางที่ไม่รวมช่วงพักอย่างน้อย  ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย "  | 
              
DurationDistanceMatrix
ระบุระยะเวลาและเมตริกระยะทางจากสถานที่เริ่มต้นของยานพาหนะและการเข้าชมไปยังสถานที่สิ้นสุดของยานพาหนะและการเข้าชม
| การแสดง JSON | 
|---|
{
  "rows": [
    {
      object ( | 
              
| ช่อง | |
|---|---|
rows[] | 
                
                   
 ระบุแถวของเมทริกซ์ระยะเวลาและระยะทาง โดยต้องมีองค์ประกอบเท่ากับ   | 
              
vehicleStartTag | 
                
                   
 แท็กที่กำหนดยานพาหนะที่เมทริกซ์ระยะทางและระยะเวลานี้ใช้ หากเว้นว่างไว้ ตัวเลือกนี้จะใช้กับยานพาหนะทุกคัน และจะมีเมทริกซ์เพียงรายการเดียวเท่านั้น จุดเริ่มต้นของยานพาหนะแต่ละคันต้องตรงกับเมทริกซ์ 1 รายการ กล่าวคือ ฟิลด์  เมทริกซ์ทั้งหมดต้องมี   | 
              
แถว
ระบุแถวของเมทริกซ์ระยะเวลาและระยะทาง
| การแสดง JSON | 
|---|
{ "durations": [ string ], "meters": [ number ] }  | 
              
| ช่อง | |
|---|---|
durations[] | 
                
                   
 ค่าระยะเวลาของแถวที่ระบุ โดยต้องมีองค์ประกอบเท่ากับ  ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "  | 
              
meters[] | 
                
                   
 ค่าระยะทางสำหรับแถวที่กำหนด หากไม่มีค่าใช้จ่ายหรือข้อจำกัดที่อ้างถึงระยะทางในโมเดล ก็อาจปล่อยว่างไว้ได้ มิฉะนั้นจะต้องมีองค์ประกอบมากถึง   | 
              
TransitionAttributes
ระบุแอตทริบิวต์ของการเปลี่ยนระหว่างการเข้าชม 2 ครั้งต่อเส้นทาง TransitionAttributes หลายตัวอาจใช้กับการเปลี่ยนแบบเดียวกัน ซึ่งในกรณีนี้ ค่าใช้จ่ายเพิ่มเติมทั้งหมดจะรวมกัน และจะมีการใช้ข้อจำกัดหรือขีดจำกัดที่เข้มงวดที่สุด (ตามความหมายของ "AND" ตามธรรมชาติ)
| การแสดง JSON | 
|---|
{
  "srcTag": string,
  "excludedSrcTag": string,
  "dstTag": string,
  "excludedDstTag": string,
  "cost": number,
  "costPerKilometer": number,
  "distanceLimit": {
    object ( | 
              
| ช่อง | |
|---|---|
srcTag | 
                
                   
 แท็กที่กำหนดชุดการเปลี่ยน (src->dst) แอตทริบิวต์เหล่านี้จะมีผล การเข้าชมแหล่งที่มาหรือการสตาร์ทยานพาหนะตรงกับ   | 
              
excludedSrcTag | 
                
                   
 ดู  | 
              
dstTag | 
                
                   
 การเข้าชมปลายทางหรือจุดสิ้นสุดของยานพาหนะตรงกับ   | 
              
excludedDstTag | 
                
                   
 ดู  | 
              
cost | 
                
                   
 ระบุค่าใช้จ่ายในการดำเนินการเปลี่ยนนี้ ค่านี้อยู่ในรูปแบบเดียวกับค่าใช้จ่ายอื่นๆ ทั้งหมดในโมเดลและต้องไม่ติดลบ โดยจะมีผลเพิ่มเติมจากค่าใช้จ่ายอื่นๆ ทั้งหมดที่มีอยู่  | 
              
costPerKilometer | 
                
                   
 ระบุต้นทุนต่อกิโลเมตรที่ใช้กับระยะทางที่เดินทางในระหว่างการเปลี่ยนผ่านนี้ โดยจะเพิ่ม   | 
              
distanceLimit | 
                
                   
 ระบุขีดจำกัดของระยะทางในการเดินทางในขณะทำการเปลี่ยนนี้ ในเดือนมิถุนายน 2021 ระบบจะรองรับเฉพาะขีดจำกัดที่ไม่บังคับเท่านั้น  | 
              
delay | 
                
                   
 ระบุความล่าช้าที่เกิดขึ้นเมื่อดำเนินการเปลี่ยนนี้ ความล่าช้านี้จะเกิดขึ้นหลังจากการเข้าชมแหล่งที่มาสิ้นสุดลงและก่อนเริ่มการเข้าชมปลายทางเสมอ ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย "  | 
              
ShipmentTypeIncompatibility
ระบุความไม่เข้ากันระหว่างการจัดส่ง โดยขึ้นอยู่กับประเภทการจัดส่ง ระบบจะจำกัดการแสดงการจัดส่งที่เข้ากันไม่ได้ในเส้นทางเดียวกันตามโหมดที่เข้ากันไม่ได้
| การแสดง JSON | 
|---|
{
  "types": [
    string
  ],
  "incompatibilityMode": enum ( | 
              
| ช่อง | |
|---|---|
types[] | 
                
                   
 รายการประเภทที่ใช้ร่วมกันไม่ได้ การจัดส่ง 2 รายการที่มี   | 
              
incompatibilityMode | 
                
                   
 ใช้โหมดกับความไม่เข้ากัน  | 
              
IncompatibilityMode
โหมดที่กําหนดวิธีจํากัดลักษณะที่ปรากฏของการจัดส่งที่เข้ากันไม่ได้ในเส้นทางเดียวกัน
| Enum | |
|---|---|
INCOMPATIBILITY_MODE_UNSPECIFIED | 
                โหมดเข้ากันไม่ได้ที่ไม่ระบุ คุณไม่ควรใช้ค่านี้ | 
NOT_PERFORMED_BY_SAME_VEHICLE | 
                ในโหมดนี้ การจัดส่ง 2 รายการที่มีประเภทเข้ากันไม่ได้จะแชร์ยานพาหนะคันเดียวกันไม่ได้ | 
NOT_IN_SAME_VEHICLE_SIMULTANEOUSLY | 
                สำหรับการจัดส่ง 2 รายการที่มีประเภทที่ใช้ร่วมกันไม่ได้กับโหมดใช้ร่วมกันไม่ได้ของ  
  | 
              
ShipmentTypeRequirement
ระบุข้อกำหนดระหว่างการจัดส่งตาม shipmentType โหมดข้อกำหนดจะเป็นตัวกำหนดรายการเฉพาะ
| การแสดง JSON | 
|---|
{
  "requiredShipmentTypeAlternatives": [
    string
  ],
  "dependentShipmentTypes": [
    string
  ],
  "requirementMode": enum ( | 
              
| ช่อง | |
|---|---|
requiredShipmentTypeAlternatives[] | 
                
                   
 รายการประเภทการจัดส่งอื่นๆ ที่   | 
              
dependentShipmentTypes[] | 
                
                   
 การจัดส่งทั้งหมดที่มีประเภทในช่อง  หมายเหตุ: ไม่อนุญาตให้ใช้เงื่อนไขแบบเชน เช่น   | 
              
requirementMode | 
                
                   
 โหมดที่ใช้กับข้อกําหนด  | 
              
RequirementMode
รูปแบบที่กำหนดลักษณะของการจัดส่งแบบพึ่งพาบนเส้นทาง
| Enum | |
|---|---|
REQUIREMENT_MODE_UNSPECIFIED | 
                โหมดข้อกำหนดที่ไม่ได้ระบุ ไม่ควรใช้ค่านี้ | 
PERFORMED_BY_SAME_VEHICLE | 
                ในโหมดนี้ การจัดส่งที่ "ขึ้นต่อกัน" ทั้งหมดต้องใช้ยานพาหนะเดียวกับการจัดส่งที่ "จำเป็น" อย่างน้อย 1 รายการ | 
IN_SAME_VEHICLE_AT_PICKUP_TIME | 
                เมื่อใช้โหมด  ดังนั้น บริการรับสินค้าที่ "ต้องพึ่งพา" จึงต้องมีอย่างใดอย่างหนึ่งต่อไปนี้ 
  | 
              
IN_SAME_VEHICLE_AT_DELIVERY_TIME | 
                เช่นเดียวกับก่อนหน้านี้ ยกเว้นการจัดส่งที่ "ขึ้นอยู่กับ" จะต้องมีการจัดส่งที่ "จำเป็น" ในยานพาหนะ ณ เวลาที่นำส่ง | 
PrecedenceRule
กฎที่มีความสำคัญระหว่าง 2 เหตุการณ์ (แต่ละเหตุการณ์คือการรับสินค้าหรือการนำส่งการจัดส่ง) กล่าวคือ เหตุการณ์ "ที่สอง" ต้องเริ่มต้นอย่างน้อย offsetDuration หลังจากที่ "ครั้งแรก" เริ่มขึ้น
ลําดับความสําคัญหลายรายการอาจอ้างอิงถึงเหตุการณ์เดียวกัน (หรือที่เกี่ยวข้อง) เช่น "การรับสินค้า ข เกิดขึ้นหลังจากจัดส่งของ ก" และ "รับสินค้า ค เกิดขึ้นหลังรับสินค้า ข"
นอกจากนี้ ลำดับความสำคัญจะยังคงมีผลเฉพาะเมื่อดำเนินการจัดส่งทั้ง 2 รายการแล้วและจะไม่มีผล
| การแสดง JSON | 
|---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer }  | 
              
| ช่อง | |
|---|---|
firstIsDelivery | 
                
                   
 ระบุว่าเหตุการณ์ "แรก" เป็นการนำส่งหรือไม่  | 
              
secondIsDelivery | 
                
                   
 ระบุว่าเหตุการณ์ "ที่ 2" เป็นการแสดงโฆษณาหรือไม่  | 
              
offsetDuration | 
                
                   
 ระยะห่างระหว่างเหตุการณ์ "แรก" และ "วินาที" อาจเป็นค่าลบก็ได้ ระยะเวลาเป็นวินาทีที่มีเศษทศนิยมได้สูงสุด 9 หลัก โดยลงท้ายด้วย "  | 
              
firstIndex | 
                
                   
 ดัชนีการจัดส่งของเหตุการณ์ "แรก" ต้องระบุฟิลด์นี้  | 
              
secondIndex | 
                
                   
 ดัชนีการจัดส่งของเหตุการณ์ "วินาที" ต้องระบุฟิลด์นี้  |