การหลีกเลี่ยงการกลับรถเป็นฟีเจอร์การเพิ่มประสิทธิภาพเส้นทางที่ป้องกันไม่ให้ยานพาหนะกลับรถที่ตำแหน่งรับหรือส่งที่เฉพาะเจาะจงของการเข้าชม การตั้งค่าการหลีกเลี่ยงการกลับรถจะระบุว่ายานพาหนะควรหันไปในทิศทางเดียวกันเมื่อมาถึงและออกจากตำแหน่งการเข้าชม
การหลีกเลี่ยงการกลับรถทำงานดังนี้
- คุณตั้งค่าพร็อพเพอร์ตี้การหลีกเลี่ยงการกลับรถในการเข้าชมที่เฉพาะเจาะจง
- API จะพิจารณาทั้ง 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 ไม่จัดประเภทเป็นการกลับรถ