ตัวอย่างนี้แสดงการเพิ่มประสิทธิภาพพื้นฐานของลำดับจุดแวะพักที่กำหนดให้กับ ยานพาหนะที่มีพารามิเตอร์ต้นทุนพื้นฐาน ซึ่งจะช่วยให้มั่นใจได้ว่าระบบจะแวะจอดทุกจุด ภายในกรอบเวลาที่ระบุตามลำดับที่คุ้มค่าที่สุด
ตัวอย่างคำขอ
คำขอตัวอย่างนี้มีพารามิเตอร์หลักต่อไปนี้
populatePolylinesและpopulateTransitionPolylines: ตั้งค่า เป็นtrueเพื่อรับเส้นทางโพลีไลน์ที่เข้ารหัสสำหรับเส้นทางของยานพาหนะglobalStartTimeและglobalEndTime: กำหนดกรอบเวลา 24 ชั่วโมง ซึ่งต้องทำกิจกรรมทั้งหมดให้เสร็จสมบูรณ์ ดูข้อมูลเพิ่มเติมเกี่ยวกับกรอบเวลาในแนวคิดหลักของกรอบเวลาshipments: กำหนดการจัดส่ง 3 รายการ โดยแต่ละรายการมีการรับสินค้าจาก สถานที่ตั้งคลังสินค้าทั่วไปและการนำส่งไปยังปลายทางที่ไม่ซ้ำกัน เนื่องจากคุณไม่ได้ตั้งค่าpenaltyCostการจัดส่งทั้งหมดจึงเป็นแบบบังคับvehicles: กำหนดรถ 1 คันที่มีจุดเริ่มต้นและจุดสิ้นสุดร่วมกัน ระบุcostPerKilometerและcostPerHourเพื่อเป็นแนวทางให้ เครื่องมือเพิ่มประสิทธิภาพค้นหาเส้นทางที่ถูกที่สุด ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าใช้จ่ายในแนวคิดหลักของรูปแบบต้นทุน
ดูตัวอย่างคำขอ
{ "populatePolylines": true, "populateTransitionPolylines": true, "model": { "globalStartTime": "2023-01-13T16:00:00-08:00", "globalEndTime": "2023-01-14T16:00:00-08:00", "shipments": [ { "deliveries": [ { "arrivalLocation": { "latitude": 37.789456, "longitude": -122.390192 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ] }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.789116, "longitude": -122.395080 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ] }, { "deliveries": [ { "arrivalLocation": { "latitude": 37.795242, "longitude": -122.399347 }, "duration": "250s" } ], "pickups": [ { "arrivalLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "duration": "150s" } ] } ], "vehicles": [ { "endLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "startLocation": { "latitude": 37.794465, "longitude": -122.394839 }, "costPerKilometer": 10.0, "costPerHour": 40.0 } ] } }
ตัวอย่างการตอบกลับ
การตอบกลับจะมีฟิลด์ routes ระดับบนสุดที่แสดงเส้นทางที่แนะนำ โดยมี 1 เส้นทางต่อยานพาหนะ 1 คัน เนื่องจากคำขอตัวอย่างในคำแนะนำนี้ระบุยานพาหนะเพียงคันเดียว routes จึงมีข้อความ ShipmentRoute เพียงข้อความเดียว
ดูการตอบกลับคำขอตัวอย่าง
{ "routes": [ { "vehicleStartTime": "2023-01-14T00:00:00Z", "vehicleEndTime": "2023-01-14T00:36:41Z", "visits": [ { "shipmentIndex": 2, "isPickup": true, "startTime": "2023-01-14T00:00:00Z", "detour": "0s" }, { "shipmentIndex": 1, "isPickup": true, "startTime": "2023-01-14T00:02:30Z", "detour": "150s" }, { "isPickup": true, "startTime": "2023-01-14T00:05:00Z", "detour": "300s" }, { "startTime": "2023-01-14T00:11:25Z", "detour": "0s" }, { "shipmentIndex": 1, "startTime": "2023-01-14T00:19:29Z", "detour": "503s" }, { "shipmentIndex": 2, "startTime": "2023-01-14T00:29:02Z", "detour": "1324s" } ], "transitions": [ { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:00:00Z", "routePolyline": {} }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:02:30Z", "routePolyline": {} }, { "travelDuration": "0s", "waitDuration": "0s", "totalDuration": "0s", "startTime": "2023-01-14T00:05:00Z", "routePolyline": {} }, { "travelDuration": "235s", "travelDistanceMeters": 795, "waitDuration": "0s", "totalDuration": "235s", "startTime": "2023-01-14T00:07:30Z", "routePolyline": { "points": "kvteFtfjVAA?C?C@C?A?C@AFMj@s@JKb@k@Zc@LSjA}ARWDGdAxAdAvAXa@@k@AsA\\c@FKp@_A\\c@Ze@fA{ALSFGd@o@rAgBB{BZc@" } }, { "travelDuration": "234s", "travelDistanceMeters": 793, "waitDuration": "0s", "totalDuration": "234s", "startTime": "2023-01-14T00:15:35Z", "routePolyline": { "points": "cwseFti_jVRWj@w@x@eAHLNRHJbApAHLX\\V^?@hA~AT\\PVFFDHDFJNp@~@NRLNNTFFUZIJY^Y^g@p@[`@KP{@fAEFSXe@l@c@h@WZY\\?BELk@v@MNa@l@" } }, { "travelDuration": "323s", "travelDistanceMeters": 1204, "waitDuration": "0s", "totalDuration": "323s", "startTime": "2023-01-14T00:23:39Z", "routePolyline": { "points": "cuseFhjVSTY`@Yb@GHEDIJEF]f@IJi@r@oAbBeCfDKLaApAKNQVIPKPCDQJIBIBM@iAJeALqBVC@C?A?QBYDI@C?_@Dc@FO@a@FDp@HfAHvABVDl@Dj@PpCQDiALsALAQASKwAOgBEe@COCYEa@Es@Eg@" } }, { "travelDuration": "209s", "travelDistanceMeters": 665, "waitDuration": "0s", "totalDuration": "209s", "startTime": "2023-01-14T00:33:12Z", "routePolyline": { "points": "{zteFxbajV?CAYEc@AMC_@AOAK?E?CCWAOAKCe@CY?WScDEm@d@EFA\\ENCB?XEVC^E`@EhBUVCNEB?@?\\Er@IMUe@k@k@w@AAMQa@i@SWQWMQi@u@AC?A" } } ], "routePolyline": { "points": "kvteFtfjVAA?C?C@C?A?C@AFMj@s@JKb@k@Zc@LSjA}ARWDGdAxAdAvAXa@@k@AsA\\c@FKp@_A\\c@Ze@fA{ALSFGd@o@rAgBB{BZc@RWj@w@x@eAHLNRHJbApAHLX\\V^?@hA~AT\\PVFFDHDFJNp@~@NRLNNTFFUZIJY^Y^g@p@[@KP{@fAEFSXe@l@c@h@WZY\\?BELk@v@MNa@l@STY@Yb@GHEDIJEF]f@IJi@r@oAbBeCfDKLaApAKNQVIPKPCDQJIBIBM@iAJeALqBVC@C?A?QBYDI@C?_@Dc@FO@a@FDp@HfAHvABVDl@Dj@PpCQDiALsALAQASKwAOgBEe@COCYEa@Es@Eg@?CAYEc@AMC_@AOAK?E?CCWAOAKCe@CY?WScDEm@d@EFA\\ENCB?XEVC^E`@EhBUVCNEB?@?\\Er@IMUe@k@k@w@AAMQa@i@SWQWMQi@u@AC?A" }, "metrics": { "performedShipmentCount": 3, "travelDuration": "1001s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "1200s", "totalDuration": "2201s", "travelDistanceMeters": 3457 }, "travelSteps": [ { "duration": "0s", "routePolyline": {} }, { "duration": "0s", "routePolyline": {} }, { "duration": "0s", "routePolyline": {} }, { "duration": "227s", "distanceMeters": 794, "routePolyline": { "points": "kvteFtfjVAA?C?C@C?A?C@AFMj@s@JKb@k@Zc@LSjA}ARWDGdAxAdAvAXa@@k@AsA\\c@FKp@_A\\c@Ze@fA{ALSFGd@o@rAgBB{BZc@" } }, { "duration": "233s", "distanceMeters": 791, "routePolyline": { "points": "cwseFti_jVRWj@w@x@eAHLNRHJbApAHLX\\V^?@hA~AT\\PVFFDHDFJNp@~@NRLNNTFFUZIJY^Y^g@p@[`@KP{@fAEFSXe@l@c@h@WZY\\?BELk@v@MNa@l@" } }, { "duration": "322s", "distanceMeters": 1205, "routePolyline": { "points": "cuseFhjVSTY`@Yb@GHEDIJEF]f@IJi@r@oAbBeCfDKLaApAKNQVIPKPCDQJIBIBM@iAJeALqBVC@C?A?QBYDI@C?_@Dc@FO@a@FDp@HfAHvABVDl@Dj@PpCQDiALsALAQASKwAOgBEe@COCYEa@Es@Eg@" } }, { "duration": "208s", "distanceMeters": 666, "routePolyline": { "points": "{zteFxbajV?CAYEc@AMC_@AOAK?E?CCWAOAKCe@CY?WScDEm@d@EFA\\ENCB?XEVC^E`@EhBUVCNEB?@?\\Er@IMUe@k@k@w@AAMQa@i@SWQWMQi@u@AC?A" } } ], "vehicleDetour": "2201s", "routeCosts": { "model.vehicles.cost_per_hour": 24.455555555555556, "model.vehicles.cost_per_kilometer": 34.57 }, "routeTotalCost": 59.025555555555556 } ], "totalCost": 59.025555555555556, "metrics": { "aggregatedRouteMetrics": { "performedShipmentCount": 3, "travelDuration": "1001s", "waitDuration": "0s", "delayDuration": "0s", "breakDuration": "0s", "visitDuration": "1200s", "totalDuration": "2201s", "travelDistanceMeters": 3457 }, "usedVehicleCount": 1, "earliestVehicleStartTime": "2023-01-14T00:00:00Z", "latestVehicleEndTime": "2023-01-14T00:36:41Z", "totalCost": 59.025555555555556, "costs": { "model.vehicles.cost_per_kilometer": 34.57, "model.vehicles.cost_per_hour": 24.455555555555556 } } }
เส้นทางยานพาหนะที่สมบูรณ์จะอธิบายโดยฟิลด์ต่อไปนี้
visits: อาร์เรย์นี้แสดงรายการการรับและการนำส่งทั้งหมดตามลำดับที่ได้รับการเพิ่มประสิทธิภาพ ในตัวอย่างนี้ เครื่องมือเพิ่มประสิทธิภาพระบุว่าลำดับที่มีประสิทธิภาพมากที่สุดคือการรับสินค้าทั้ง 3 รายการจากคลังก่อน แล้วจึงนำส่งtransitions: อาร์เรย์นี้แสดงรายการกลุ่มการเดินทางระหว่างการเข้าชมแต่ละครั้ง เนื่องจากมีการรับสินค้าทั้ง 3 รายการที่สถานที่เดียวกัน การเปลี่ยนผ่าน 3 รายการแรกจึงมีtravelDurationเป็น "0s"routePolyline: เส้นหลายเส้นระดับบนสุดแสดงเส้นทางทั้งหมด ของยานพาหนะตั้งแต่ต้นจนจบ นอกจากนี้ คุณยังเห็นเส้นหลายส่วนขนาดเล็กภายในtransitionออบเจ็กต์แต่ละรายการซึ่งแสดงถึงช่วงการเดินทางแต่ละช่วงได้ด้วย หมายเหตุ: คุณสามารถแสดงภาพเส้นหลายส่วนเหล่านี้และเส้นหลายส่วนอื่นๆ ได้โดยใช้เครื่องมือเข้ารหัสเส้นหลายส่วนแบบอินเทอร์แอกทีฟ