- การแสดง JSON
- การจัดส่ง
- VisitRequest
- LatLng
- จุดอ้างอิง
- ตำแหน่ง
- 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[] |
ชุด delivery_types ที่ใช้ร่วมกันไม่ได้ (ดู |
shipmentTypeRequirements[] |
ชุดข้อกำหนด |
precedenceRules[] |
ชุดของกฎลำดับความสำคัญที่ต้องบังคับใช้ในโมเดล |
maxActiveVehicles |
จำกัดจำนวนยานพาหนะที่ใช้งานอยู่สูงสุด ยานพาหนะยังใช้งานอยู่หากเส้นทางมีการจัดส่งอย่างน้อย 1 ครั้ง ซึ่งอาจใช้จำกัดจำนวนเส้นทางในกรณีที่มีจำนวนผู้ขับขี่น้อยกว่ายานพาหนะและยานพาหนะทั้งหมดอยู่คนละที่ จากนั้นการเพิ่มประสิทธิภาพจะเลือกยานพาหนะที่ดีที่สุดที่จะใช้ ต้องเป็นเชิงบวกเท่านั้น |
การจัดส่ง
การจัดส่งสินค้า 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[] |
ระบุค่าใช้จ่ายที่เกิดขึ้นเมื่อการจัดส่งครั้งนี้ได้รับการนำส่งโดยยานพาหนะแต่ละคัน หากระบุ แอตทริบิวต์ดังกล่าวต้องมี 2 รายการดังนี้
ค่าใช้จ่ายเหล่านี้ต้องอยู่ในหน่วยเดียวกับ |
costsPerVehicleIndices[] |
ตัวบอกยานพาหนะที่ใช้ |
pickupToDeliveryAbsoluteDetourLimit |
ระบุเวลาสูงสุดสัมบูรณ์ของทางอ้อมเทียบกับเส้นทางที่สั้นที่สุดตั้งแต่การรับสินค้าจนถึงการจัดส่ง หากระบุ จะต้องไม่ใช่มูลค่าติดลบ และการจัดส่งต้องมีบริการรับสินค้าและการจัดส่งเป็นอย่างน้อย เช่น ระบุระยะเวลาที่สั้นที่สุดในการเดินทางจากจุดรับสินค้าที่เลือกไปยังตัวเลือกการจัดส่งที่เลือกโดยตรง จากนั้นการตั้งค่า
หากระบุทั้งขีดจำกัดแบบสัมพัทธ์และขีดจำกัดสัมบูรณ์ในการจัดส่งเดียวกัน ระบบจะใช้ขีดจำกัดที่เข้มงวดมากขึ้นสำหรับคู่รับสินค้า/การนำส่งที่เป็นไปได้แต่ละคู่ ตั้งแต่ปี 2017 เป็นต้นไป ระบบจะรองรับการออกนอกเส้นทางในกรณีที่ระยะเวลาเดินทางไม่ได้ขึ้นอยู่กับยานพาหนะเท่านั้น ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย " |
pickupToDeliveryTimeLimit |
ระบุระยะเวลาสูงสุดตั้งแต่เริ่มรับสินค้าจนถึงเริ่มนำส่งการจัดส่ง หากระบุ จะต้องไม่ใช่มูลค่าติดลบ และการจัดส่งต้องมีบริการรับสินค้าและการจัดส่งเป็นอย่างน้อย ข้อมูลนี้ไม่ได้ขึ้นอยู่กับทางเลือกอื่นที่เลือกไว้สำหรับการมารับที่ร้านและการจัดส่ง หรือความเร็วของยานพาหนะ ซึ่งสามารถระบุควบคู่กับข้อจำกัดการเปลี่ยนเส้นทางสูงสุด: โซลูชันจะเป็นไปตามข้อกำหนดทั้ง 2 ข้อ ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย " |
shipmentType |
สตริงที่ไม่ว่างเปล่าซึ่งระบุ "type" สำหรับการจัดส่งนี้ ฟีเจอร์นี้สามารถใช้เพื่อนิยามความไม่เข้ากันหรือข้อกำหนดระหว่าง สิ่งที่แตกต่างจาก |
label |
ระบุป้ายกำกับสำหรับการจัดส่งนี้ ระบบจะรายงานป้ายกำกับนี้ในการตอบสนองใน |
ignore |
หากจริง ให้ข้ามการจัดส่งนี้ แต่อย่าใช้ การละเว้นการจัดส่งจะทำให้เกิดข้อผิดพลาดในการตรวจสอบความถูกต้องเมื่อมี การละเว้นการจัดส่งที่ดำเนินการใน |
penaltyCost |
หากการจัดส่งไม่เสร็จสมบูรณ์ จะมีการเพิ่มค่าปรับนี้ในค่าใช้จ่ายโดยรวมของเส้นทาง การจัดส่งจะถือว่าเสร็จสมบูรณ์หากมีการเลือกมารับที่ร้านหรือจัดส่งทางเลือกอื่น ต้นทุนอาจแสดงเป็นหน่วยเดียวกับที่ใช้สำหรับช่องอื่นๆ ที่เกี่ยวข้องกับต้นทุนทั้งหมดในโมเดลและต้องเป็นค่าบวก สำคัญ: หากไม่ได้ระบุบทลงโทษนี้ ระบบจะถือว่าเป็นอนันต์ กล่าวคือ การจัดส่งจะต้องเสร็จสมบูรณ์ |
pickupToDeliveryRelativeDetourLimit |
ระบุเวลาสูงสุดของทางอ้อมที่เกี่ยวข้องเมื่อเทียบกับเส้นทางที่สั้นที่สุดตั้งแต่การรับสินค้าไปจนถึงการนำส่ง หากระบุ จะต้องไม่ใช่มูลค่าติดลบ และการจัดส่งต้องมีบริการรับสินค้าและการจัดส่งเป็นอย่างน้อย เช่น ระบุระยะเวลาที่สั้นที่สุดในการเดินทางจากจุดรับสินค้าที่เลือกไปยังตัวเลือกการจัดส่งที่เลือกโดยตรง จากนั้นการตั้งค่า
หากระบุทั้งขีดจำกัดแบบสัมพัทธ์และขีดจำกัดสัมบูรณ์ในการจัดส่งเดียวกัน ระบบจะใช้ขีดจำกัดที่เข้มงวดมากขึ้นสำหรับคู่รับสินค้า/การนำส่งที่เป็นไปได้แต่ละคู่ ตั้งแต่ปี 2017 เป็นต้นไป ระบบจะรองรับการออกนอกเส้นทางในกรณีที่ระยะเวลาเดินทางไม่ได้ขึ้นอยู่กับยานพาหนะเท่านั้น |
VisitRequest
คำขอการเข้าชมซึ่งทำได้โดยยานพาหนะ: ยานพาหนะมีตำแหน่งทางภูมิศาสตร์ (หรือ 2 ดูด้านล่าง) เวลาเปิดและปิดซึ่งแสดงเป็นกรอบเวลา และระยะเวลาการให้บริการ (เวลาที่ยานพาหนะใช้เพื่อไปรับหรือส่งสินค้า)
การแสดง JSON |
---|
{ "arrivalLocation": { object ( |
ช่อง | |
---|---|
arrivalLocation |
ตำแหน่งทางภูมิศาสตร์ที่ยานพาหนะจะมาถึงเมื่อดำเนินการ |
arrivalWaypoint |
เส้นทางที่ยานพาหนะจะมาถึงเมื่อดำเนินการ |
departureLocation |
ตำแหน่งทางภูมิศาสตร์ที่รถจะออกเดินทางหลังจากเสร็จสิ้น |
departureWaypoint |
เส้นทางที่รถจะออกหลังจากเสร็จสิ้น |
tags[] |
ระบุแท็กที่แนบมากับคำขอเข้าชม ไม่อนุญาตสตริงว่างหรือสตริงที่ซ้ำกัน |
timeWindows[] |
กรอบเวลาที่จำกัดเวลาถึงในการเยี่ยมชม โปรดทราบว่ายานพาหนะอาจออกเดินทางนอกกรอบเวลาเวลาถึง เช่น เวลาถึงและระยะเวลาไม่จำเป็นต้องอยู่ในกรอบเวลา ซึ่งอาจทำให้ต้องรอหากยานพาหนะมาถึงก่อนวันที่ การที่ไม่มี กรอบเวลาต้องไม่ต่อเนื่องกัน กล่าวคือ ไม่มีกรอบเวลาใดซ้อนทับกันหรืออยู่ติดกัน และกรอบเวลาดังกล่าวต้องเรียงตามลำดับมากขึ้น คุณจะตั้งค่า |
duration |
ระยะเวลาการเยี่ยมชม ซึ่งก็คือเวลาที่ยานพาหนะใช้ระหว่างมาถึงและออกเดินทาง (เพิ่มลงในเวลาที่ต้องรอได้ โปรดดู ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย " |
cost |
ค่าใช้จ่ายในการให้บริการคำขอเข้าชมนี้บนเส้นทางของยานพาหนะ ซึ่งอาจใช้ในการชำระค่าใช้จ่ายที่แตกต่างกันสำหรับการรับสินค้าหรือการนำส่งแต่ละครั้ง ค่าใช้จ่ายนี้ต้องอยู่ในหน่วยเดียวกับ |
loadDemands |
โหลดความต้องการของคำขอเข้าชมนี้ ค่านี้เหมือนกับช่อง ออบเจ็กต์ที่มีรายการคู่ |
visitTypes[] |
ระบุประเภทการเข้าชม ซึ่งอาจใช้เพื่อจัดสรรเวลาเพิ่มเติมที่ต้องใช้สำหรับยานพาหนะในการเดินทางครั้งนี้ (ดู ประเภทจะปรากฏได้เพียงครั้งเดียว |
label |
ระบุป้ายกำกับสำหรับ |
LatLng
วัตถุที่แสดงคู่ละติจูด/ลองจิจูด ค่านี้จะแสดงเป็นคู่ของค่าคู่เพื่อแสดงองศาละติจูดและลองจิจูด ออบเจ็กต์นี้ต้องเป็นไปตาม มาตรฐาน WGS84 เว้นแต่จะระบุไว้เป็นอย่างอื่น ค่าต้องอยู่ในช่วงมาตรฐาน
การแสดง JSON |
---|
{ "latitude": number, "longitude": number } |
ช่อง | |
---|---|
latitude |
ละติจูด หน่วยเป็นองศา โดยต้องอยู่ในช่วง [-90.0, +90.0] |
longitude |
ลองจิจูด หน่วยเป็นองศา โดยต้องอยู่ในช่วง [-180.0, +180.0] |
จุดบอกทาง
ห่อหุ้มจุดอ้างอิง จุดอ้างอิงจะระบุตำแหน่งขาเข้าและขาออกของ VisitRequests รวมถึงตำแหน่งเริ่มต้นและตำแหน่งของยานพาหนะ
การแสดง 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` <= `softStartTime` <= `endTime` and
0 <= `startTime` <= `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 |
ระบุแผนที่จากสตริง trafficTypes ไปจนถึงระยะเวลา ระยะเวลาคือเวลานอกเหนือจาก หากคำขอการเยี่ยมชมมีหลายประเภท ระบบจะเพิ่มระยะเวลาสำหรับแต่ละประเภทในแผนที่ ออบเจ็กต์ที่มีรายการคู่ |
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
กฎในการสร้างช่วงพักสำหรับยานพาหนะ (เช่น ช่วงพักกลางวัน) ช่วงพักคือช่วงเวลาต่อเนื่องกันระหว่างที่รถไม่มีความเคลื่อนไหว ณ ตำแหน่งปัจจุบัน และไม่สามารถออกตัวได้ อาจจะมีช่วงพักในกรณีต่อไปนี้
- ระหว่างการเดินทางระหว่างการเข้าชมสองครั้ง (ซึ่งรวมถึงเวลาก่อนหรือหลังการเข้าชมทันที แต่ไม่ได้ในระหว่างการเข้าชม) ในกรณีนี้ ระบบจะขยายเวลาขนส่งที่สอดคล้องกันระหว่างการเข้าชมเหล่านั้น
- หรือก่อนที่รถจะสตาร์ท (รถอาจไม่สตาร์ทขณะพัก) ซึ่งในกรณีนี้จะไม่ส่งผลต่อสตาร์ทรถ
- หรือหลังจากท้ายรถ (ตามด้วยเวลาสิ้นสุดของยานพาหนะ)
การแสดง 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 ชั่วโมง" ตัวอย่างดังกล่าวจะแปลเป็น 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/06 เป็นต้นไป ระบบจะรองรับเฉพาะขีดจำกัดชั่วคราวเท่านั้น |
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
ระบุข้อกำหนดระหว่างการจัดส่งตามประเภทการจัดส่ง โหมดข้อกำหนดจะเป็นตัวกำหนดรายการเฉพาะ
การแสดง 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
หลัง "แรก" ได้เริ่มขึ้นแล้ว
ลำดับความสำคัญหลายรายการอาจหมายถึงเหตุการณ์เดียวกัน (หรือเกี่ยวข้องกัน) เช่น "การรับสินค้าของ B เกิดขึ้นหลังจากการนำส่ง A" และ "การรับสินค้าของ C เกิดขึ้นหลังจากรับสินค้า B"
นอกจากนี้ ลำดับความสำคัญจะยังคงมีผลเฉพาะเมื่อดำเนินการจัดส่งทั้ง 2 รายการแล้วและจะไม่มีผล
การแสดง JSON |
---|
{ "firstIsDelivery": boolean, "secondIsDelivery": boolean, "offsetDuration": string, "firstIndex": integer, "secondIndex": integer } |
ช่อง | |
---|---|
firstIsDelivery |
ระบุว่าตัวเลือก "รายการแรก" กิจกรรมคือการส่ง |
secondIsDelivery |
ระบุว่า "วินาที" กิจกรรมคือการส่ง |
offsetDuration |
ระยะห่างระหว่าง "ตำแหน่งแรก" และ "วินาที" กิจกรรม อาจเป็นค่าลบก็ได้ ระยะเวลาเป็นวินาทีโดยมีเลขเศษส่วนไม่เกิน 9 หลัก ลงท้ายด้วย " |
firstIndex |
ดัชนีการจัดส่งของ "รายการแรก" กิจกรรม ต้องระบุฟิลด์นี้ |
secondIndex |
ดัชนีการจัดส่ง "วินาที" กิจกรรม ต้องระบุฟิลด์นี้ |