ความต้องการและขีดจำกัดของโหลดเป็นข้อจำกัดประเภทหนึ่งที่คุณใช้จัดการความจุได้ โดยระบุความจุที่จําเป็นสำหรับการจัดส่งและความจุสูงสุดของยานพาหนะ ซึ่งช่วยให้คุณเพิ่มประสิทธิภาพการกำหนดเส้นทางตามข้อจำกัดเหล่านี้ได้
ความต้องการและขีดจํากัดของโหลดรองรับวัตถุประสงค์ต่างๆ เช่น
- ป้องกันไม่ให้ยานพาหนะบรรทุกน้ำหนักเกิน
- ตรวจสอบการเปลี่ยนแปลงของน้ำหนักบรรทุกของยานพาหนะเมื่อมีการยกเลิกและนำส่งการจัดส่ง
- จำกัดจำนวนครั้งที่ยานพาหนะเข้าชมสถานที่หนึ่งๆ ได้
ความต้องการและขีดจำกัดของโหลดจะระบุไว้ในพร็อพเพอร์ตี้ต่อไปนี้
loadDemands
ระบุปริมาณความจุที่การจัดส่งหนึ่งๆ ต้องการloadLimits
ระบุความจุสูงสุดของยานพาหนะหนึ่งๆ
โครงสร้าง
ดังที่แสดงในแผนภาพ ความต้องการและขีดจำกัดของโหลดมีโครงสร้างดังนี้
loadDemands
เป็นพร็อพเพอร์ตี้ของShipment
Shipment
อาจมีดีมานด์การโหลดหลายรายการloadLimits
เป็นพร็อพเพอร์ตี้ของVehicle
Vehicle
อาจมีขีดจำกัดการโหลดหลายรายการ
พร็อพเพอร์ตี้
ส่วนนี้จะอธิบายพร็อพเพอร์ตี้สำหรับความต้องการและขีดจำกัดของโหลด ดังนี้
- ประเภทการโหลด: พร็อพเพอร์ตี้ที่แชร์ระหว่างดีมานด์การโหลดและขีดจํากัด
Load
และLoadLimit
: พร็อพเพอร์ตี้ที่ไม่ซ้ำกันซึ่งแสดงในดีมานด์การโหลดและขีดจำกัดการโหลดตามลำดับ
ประเภทการโหลด
ประเภทน้ำหนักบรรทุกคือคีย์สตริงที่ระบุประเภทของความต้องการน้ำหนักบรรทุกสำหรับการจัดส่งและขีดจำกัดน้ำหนักบรรทุกของยานพาหนะ ประเภทการโหลดมีลักษณะสำคัญต่อไปนี้
- ผู้ใช้กำหนด: ประเภทการโหลดคือประเภทที่คุณกำหนด ไม่มีตัวแปรระบบที่กําหนดไว้ล่วงหน้าสําหรับประเภทการโหลด
- แชร์: ประเภทน้ำหนักบรรทุกมีไว้เพื่อแชร์ระหว่างการจัดส่งกับยานพาหนะ ซึ่งหมายความว่าการจัดส่งจะใช้ความจุของยานพาหนะจนเต็มขีดจำกัดเฉพาะเมื่อประเภทน้ำหนักบรรทุกตรงกัน หากยานพาหนะไม่ได้ระบุขีดจำกัดน้ำหนักบรรทุกสำหรับประเภทใดประเภทหนึ่ง ยานพาหนะนั้นจะบรรทุกน้ำหนักบรรทุกประเภทนั้นได้แบบไม่จำกัด
คีย์สตริงที่แสดงประเภทการโหลดใช้ไวยากรณ์ประเภทแผนที่ของ Protocol Buffers คีย์สตริงเหล่านี้ต้องไม่มีค่าเป็น Null เพื่อหลีกเลี่ยงปัญหา เมื่อตั้งชื่อประเภทการโหลด เราขอแนะนำให้ใช้ตัวระบุที่อธิบายประเภทของการโหลดและหน่วยของโหลด เช่น weightKg, volume_gallons, palletcount หรือ frequencyDaily
Load
และ LoadLimit
ออบเจ็กต์ Load
และ LoadLimit
มีพร็อพเพอร์ตี้เฉพาะเพื่อกำหนดข้อกำหนดด้านความจุสำหรับการจัดส่งและยานพาหนะ ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้เหล่านี้
วัตถุ | ผู้ปกครอง | พร็อพเพอร์ตี้ | ประเภทที่พัก | คำอธิบายพร็อพเพอร์ตี้ |
---|---|---|---|---|
Load |
loadDemands |
amount |
string (รูปแบบ int64) | กำหนดข้อกำหนดด้านความจุของการจัดส่งในประเภทที่ระบุ |
LoadLimit |
loadLimits |
maxLoad |
string (รูปแบบ int64) | กำหนดความสามารถในการบรรทุกสูงสุดของยานพาหนะในประเภทที่ระบุ |
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงโครงสร้างของดีมานด์การโหลดที่คุณสามารถตั้งค่าประเภท loadDemands
เป็นสตริงและพร็อพเพอร์ตี้ amount
เป็นสตริงในรูปแบบ int64
"loadDemands": {
"MATCHING_LOAD_TYPE ": {
"amount": "YOUR_LOAD_AMOUNT "
}
}
ตัวอย่างต่อไปนี้แสดงโครงสร้างพื้นฐานที่สุดของขีดจํากัดการโหลด ซึ่งคุณสามารถตั้งค่าประเภท loadLimits
เป็นสตริง และพร็อพเพอร์ตี้ maxLoad
เป็นสตริงในรูปแบบ int64
"loadLimits": {
"MATCHING_LOAD_TYPE ": {
"maxLoad": "YOUR_MAX_LOAD "
}
}
ลองเลย
ใช้ตัวอย่างโค้ดด้านบนเพื่อสร้างสถานการณ์สมมติ ในตัวอย่างนี้ คุณมีการจัดส่งที่มีน้ำหนัก 10 กิโลกรัม และมียานพาหนะที่บรรทุกได้ 100 กิโลกรัม
ในตัวอย่าง
loadDemands
ให้กําหนดประเภทการโหลดเป็นweightKg
เมื่อดำเนินการเสร็จแล้ว ประเภทการโหลดในตัวอย่าง
loadLimits
ก็จะปรากฏขึ้นด้วย โดยแชร์ประเภทการโหลด โปรดทราบว่าประเภทของloadDemands
และloadLimits
ต้องตรงกันเพื่อให้การจัดส่งใช้ขีดจำกัดของยานพาหนะได้ในตัวอย่าง
loadDemands
เดียวกัน ให้ตั้งค่าพร็อพเพอร์ตี้amount
เป็น10
ซึ่งหมายความว่าการจัดส่งมีน้ำหนัก 10 กิโลกรัม
ในตัวอย่าง
loadLimits
ให้ตั้งค่าพร็อพเพอร์ตี้maxLoad
เป็น100
ซึ่งหมายความว่ายานพาหนะสามารถบรรทุกน้ำหนักได้สูงสุด 100 กิโลกรัม
โปรดทราบว่าไม่มีชุดประเภทที่กำหนดไว้ล่วงหน้า ในตัวอย่างนี้ คุณสามารถเปลี่ยนกิโลกรัมเป็นคะแนน หรือเปลี่ยนเป็นค่าการวัดเชิงเส้นแทนน้ำหนัก ความยืดหยุ่นนี้ช่วยให้คุณปรับความต้องการและขีดจํากัดการโหลดให้เหมาะกับความต้องการที่เฉพาะเจาะจงได้
ตัวอย่างคำขอ
ตัวอย่างต่อไปนี้แสดงโครงสร้างของคําขอ optimizeTours
พื้นฐานที่มี loadDemands
ในการจัดส่งและ loadLimits
ในยานพาหนะ
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 00.000000, "longitude": 00.000000 } } ], "loadDemands": { "MATCHING_LOAD_TYPE ": { "amount": "YOUR_LOAD_AMOUNT " } } } ], "vehicles": [ { "startLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "endLocation": { "latitude": 00.000000, "longitude": 00.000000 }, "costPerKilometer": 1.0, "loadLimits": { "MATCHING_LOAD_TYPE ": { "maxLoad": "YOUR_MAX_LOAD " } } } ] } }
โปรดทราบว่าการจัดส่งอาจมีความต้องการในการบรรทุกหลายรายการ และยานพาหนะอาจมีขีดจำกัดในการบรรทุกหลายรายการ ซึ่งจะช่วยให้คุณระบุข้อจำกัดที่ซับซ้อนเพื่อพิจารณาเมื่อเพิ่มประสิทธิภาพเส้นทางของกลุ่มยานพาหนะได้