วัตถุประสงค์ของ Route Optimization API คือการวางแผนเส้นทางสำหรับกลุ่มยานพาหนะเพื่อ
เยี่ยมชมชุดสถานที่ตั้ง ออบเจ็กต์ OptimizeToursRequest
อธิบายคุณสมบัติของยานพาหนะและสถานที่เหล่านี้ และเป็นโครงสร้างหลักของ
ส่วนเนื้อหาคำขอของทุกปลายทาง
โครงสร้างพื้นฐานของออบเจ็กต์ OptimizeToursRequest
มีดังนี้
- ฟิลด์
model
มีข้อความShipmentModel
ที่มีฟิลด์คีย์ 2 รายการ ดังนี้
เอกสารนี้อธิบายข้อความประเภทต่อไปนี้
ShipmentModel
: มีรายการการจัดส่ง ยานพาหนะที่พร้อมให้บริการ และ ออบเจ็กต์อื่นๆ ที่อธิบายความสัมพันธ์ของรายการเหล่านั้นShipment
: อธิบายสถานที่ที่ยานพาหนะจะไป โดยอาจแสดงถึงพัสดุจริงที่ต้องไปรับและนำส่ง หรือสถานที่ที่คนขับยานพาหนะ ให้บริการVehicle
: อธิบายวิธีการขนส่งระหว่างสถานที่จัดส่ง ยานพาหนะแต่ละคันจะสอดคล้องกับยานพาหนะจริงหรือบุคคลที่เคลื่อนที่ ไปมาด้วยการเดินเท้า
ShipmentModel
ShipmentModel
มีองค์ประกอบของปัญหาการเพิ่มประสิทธิภาพเส้นทาง โดยมีชุดการจัดส่งที่ยานพาหนะชุดหนึ่งอาจดำเนินการได้ ขณะเดียวกันก็
พิจารณาข้อจํากัดและลดต้นทุนโดยรวม
ตารางด้านล่างอธิบายพร็อพเพอร์ตี้ที่เกี่ยวข้องบางอย่างของ ShipmentModel
พร็อพเพอร์ตี้ | คำอธิบาย |
---|---|
shipments และ vehicles |
ออบเจ็กต์ที่จำเป็นซึ่งมีรายละเอียดของการจัดส่งและยานพาหนะอย่างน้อย 1 รายการ |
globalStartTime และ globalEndTime |
ระบุจุดเริ่มต้นและจุดสิ้นสุดของกรอบเวลาที่ยานพาหนะทั้งหมดต้องจัดส่งสินค้าทั้งหมดให้เสร็จสมบูรณ์ แม้ว่าพร็อพเพอร์ตี้เหล่านี้จะไม่ใช่ข้อกำหนด แต่ขอแนะนำให้ระบุเนื่องจากเครื่องมือเพิ่มประสิทธิภาพจะทำงานได้ดีที่สุดเมื่อปฏิบัติตามข้อจำกัดด้านเวลา |
ดูรายการพร็อพเพอร์ตี้ทั้งหมดใน ShipmentModel
ได้ในเอกสารอ้างอิง
ShipmentModel
ตัวอย่าง
ในตัวอย่างนี้ คุณมีบริการรับฝากสุนัขและกำลังเริ่มสร้างคำขอ คุณจะกำหนดการจัดส่งและยานพาหนะในภายหลัง แต่ต้องการเริ่มต้นด้วยการตั้งเวลาทำการและต้นทุนการดำเนินงานรายชั่วโมง
สำหรับตัวอย่างนี้ ค่าพร็อพเพอร์ตี้ ShipmentModel
ในคำขอของคุณคือค่าต่อไปนี้
พร็อพเพอร์ตี้ | ค่า | คำอธิบาย |
---|---|---|
globalStartTime |
2024-02-13T00:00:00.000Z | วันที่และเวลาเริ่มต้นของเวลาทำการ |
globalEndTime |
2024-02-14T06:00:00.000Z | วันที่และเวลาสิ้นสุดของเวลาทำการ |
ต่อไปนี้คือตัวอย่างโค้ดของข้อความ ShipmentModel
ที่รวมค่าสถานการณ์ตัวอย่าง
{ "model": { "shipments": [ ... ], "vehicles": [ ... ], "globalStartTime": "2024-02-13T00:00:00.000Z", "globalEndTime": "2024-02-14T06:00:00.000Z" } }
Shipment
ประเภทข้อความ Shipment
จะกำหนดโครงสร้างพร็อพเพอร์ตี้ของการจัดส่งที่
สามารถนำส่งได้หรือบริการที่สามารถดำเนินการในเส้นทางได้
ดังที่แสดงในแผนภาพ
- ข้อความ
Shipment
มีข้อมูลทั้งหมดของการจัดส่งหรือบริการในชีวิตจริง - ข้อความ
Shipment
ทั้งหมดจะระบุไว้ในช่องshipments
- ฟิลด์
shipments
มีข้อความShipment
อย่างน้อย 1 รายการ
ข้อความ Shipment
ต้องมีออบเจ็กต์ pickups
หรือ deliveries
อย่างน้อย 1 รายการ
คำจำกัดความของออบเจ็กต์เหล่านี้มีดังนี้
pickups
ระบุสถานที่รับสินค้าของการจัดส่งdeliveries
กำหนดสถานที่นำส่งของการจัดส่ง- ทั้ง
pickups
และdeliveries
มีข้อความประเภทVisitRequest
ที่ กำหนดตำแหน่งและรายละเอียดอื่นๆ
ตารางต่อไปนี้อธิบายสถานการณ์ต่างๆ ตามการกำหนดค่าของ pickups
และ deliveries
ในข้อความ Shipment
สถานการณ์ | คำอธิบาย |
---|---|
pickups เท่านั้น |
ระบบจะถือว่าคุณรับเฉพาะการจัดส่ง |
deliveries เท่านั้น |
ระบบจะถือว่าคุณได้โหลดการจัดส่งล่วงหน้าหรือให้บริการแล้ว |
ทั้ง pickups และ deliveries |
ยานพาหนะที่ได้รับมอบหมายต้องรับสินค้าก่อน แล้วจึงนำส่ง เฉพาะยานพาหนะที่รับสินค้าเท่านั้นที่สามารถนำส่งได้ |
pickups หรือ deliveries หลายรายการ |
หากการจัดส่งแสดงความเป็นไปได้หลายอย่างสำหรับ pickups หรือ deliveries เครื่องมือเพิ่มประสิทธิภาพจะเลือกตัวเลือกการรับสินค้า 1 รายการและตัวเลือกการนำส่ง 1 รายการเพื่อใช้ โดยอิงตามการลดต้นทุนและเป็นไปตามข้อจำกัด |
ดูรายการพร็อพเพอร์ตี้ทั้งหมดใน Shipment
ได้ในเอกสารอ้างอิง
Shipment
ตัวอย่าง
ในตัวอย่างนี้ คุณมีบริการรับส่งสุนัขจากบ้านไปที่ศูนย์รับฝากสุนัข คุณต้องการตั้งค่าสถานที่รับ ของสุนัข 2 ตัว และตั้งค่าสถานที่นำส่งเป็นธุรกิจของคุณ
- บ้านของสุนัขตัวแรกอยู่ใน Coit Tower ซานฟรานซิสโก พิกัดของสถานที่นี้คือละติจูด 37.8024 และลองจิจูด -122.4058
- บ้านหลังที่ 2 ของสุนัขอยู่ในสวนสาธารณะ South Sunset Playground ในซานฟรานซิสโก พิกัดของสถานที่นี้คือละติจูด 37.7359 และลองจิจูด -122.5011
- รับเลี้ยงสุนัขแบบไปกลับของคุณอยู่ใน Mission Dolores Park, San Francisco พิกัดของสถานที่นี้คือละติจูด 37.759773 และลองจิจูด -122.427063
ต่อไปนี้คือตัวอย่างโค้ดของข้อความ Shipment
ซึ่งออบเจ็กต์ shipments
มีข้อความประเภท Shipment
2 รายการที่มีพิกัดตัวอย่าง
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] }, { "pickups": [ { "arrivalLocation": { "latitude": 37.7359, "longitude": -122.5011 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] } ], "vehicles": [ ... ] } }
Vehicle
ประเภทข้อความ Vehicle
จะกำหนดโครงสร้างพร็อพเพอร์ตี้ของยานพาหนะที่สามารถ
ทำการจัดส่งในเส้นทาง
ดังที่แสดงในแผนภาพ
- ข้อความ
Vehicle
มีข้อมูลทั้งหมดของยานพาหนะในชีวิตจริง - ข้อความ
Vehicle
ทั้งหมดจะระบุไว้ในช่องvehicles
- ฟิลด์
vehicles
มีข้อความVehicle
หลายรายการ
ตารางต่อไปนี้อธิบายพร็อพเพอร์ตี้ที่เกี่ยวข้องบางอย่างของ Vehicle
พร็อพเพอร์ตี้ | คำอธิบาย |
---|---|
startLocation และ endLocation |
ตำแหน่งเริ่มต้นและตำแหน่งสิ้นสุดของยานพาหนะ ซึ่งเป็นส่วนหนึ่งของเส้นทางที่เพิ่มประสิทธิภาพสุดท้าย หากไม่ได้กำหนดไว้ ระบบจะใช้ค่าเริ่มต้นเป็นสถานที่รับสินค้าสำหรับการจัดส่งครั้งแรกและสถานที่นำส่งสำหรับการจัดส่งครั้งสุดท้าย |
costPerHour , costPerKilometer , costPerTraveledHour |
พารามิเตอร์ต้นทุนเฉพาะยานพาหนะ เราขอแนะนำให้คุณมีพารามิเตอร์ต้นทุนอย่างน้อย 1 รายการในคำขอเพื่อให้ API แสดงเส้นทางที่เพิ่มประสิทธิภาพแล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าใช้จ่ายได้ที่แนวคิดหลักของรูปแบบต้นทุน |
startTimeWindows และ endTimeWindows |
กำหนดระยะเวลาที่ยานพาหนะสามารถวิ่งในเส้นทางได้ โดยต้องอยู่ในกรอบเวลา globalStartTime และ globalEndTime ที่ตั้งไว้ใน ShipmentModel แม้ว่าพร็อพเพอร์ตี้นี้จะไม่บังคับ แต่ขอแนะนำให้ระบุเนื่องจากเครื่องมือเพิ่มประสิทธิภาพจะทำงานได้ดีที่สุดเมื่อปฏิบัติตามข้อจำกัดด้านเวลา |
Vehicle
ตัวอย่าง
ในตัวอย่างนี้ คุณมีบริการรับฝากสุนัขและต้องการกำหนด
ตำแหน่งของยานพาหนะเมื่อเริ่มต้นและสิ้นสุดวัน รวมถึงปริมาณน้ำมันที่ใช้
คุณไม่จำเป็นต้องระบุเวลาทำการของยานพาหนะเนื่องจากตรงกับเวลาที่คุณกำหนดไว้ในพร็อพเพอร์ตี้ globalStartTime
และ globalEndTime
ภายในออบเจ็กต์ ShipmentModel
สำหรับตัวอย่างนี้ ค่าพร็อพเพอร์ตี้ Vehicle
ในคำขอของคุณคือค่าต่อไปนี้
พร็อพเพอร์ตี้ | ค่า | คำอธิบาย |
---|---|---|
startLocation |
latitude : 37.759773, longitude : -122.427063 |
พิกัดเริ่มต้นของเส้นทางสำหรับยานพาหนะ ซึ่งตรงกับสถานที่ตั้งของธุรกิจรับเลี้ยงสุนัขแบบไปกลับของคุณที่อยู่ใน Mission Dolores Park, San Francisco |
endLocation |
latitude : 37.759773, longitude : -122.427063 |
พิกัดปลายทางของเส้นทางสำหรับยานพาหนะ ซึ่งตรงกับสถานที่ตั้งของธุรกิจรับเลี้ยงสุนัขแบบไปกลับของคุณที่อยู่ใน Mission Dolores Park, San Francisco |
costPerHour |
27 | คุณจ่ายค่าจ้างคนขับรถรับส่งสุนัขเท่าไหร่ คุณจ่ายเงินให้คนขับ 27 ดอลลาร์ต่อชั่วโมง |
ต่อไปนี้คือตัวอย่างโค้ดของข้อความ Vehicle
ที่รวมค่าสถานการณ์ตัวอย่าง
{ "model": { "shipments": [ ... ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "costPerHour": 27 } ] } }
ดูรายการพร็อพเพอร์ตี้ทั้งหมดใน Vehicle
ได้ในเอกสารอ้างอิง
ตัวอย่างคำขอที่สมบูรณ์
ตัวอย่างโค้ดต่อไปนี้แสดงตัวอย่างคำขอที่สมบูรณ์ โดยรวมตัวอย่าง ShipmentModel
, Shipment
และ Vehicle
ที่แสดงในเอกสารนี้
{ "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.8024, "longitude": -122.4058 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] }, { "pickups": [ { "arrivalLocation": { "latitude": 37.7359, "longitude": -122.5011 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.759773, "longitude": -122.427063 } } ] } ], "vehicles": [ { "startLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "endLocation": { "latitude": 37.759773, "longitude": -122.427063 }, "costPerHour": 27 } ], "globalStartTime": "2024-02-13T00:00:00.000Z", "globalEndTime": "2024-02-14T06:00:00.000Z" } }