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