หน้านี้อธิบายอายุการใช้งานของแผนเส้นทางโดยใช้ Route Optimization API โดยเริ่มจากการระบุความต้องการในการกำหนดเส้นทางและสิ้นสุดด้วยแผนเส้นทางแบบผสานรวมในระบบของคุณ
เมื่อทำตามขั้นตอนของแผนเส้นทาง คุณจะบรรลุวัตถุประสงค์ต่อไปนี้ได้
- แมปการดำเนินการของกลุ่มยานพาหนะ: แปลงกลุ่มยานพาหนะจริง ข้อจำกัดที่ซับซ้อน และเป้าหมายทางธุรกิจเป็นโค้ดสำหรับ API
- เพิ่มประสิทธิภาพแผนเส้นทางสำหรับธุรกิจ: ทำความเข้าใจวิธีปรับแต่งแผนเส้นทางเพื่อให้บรรลุเป้าหมายและปรับปรุงการดำเนินงานประจำวัน
- นำไปใช้งานจริง: นำแผนเส้นทางไปใช้โดยรวมไว้ในการดำเนินงานประจำวัน
แผนภาพต่อไปนี้แสดงอายุการใช้งานของแผนเส้นทาง
ระยะการติดตั้งใช้งานของแผนเส้นทางจะเกิดขึ้นเมื่อคุณผสานรวม API เป็นครั้งแรกหรือเมื่อข้อกำหนดทางธุรกิจมีการเปลี่ยนแปลงอย่างมาก โดยครอบคลุมระยะที่ 1 ถึง 5
ระยะการดำเนินการรายวันจะใช้ทรัพยากรน้อยกว่าและมีการปรับแต่งเพียงเล็กน้อย ซึ่งครอบคลุมขั้นตอนที่ 2 ถึง 4
อายุการใช้งานของระยะเส้นทางมีดังนี้
- กำหนดขอบเขตปัญหา: ระบุและจัดระเบียบวัตถุประสงค์ ทรัพยากร งาน และข้อจำกัดเพื่อให้เห็นภาพรวมของการดำเนินการก่อนเริ่มใช้ API
- แมปข้อมูล: แปลงข้อมูลจริงของธุรกิจเป็นพารามิเตอร์ API เพื่อให้แผนเส้นทางแสดงวิธีที่คุณต้องการให้กลุ่มยานพาหนะทำงาน
- สร้างคำขอและรับแผนเส้นทาง: ป้อนข้อมูลลงใน API และรับแผนเส้นทางที่เพิ่มประสิทธิภาพแล้ว
- ปรับแต่งแผนเส้นทาง: ทดสอบแผนเส้นทางและปรับปรุงซ้ำโดยปรับข้อจำกัดและวัตถุประสงค์เพื่อให้แน่ใจว่าครอบคลุมความต้องการทั้งหมด
- ผสานรวมแผนเส้นทาง: เชื่อมต่อแผนเส้นทางกับระบบที่มีอยู่เพื่อแสดงการนำทางที่นำไปใช้ได้จริง
กำหนดขอบเขตปัญหา
ก่อนใช้ API คุณต้องจัดระเบียบรายละเอียดการดำเนินการในแต่ละวันให้เป็นหมวดหมู่ข้อมูลที่ชัดเจน ซึ่งจะช่วยให้คุณเริ่มกระบวนการติดตั้งใช้งานได้อย่างชัดเจนว่าทรัพยากรและงานปัจจุบันของคุณคืออะไร มีข้อจำกัดอะไรบ้าง และวัตถุประสงค์ที่คุณต้องการบรรลุด้วยกลุ่มยานพาหนะของคุณคืออะไร
ระบุทรัพยากรและงาน
ขั้นตอนสำคัญเมื่อวางแผนเส้นทางคือการระบุทรัพยากรและงาน ซึ่งก็คือยานพาหนะและการจัดส่ง
| ยานพาหนะ | การจัดส่ง |
|---|---|
|
|
ระบุข้อจำกัด
ข้อจำกัดคือขีดจำกัดและข้อจำกัดเกี่ยวกับวิธีใช้ยานพาหนะและวิธีจัดการการจัดส่ง เนื่องจากเป็นตัวกำหนดการดำเนินงานส่วนใหญ่และมีความสำคัญอย่างยิ่งเมื่อสร้างแผนเส้นทางที่เพิ่มประสิทธิภาพ
โดยทั่วไปแล้ว ข้อจำกัดจะแบ่งออกเป็น 2 หมวดหมู่ ได้แก่
| ข้อจำกัดที่เข้มงวด | ข้อจำกัดแบบยืดหยุ่น |
|---|---|
| ซึ่งเป็นขีดจำกัดที่ไม่สามารถละเมิดได้ เช่น รถบรรทุกไม่สามารถบรรทุกน้ำหนักเกินความจุสูงสุด และคนขับไม่สามารถรับสินค้าหลังจากร้านค้าปิดแล้ว | ค่ากำหนดเหล่านี้สามารถละเมิดได้หากจำเป็น โดยปกติแล้วจะมีค่าใช้จ่ายในการละเมิด เช่น คุณอาจต้องการบรรทุกสินค้าในรถบรรทุกเพียง 80% ของความจุ หรือนำส่งก่อนเวลาเป้าหมาย แต่คุณก็ยอมรับได้หากเกินขีดจำกัดเหล่านี้เพื่อให้ได้เส้นทางที่ดีขึ้น |
ข้อจำกัดที่พบบ่อยมีดังนี้
- ขีดจำกัดความจุ: น้ำหนัก ปริมาตร หรือจำนวนสินค้าสูงสุดที่ยานพาหนะสามารถบรรทุกได้
- กรอบเวลา: ช่วงเวลาที่เจาะจงซึ่งสถานที่เปิดให้เข้าชม หรือช่วงเวลาที่เจาะจงของกะการทำงานของคนขับรถ
- ต้นทุน: ต้นทุนในการใช้ยานพาหนะหรือการข้ามการจัดส่ง เป้าหมายหลักอย่างหนึ่งของ API คือการสร้างแผนเส้นทางที่คุ้มค่า
- ช่วงพักของคนขับ: ระยะเวลาพักของคนขับที่กฎหมายแรงงานมักกำหนดไว้หลังจากทำงานเป็นจำนวนชั่วโมงที่กำหนด
กำหนดวัตถุประสงค์ทางธุรกิจ
เมื่อคุณกำหนดทรัพยากรและงาน รวมถึงข้อจำกัดของทรัพยากรและงานเหล่านั้นแล้ว ก็ถึงเวลากำหนดเมตริกที่สำคัญต่อธุรกิจของคุณมากที่สุด วัตถุประสงค์เหล่านี้จะมาพร้อมกับข้อจำกัด และช่วยให้คุณตัดสินใจได้ว่าสิ่งใดสำคัญที่สุดเมื่อวางแผนเส้นทาง
ตัวอย่างวัตถุประสงค์ทางธุรกิจมีดังนี้
| จำนวนยานพาหนะ | ระยะทาง | เวลา | ค่าใช้จ่าย |
|---|---|---|---|
| คุณต้องการลดจำนวนยานพาหนะที่ใช้ หรือใช้ยานพาหนะทั้งหมดเพื่อให้งานเสร็จเร็วขึ้น | คุณต้องการเส้นทางที่สั้นที่สุดเพื่อประหยัดเชื้อเพลิง หรือต้องการเส้นทางที่เร็วกว่าซึ่งอาจยาวกว่าเนื่องจากใช้ทางหลวง | คุณต้องการลดจำนวนชั่วโมงการทำงานทั้งหมด หรือให้ความสำคัญกับการไปถึงในเวลาที่กำหนดซึ่งอาจทำให้ใช้เวลาเดินทางนานขึ้น | คุณต้องการลดค่าใช้จ่ายในการดำเนินงาน เช่น ค่าจ้างและค่าน้ำมัน หรือยอมรับค่าใช้จ่ายที่สูงขึ้นเพื่อให้ทันกำหนดเวลาที่เข้มงวดหรือไม่ |
แมปข้อมูล
เมื่อรวบรวมข้อมูลแล้ว ให้แมปข้อมูลให้ตรงกับพร็อพเพอร์ตี้ของ API ซึ่งจะช่วยให้เครื่องมือเพิ่มประสิทธิภาพมีข้อมูลทั้งหมดในการแสดงแผนเส้นทางที่คำนึงถึงความเป็นจริงทางธุรกิจของคุณ
ใช้พารามิเตอร์ในตารางถัดไปเพื่อแมปทรัพยากร งาน ข้อจำกัด และวัตถุประสงค์ที่คุณแมปไว้ในส่วนกำหนดขอบเขตปัญหา
การแมปตัวแปร
| แนวคิดในสถานการณ์จริง | พารามิเตอร์ API | คำอธิบาย |
|---|---|---|
| คนขับหรือยานพาหนะ | model.vehicles[] |
แสดงถึงยานพาหนะคันเดียวในกลุ่มยานพาหนะ |
| สถานที่ตั้งของศูนย์ซ่อม |
vehicles[].startWaypointvehicles[].endWaypoint
|
ตำแหน่งที่ยานพาหนะเริ่มต้นและสิ้นสุดเส้นทาง |
| เวลาทำการ |
model.globalStartTimemodel.globalEndTime
|
เวลาเริ่มต้นเร็วที่สุดและเวลาสิ้นสุดช้าที่สุดสำหรับการดำเนินการของทั้งกลุ่มยานพาหนะ |
| งานหรือแพ็กเกจ | model.shipments[] |
แสดงถึงงาน ซึ่งอาจเป็นpickup, delivery หรือทั้ง 2 อย่าง |
| สถานที่ทำงาน |
pickups[].arrivalWaypointdeliveries[].arrivalWaypoint
|
สถานที่ตั้งทางภูมิศาสตร์ที่งานเกิดขึ้น |
| เวลาให้บริการ |
pickups[].durationdeliveries[].duration
|
เวลาที่ใช้ในสถานที่เพื่อทำงานให้เสร็จ (เช่น การนำของลง) โดยไม่รวมระยะเวลาเดินทาง |
การแมปข้อจำกัด
| ข้อจำกัดในสถานการณ์จริง | พารามิเตอร์ API | คำอธิบาย |
|---|---|---|
| ความจุของยานพาหนะ | vehicles[].loadLimits |
กำหนดขีดจำกัดที่เข้มงวดหรือยืดหยุ่นสำหรับความจุของยานพาหนะ หาก loadDemand ของการจัดส่งเกินขีดจำกัดที่เหลืออยู่ ระบบจะไม่มอบหมายการจัดส่งนั้น |
| ขนาดพัสดุ | shipments[].loadDemands |
ปริมาณความจุของยานพาหนะที่การจัดส่งใช้ |
| ข้อจำกัดของยานพาหนะ | shipments[].allowedVehicleIndices |
จำกัดการจัดส่งเพื่อให้สามารถรับหรือนำส่งได้โดยยานพาหนะหรือคนขับที่เฉพาะเจาะจงเท่านั้น |
| เวลาที่เปิดให้บริการ | shipments[].pickups[].timeWindows หรือ shipments[].deliveries[].timeWindows |
กำหนดเวลาที่สามารถเข้าชมสถานที่ได้ หากยานพาหนะไม่สามารถมาถึงภายในกรอบเวลานี้ ระบบจะข้ามการจัดส่งนั้น |
| ขีดจำกัดระยะเวลาของกะ | vehicles[].routeDurationLimit |
กำหนดขีดจำกัดแบบเข้มงวดหรือแบบยืดหยุ่นสำหรับระยะเวลาที่คนขับรถรายหนึ่งๆ สามารถทำงานได้ (เช่น สูงสุด 8 ชั่วโมง) โดยไม่คำนึงถึงเวลาสิ้นสุดโดยรวม |
| การหยุดพักของคนขับ | vehicles[].breakRule |
บังคับใช้กฎการพักผ่อนที่เฉพาะเจาะจง เช่น การหยุดพักตามข้อบังคับหลังจากทำงานเป็นเวลาหลายชั่วโมง |
| ข้อจำกัดบนถนน | vehicles[].travelMode |
ระบุรูปแบบการเดินทาง (เช่น DRIVE หรือ BICYCLE) ซึ่งจะจำกัดเส้นทางให้อยู่บนถนนที่ถูกต้องตามกฎหมายและกำหนดความเร็วที่ใช้ในการคำนวณระยะเวลาเดินทาง |
การแมปวัตถุประสงค์
| วัตถุประสงค์ในชีวิตจริง | พารามิเตอร์ API | คำอธิบาย |
|---|---|---|
| ลดขนาดกลุ่มอุปกรณ์ | vehicles[].fixedCost |
ใช้ค่าใช้จ่ายแบบครั้งเดียวสำหรับการใช้ยานพาหนะ ต้นทุนคงที่สูงจะบังคับให้เส้นทางให้ความสำคัญกับการใช้ยานพาหนะน้อยลงมากกว่าการเพิ่มระยะทางหรือเวลาทำงานทั้งหมด |
| ลดระยะทาง | vehicles[].costPerKilometer |
ใช้ค่าใช้จ่ายสำหรับทุกกิโลเมตรที่เดินทาง ให้ความสำคัญกับเส้นทางที่สั้นกว่าเพื่อประหยัดเชื้อเพลิงและลดการสึกหรอ |
| ลดเวลารวม | vehicles[].costPerHour |
ใช้ค่าใช้จ่ายสำหรับทุกชั่วโมงที่ยานพาหนะทำงาน (รวมถึงเวลาเดินทางและเวลารอ) ให้ความสำคัญกับการดำเนินการให้เสร็จเร็วขึ้น |
| ลดเวลาขับรถ | vehicles[].costPerTraveledHour |
ใช้ค่าใช้จ่ายสำหรับเวลาที่ใช้ในการเคลื่อนย้ายโดยเฉพาะ ซึ่งจะแยกความแตกต่างระหว่างการนั่งรถติด (แพง) กับการรอที่ป้ายรถเมล์(อาจถูกกว่า) |
| จัดลำดับความสำคัญของงานบางอย่าง | shipments[].penaltyCost |
ใช้ต้นทุนหากข้ามการจัดส่งที่เฉพาะเจาะจง การตั้งค่านี้ให้สูงจะช่วยให้มั่นใจได้ว่าระบบจะให้ความสำคัญกับงานที่สำคัญมากกว่างานที่ไม่บังคับ |
สร้างคำขอและรับการตอบกลับ
การใช้ Route Optimization API เพื่อสร้างแผนเส้นทางประกอบด้วยขั้นตอนต่อไปนี้
- กำหนดค่าสภาพแวดล้อม: ตั้งค่าโปรเจ็กต์ Google Cloud, เปิดใช้ API และกำหนดค่าการตรวจสอบสิทธิ์ โปรดดูวิธีการที่หัวข้อเริ่มต้นใช้งาน คุณต้องทำตามขั้นตอนนี้เพียงครั้งเดียวเท่านั้น
- ส่งคำขอ: สร้างเนื้อหาคำขอโดยใช้การแมปข้อมูลที่กำหนดไว้ในส่วนก่อนหน้า ดูข้อมูลเกี่ยวกับปลายทาง ส่วนหัว และการจัดรูปแบบคำขอได้ที่หัวข้อส่งคำขอ API
- ทำความเข้าใจการตอบกลับ: เมื่อได้รับการตอบกลับจาก API แล้ว ให้ทำความเข้าใจแผนเส้นทางและความหมายของพารามิเตอร์แต่ละรายการ ดูตีความการตอบกลับ
ปรับแต่งแผนเส้นทาง
การแปลโลจิสติกส์ในชีวิตจริงเป็นต้นทุนและข้อจำกัดของ API เป็นงานที่ซับซ้อน แผนเส้นทางเริ่มต้นอาจไม่ตรงกับวัตถุประสงค์ทางธุรกิจหรือความคาดหวังของคนขับ การปรับแต่งแผนเส้นทางเป็นกระบวนการทดสอบเส้นทางที่แสดงผลและปรับพารามิเตอร์ซ้ำๆ จนกว่าคุณจะพบการตั้งค่าที่บรรลุเป้าหมาย
ปรับวัตถุประสงค์และข้อจำกัด
หากแผนเส้นทางที่สร้างขึ้นไม่ตรงกับความต้องการ คุณสามารถแก้ไขพารามิเตอร์บางอย่างเพื่อให้ได้ผลลัพธ์ที่แตกต่างออกไป การจำกัดหรือผ่อนคลายพารามิเตอร์จะเปลี่ยนวิธีแก้ปัญหาเป้าหมายที่ขัดแย้งกันในแผนเส้นทาง และการผ่อนคลายพารามิเตอร์เป็นวิธีที่มีประสิทธิภาพในการค้นหาพารามิเตอร์ที่ทำให้เกิดข้อผิดพลาดในแผนเส้นทาง
ตารางต่อไปนี้แสดงปัญหาการกำหนดเส้นทางที่พบบ่อยและพารามิเตอร์ที่คุณสามารถปรับเพื่อแก้ไขปัญหาได้
| สถานการณ์ | พารามิเตอร์ | การปรับราคาเสนอ | คำอธิบาย |
|---|---|---|---|
| ข้ามการจัดส่งที่สำคัญ | shipments[].penaltyCost |
เพิ่มมูลค่า หรือเพิ่มค่าใช้จ่ายในการปรับให้กับพัสดุอื่นๆ | หากการจัดส่งเป็นแบบไม่บังคับ ให้เพิ่มค่าใช้จ่ายในการปรับเพื่อจัดลำดับความสำคัญ หากการจัดส่งเป็นแบบบังคับ (ไม่มีค่าปรับ) ให้เพิ่มค่าปรับให้กับการจัดส่งอื่นๆ ที่มีความสำคัญน้อยกว่า ซึ่งทำให้การจัดส่งเหล่านี้เป็นตัวเลือกเสริม และช่วยประหยัดเวลาและพื้นที่ในยานพาหนะสำหรับการจัดส่งที่สำคัญ |
| ข้ามการจัดส่งเนื่องจากเวลา | softStartTime / softEndTime |
เพิ่มกรอบเวลาแบบยืดหยุ่น | กรอบเวลาที่เข้มงวดจะยกเลิกงานที่ล่าช้าแม้เพียง 1 นาที กรอบเวลาแบบยืดหยุ่นช่วยให้คนขับมาถึงช้ากว่ากำหนดเล็กน้อยได้โดยจ่าย "ค่าใช้จ่าย" แทนที่จะไม่สามารถทำงานได้สำเร็จ |
| ข้ามการจัดส่งเนื่องจากน้ำหนัก | loadLimits[].softMaxLoad และ costPerUnitAbove |
เพิ่มความต้องการโหลดแบบซอฟต์ | อนุญาตให้ยานพาหนะบรรทุกเกินความจุที่เหมาะสมเล็กน้อย (โดยมีค่าปรับ) แทนที่จะทิ้งพัสดุไว้ |
| ข้ามการจัดส่งเนื่องจากกลุ่มยานพาหนะมีภาระงานมากเกินไป | model.vehicles[] หรือ shipments[].timeWindows |
เพิ่มยานพาหนะหรือผ่อนปรนกรอบเวลา | หากมีการจัดส่งมากเกินไปสำหรับกลุ่มยานพาหนะปัจจุบัน โดยเฉพาะในช่วงเวลาที่มีการใช้พลังงานสูงสุด ให้เพิ่มยานพาหนะหรือขยายกรอบเวลาการนำส่งเพื่อกระจายภาระงาน |
| เส้นทางยาวเกินไปหรือไม่มีประสิทธิภาพ | vehicles[].costPerKilometer / costPerHour |
เพิ่มต้นทุนหรือเพิ่มมูลค่า | บอก API ว่าการเดินทางมีค่าใช้จ่ายสูง ซึ่งจะกระตุ้นให้ API ละทิ้งจุดแวะพักที่อยู่ห่างไกลและแยกต่างหากเพื่อสร้างเส้นทางที่กระชับยิ่งขึ้นสำหรับกลุ่มยานพาหนะ |
| กะการทำงานของคนขับนานเกินไป | vehicles[].routeDurationLimit หรือ model.vehicles[] |
เพิ่มขีดจำกัดระยะเวลา หรือเพิ่มยานพาหนะและขีดจำกัด | บังคับใช้ขีดจำกัดสูงสุด (เช่น 8 ชั่วโมง) สำหรับเวลาทั้งหมดที่คนขับใช้บนท้องถนน การเพิ่มยานพาหนะเพียงอย่างเดียวจะไม่ทำให้เส้นทางสั้นลง เว้นแต่คุณจะใช้ขีดจำกัดระยะเวลาเพื่อบังคับให้โปรแกรมแก้ปัญหากระจายภาระงานไปยังกลุ่มยานพาหนะที่ใหญ่ขึ้นด้วย |
อัปเดตแผนเส้นทาง
คุณมักจะต้องอัปเดตแผนเส้นทางโดยที่ยังคงฐานไว้เหมือนเดิม เช่น การเพิ่มจุดรับพัสดุลงในกำหนดการของคนขับที่กำลังทำงานอยู่ โดยใช้พารามิเตอร์การแทรก ซึ่งจะช่วยให้ API เริ่มต้นโดยอิงตามโซลูชันก่อนหน้าของคุณ ซึ่งจะช่วยให้แก้ไขแผนที่มีอยู่ได้แทนที่จะคำนวณแผนใหม่ตั้งแต่ต้น
วิธีต่างๆ ในการอัปเดตแผนเส้นทางด้วยพารามิเตอร์การแทรกมีดังนี้
- ส่งเส้นทางจากการตอบกลับก่อนหน้าไปยังช่อง
injectedFirstSolutionRoutesของคำขอใหม่ ซึ่งจะช่วยเร่งการค้นหาการเพิ่มประสิทธิภาพและมีประโยชน์สำหรับการวางแผนใหม่ก่อนที่การดำเนินการประจำวันจะเริ่มต้นขึ้น เช่น การรวมการจัดส่งในนาทีสุดท้าย - ควบคุมระดับการเปลี่ยนแปลงโดยใช้ช่อง
injectedSolutionConstraintซึ่งจะเป็นประโยชน์เมื่อการดำเนินการกำลังดำเนินอยู่ โดยจะช่วยให้คุณคงลำดับปัจจุบันของคนขับหรือแก้ไขส่วนของแผนที่ดำเนินการไปแล้วได้ - ตรวจสอบว่าเส้นทางที่อัปเดตยังคงกำหนดให้กับยานพาหนะที่ถูกต้องโดยตั้งค่า
interpretInjectedSolutionsUsingLabelsเป็นtrueซึ่งจะเป็นประโยชน์ในการทดสอบเมื่อเพิ่มหรือนำการจัดส่งและยานพาหนะออก เนื่องจากจะจับคู่เส้นทางโดยใช้ป้ายกำกับแทนดัชนี ซึ่งกำหนดให้ป้ายกำกับยานพาหนะและป้ายกำกับการจัดส่งทั้งหมดต้องไม่ซ้ำกัน
ผสานรวมแผนเส้นทาง
แผนเส้นทางที่สรุปแล้วคือออบเจ็กต์ข้อมูลที่แสดงถึงการจัดการทรัพยากรและงานที่เพิ่มประสิทธิภาพแล้ว โดยเป็นไปตามข้อจำกัดและวัตถุประสงค์ของคุณ ใช้แผนเส้นทางนี้ในการดำเนินงานประจำวันโดยผสานรวมเข้ากับระบบของคุณ ซึ่งโดยทั่วไปจะเกี่ยวข้องกับการแสดงภาพแผนเส้นทางสำหรับผู้จัดการกลุ่มยานพาหนะและการส่งคำแนะนำแบบเลี้ยวต่อเลี้ยวไปยังคนขับ
การแสดงข้อมูลเป็นภาพ
หากต้องการอนุญาตให้ผู้จัดการกลุ่มยานพาหนะยืนยันและตรวจสอบแผนเส้นทาง คุณสามารถแสดงแผนเส้นทางเป็นภาพได้ด้วยวิธีต่อไปนี้
หากต้องการอนุญาตให้ผู้จัดการกลุ่มยานพาหนะยืนยันและตรวจสอบแผนเส้นทางของคุณ คุณสามารถแสดงแผนเส้นทางดังกล่าวบนแผนที่แดชบอร์ดได้ คุณสามารถแสดงภาพแผนเส้นทางได้ด้วยวิธีต่อไปนี้ ทั้งนี้ขึ้นอยู่กับขั้นตอนการพัฒนาปัจจุบันของคุณ
- สำรวจโดยไม่ต้องใช้โค้ด: คุณสามารถใช้แอปการเพิ่มประสิทธิภาพเส้นทางแบบโอเพนซอร์สเพื่อดูว่า API แปลงข้อมูลของคุณเป็นเส้นทางจริงบนแผนที่อย่างไร เว็บแอปพลิเคชันนี้ทำหน้าที่เป็นเครื่องมือสำรวจที่ช่วยให้คุณสร้างสถานการณ์ ปรับพารามิเตอร์ข้อจำกัด และแสดงผลแผนเส้นทางที่ได้เป็นภาพก่อนที่จะเขียนโค้ด
- แสดงลำดับการเข้าชม: คุณสามารถแสดงลำดับการเข้าชมเป็นจุดที่มีหมายเลขกำกับบนแผนที่เพื่อประเมินแผนการเพิ่มประสิทธิภาพและการจัดส่งในระบบของคุณเอง โดยให้ค้นหาอาร์เรย์
visitsภายในแต่ละเส้นทางของการตอบกลับจาก API รายการในอาร์เรย์นี้จะเรียงลำดับตามที่คนขับควรดำเนินการ คุณสามารถทำซ้ำผ่านรายการนี้ โดยใช้shipmentIndexเพื่อดึงข้อมูลพิกัดตำแหน่งของจุดแวะพักแต่ละจุด และใช้ไลบรารีการแมปเพื่อแสดงผลเครื่องหมายที่มีหมายเลขบนแผนที่ตามลำดับในรายการ - วาดเส้นทางจริง: คุณสามารถแสดงภาพเส้นทางที่วางแผนไว้บนแผนที่เพื่อทำความเข้าใจว่าเหตุใดเครื่องมือเพิ่มประสิทธิภาพจึงเลือกลำดับที่เฉพาะเจาะจง เส้นประกอบนี้แสดงเส้นทางที่ต้องการสำหรับการวางแผนและการประเมิน ไม่ใช่เส้นทางแบบเรียลไทม์ที่คนขับใช้ ตั้งค่า
populatePolylines: trueในคำขอเพื่อรับช่องencodedPolylineสำหรับแต่ละเส้นทาง แล้วถอดรหัสโดยใช้เมธอดgoogle.maps.geometry.encoding.decodePath()จาก Maps JavaScript API
ส่งไปยังคนขับ
คุณสามารถผสานรวมการนำทางแบบเลี้ยวต่อเลี้ยวลงในแอปพลิเคชันคนขับโดยใช้ Navigation SDK หรือระบุ Deep Link ไปยังแอปผู้บริโภค Google Maps
- Navigation SDK: หากมีแอปพลิเคชันคนขับที่กำหนดเอง คุณสามารถผสานรวม Navigation SDK สำหรับ Android หรือ iOS เพื่อรับคำแนะนำแบบเลี้ยวต่อเลี้ยวในแอปได้
คุณสามารถผสานรวมข้อมูลงานจากการตอบกลับจาก API เข้ากับระบบของคุณและใช้ SDK สำหรับการนำทางได้ หากต้องการส่งเส้นทางจากการตอบกลับจาก API ไปยัง SDK ให้ตั้งค่า
populateTransitionPolylines: trueในคำขอ ซึ่งจะสร้างrouteTokenสำหรับการเปลี่ยนแต่ละครั้งในการตอบกลับ - Fleet Engine: สำหรับการจัดการกลุ่มยานพาหนะขั้นสูง คุณสามารถนำเข้าแผนเส้นทางที่สร้างโดย API ไปยัง Fleet Engine เพื่อตรวจสอบการดำเนินการตามเส้นทางแบบเรียลไทม์ แม้ว่า API จะแสดงเส้นประกอบของเส้นทางที่ต้องการสำหรับการประเมิน แต่ Fleet Engine จะจับคู่ลำดับการเข้าชมที่วางแผนไว้กับการติดตามยานพาหนะแบบเรียลไทม์