การหลีกเลี่ยงการกลับรถเป็นฟีเจอร์การเพิ่มประสิทธิภาพเส้นทางที่ป้องกันไม่ให้ยานพาหนะ กลับรถที่จุดรับหรือนำส่งที่เฉพาะเจาะจงของการเข้าชม การตั้งค่าการหลีกเลี่ยงการกลับรถจะระบุว่ายานพาหนะควรหันไปในทิศทางเดียวกัน เมื่อมาถึงและเมื่อออกจากสถานที่ที่เข้าชม
การหลีกเลี่ยงการกลับรถจะทำงานดังนี้
- คุณตั้งค่าพร็อพเพอร์ตี้การหลีกเลี่ยงการเลี้ยวกลับรถในการเข้าชมที่เฉพาะเจาะจง
- API จะพิจารณาทั้ง 2 ทิศทางการเดินทางบนถนน 2 ทางและเลือกเส้นทางที่เหมาะสมที่สุด
- API จะสร้างเส้นทางที่ยานพาหนะมาถึงและออกเดินทางโดยไม่ต้องกลับรถที่สถานที่เข้าชม คนขับอาจต้องข้ามถนนเพื่อไปยังตำแหน่งนี้
พร็อพเพอร์ตี้นี้เหมาะสำหรับสถานการณ์ที่การกลับรถทำได้ยากหรือ เป็นไปไม่ได้เนื่องจากขนาดของยานพาหนะ ป้ายจราจร หรือสภาพการจราจรปกติ
พร็อพเพอร์ตี้
พร็อพเพอร์ตี้การหลีกเลี่ยงการกลับรถจะกำหนดไว้ในออบเจ็กต์ VisitRequest
ออบเจ็กต์นี้ใช้ภายในอาร์เรย์ pickups และ deliveries ของการจัดส่ง
| พร็อพเพอร์ตี้ | ประเภท | คำอธิบาย |
|---|---|---|
avoidUTurns |
บูลีน | เมื่อตั้งค่าเป็น true API จะป้องกันไม่ให้ยานพาหนะกลับรถที่สถานที่เข้าชมนี้ ยานพาหนะจะมาถึงและออกจากจุดจอดโดยหันหน้าไปในทิศทางเดียวกัน |
ตัวอย่าง
ส่วนนี้จะครอบคลุมตัวอย่าง 2 ประเภท ได้แก่
- ตัวอย่างโค้ดที่แสดงโครงสร้างของการหลีกเลี่ยงการกลับรถ
- ตัวอย่างคำขอที่มีฟีเจอร์
ตัวอย่างโค้ด
ตัวอย่างต่อไปนี้แสดงโครงสร้างของavoidUTurns ภายในรถรับส่ง
และการนำส่ง
"pickups":[ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 }, "avoidUTurns": true } ], "deliveries":[ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 }, "avoidUTurns": true } ]
ตัวอย่างคำขอ
ตัวอย่างต่อไปนี้แสดงคำขอ optimizeTours พื้นฐานที่รวมการหลีกเลี่ยงการกลับรถ คำขอนี้ประกอบด้วยองค์ประกอบต่อไปนี้
- การจัดส่งที่มีการรับสินค้าและการนำส่งภายในออบเจ็กต์
model - พร็อพเพอร์ตี้
avoidUTurnsตั้งค่าเป็นtrueทั้งที่จุดรับและจุดนำส่ง เพื่อป้องกันไม่ให้ยานพาหนะเปลี่ยนทิศทางที่จุดจอดเหล่านั้น
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.42506261000996, "longitude": -122.09535511930135 }, "avoidUTurns": true } ], "deliveries":[ { "arrivalLocation": { "latitude": 37.42421503206021, "longitude": -122.09526063135228 }, "avoidUTurns": true } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
หลีกเลี่ยงการกลับรถด้วย sideOfRoad
แม้ว่าsideOfRoadจะเป็นฟีเจอร์ที่แยกต่างหาก แต่ก็มีความเกี่ยวข้องอย่างใกล้ชิดกับการหลีกเลี่ยงการกลับรถ
เนื่องจากจะป้องกันการกลับรถหลายครั้งด้วยการกำหนดเส้นทางให้ยานพาหนะไปที่ด้านข้างของ
ถนนที่ใกล้กับจุดหมายมากที่สุด ซึ่งจะบังคับให้ยานพาหนะเข้าใกล้
สถานที่ที่เข้าชมจากทิศทางที่เฉพาะเจาะจง จึงไม่จำเป็นต้อง
กลับรถ
ในทางปฏิบัติ คุณควรใช้การหลีกเลี่ยงการกลับรถเมื่อสามารถข้ามถนนด้วยการเดินเท้าเพื่อไปยังสถานที่เข้าชมได้อย่างปลอดภัย หากไม่แนะนำให้ข้ามถนนหรือข้ามไม่ได้ ให้พิจารณาตั้งค่า sideOfRoad เป็น true แทน
พร็อพเพอร์ตี้ sideOfRoad จะกำหนดภายในออบเจ็กต์ Waypoint
การโต้ตอบกับฟีเจอร์อื่นๆ
การหลีกเลี่ยงการกลับรถจะทำงานร่วมกับฟีเจอร์การกำหนดเส้นทางอื่นๆ ในลักษณะต่อไปนี้
- ข้างถนน: การตั้งค่าทั้ง
avoidUTurnsและsideOfRoadเป็นtrueจะเพิ่มโอกาสเล็กน้อยในการหลีกเลี่ยงการกลับรถขณะกำหนดเส้นทางให้รถ ไปที่ข้างถนนซึ่งอยู่ใกล้กับสถานที่เข้าชมมากที่สุด อย่างไรก็ตาม การทำเช่นนี้จะทำให้เกิดความซับซ้อนเพิ่มเติมที่เกี่ยวข้องกับข้อจำกัดของการหลีกเลี่ยงการกลับรถ สำหรับสถานที่ที่ไปเยือนส่วนใหญ่ การตั้งค่าพร็อพเพอร์ตี้เหล่านี้เพียงรายการเดียวก็เพียงพอที่จะหลีกเลี่ยงการเลี้ยวกลับ - โซลูชันที่แทรก: เมื่อใช้การหลีกเลี่ยงการกลับรถ การตอบกลับจาก API จะมี
injectedSolutionLocationTokenภายในShipmentRoute.Visitที่สร้างขึ้นเพื่อบันทึกว่าเลือกถนนด้านใด หากคุณนำการเข้าชมนี้กลับมาใช้ซ้ำเป็นโซลูชันที่แทรกในคำขอในอนาคต คุณต้องส่งโทเค็นนี้กลับไปยัง API
ข้อจำกัด
การหลีกเลี่ยงการกลับรถเป็นฟีเจอร์ที่ทำงานอย่างเต็มที่ API อาจยังรวมการกลับรถ ในเส้นทางที่สร้างขึ้นภายใต้เงื่อนไขต่อไปนี้
- โหมดการเดินทางตั้งค่าเป็นโหมดอื่นที่ไม่ใช่
DRIVING - สถานที่ตั้งที่มาถึงและออกเดินทางสำหรับการเข้าชมสถานที่ตั้งหนึ่งๆ แตกต่างกัน ในกรณีนี้ API จะแสดงข้อผิดพลาด
- สถานที่ตั้งอยู่บนถนนตัน จึงต้องกลับรถเพื่อออก
- การกลับรถจะเกิดขึ้นตามเส้นทาง ไม่ใช่ที่ตำแหน่งการเข้าชมจริง
- การเลี้ยวเป็นโค้งที่หักศอกไปยังถนนอื่น ซึ่ง API ไม่จัดว่าเป็นการกลับรถ