โดยค่าเริ่มต้น ยานพาหนะจะมาถึงจุดรับหรือจุดส่งจากทิศทางใดก็ได้ แล้วออกเดินทางในทิศทางใดก็ได้ ในบางกรณี การดำเนินการนี้อาจทำให้ยานพาหนะต้องยูเทิร์นที่จุดแวะ ซึ่งอาจทำได้ยากหรือเป็นไปไม่ได้เนื่องจากขนาดของยานพาหนะ ป้ายจราจร ณ สถานที่ตั้ง หรือสภาพการจราจรตามปกติ
หากต้องการป้องกันไม่ให้ยานพาหนะเปลี่ยนทิศทางระหว่างการมาถึงและการออกเดินทางสำหรับสถานที่รับหรือส่งที่กำหนด ให้ตั้งค่า avoid_u_turns เป็น "จริง" สำหรับสถานที่นี้ การตั้งค่านี้จะทําให้ยานพาหนะมาถึงและออกจากสถานที่ด้วยทิศทางเดียวกัน จึงหลีกเลี่ยงการเลี้ยวกลับ ในถนน 2 เลน โปรแกรมจะพิจารณาทั้ง 2 ทิศทางและเลือก 1 เส้นทางเพื่อเพิ่มประสิทธิภาพ
นอกจากนี้ คุณยังตั้งค่า side_of_road เป็น "จริง" เพื่อรับเส้นทางที่ยานพาหนะมาถึงและออกฝั่งถนนที่ใกล้กับจุดสังเกตมากที่สุดได้ด้วย ในกรณีนี้ ยานพาหนะจะไม่เปลี่ยนทิศทางระหว่างการมาถึงและการออกเดินทาง คุณสามารถตั้งค่าทั้ง side_of_road และ avoid_u_turns เป็น "จริง" เพื่อให้ได้ผลลัพธ์เดียวกัน โปรดดูรายละเอียดที่หัวข้อการโต้ตอบกับฟีเจอร์อื่นๆ
ในทางปฏิบัติ คุณควรใช้ avoid_u_turns เมื่อข้ามถนนเพื่อไปยังจุดแวะพักได้อย่างปลอดภัย ใช้ side_of_road เมื่อไม่แนะนำให้ข้ามหรือข้ามไม่ได้
ตัวอย่าง: ส่งคําขอ OptimizeTours กับ avoid_u_turns
คุณส่งคําขอ OptimizeTours ได้โดยใช้ REST หรือ gRPC
ก่อนส่งคําขอ ให้แทนที่พารามิเตอร์ต่อไปนี้ด้วยค่าที่เหมาะสมกับสภาพแวดล้อมของคุณ
- ตรวจสอบว่าคุณได้กําหนดค่าข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชันตามที่อธิบายไว้ในใช้ OAuth
ตั้งค่า PROJECT_NUMBER_OR_ID เป็นหมายเลขหรือรหัสโปรเจ็กต์ในระบบคลาวด์
คำสั่งต่อไปนี้จะส่งคําขอ
OptimizeToursไปยัง Route Optimization API และรับการตอบกลับแบบซิงค์curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data @- <<EOM { "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 } ], } } EOM
เมื่อคำขอเสร็จสมบูรณ์แล้ว คุณจะได้รับข้อความตอบกลับ
การโต้ตอบกับฟีเจอร์อื่นๆ
avoid_u_turnsสามารถใช้ร่วมกับside_of_road = trueได้ ในกรณีนี้ ระบบจะหลีกเลี่ยงการเลี้ยวกลับรถ แต่โปรแกรมโซลูชันจะเลือกเส้นทางที่ยานพาหนะอยู่ฝั่งเดียวกับทางแยก ซึ่งคล้ายกับการตั้งค่าside_of_road = trueเพียงอย่างเดียว- เมื่อ
avoid_u_turns = trueสำหรับคำขอเข้าชมหนึ่งๆShipmentRoute.Visitในการตอบกลับที่เกี่ยวข้องจะมีการตั้งค่าช่องinjected_solution_location_tokenความหมายที่แน่นอนของค่านี้คือรายละเอียดการใช้งาน แต่จะมีการเข้ารหัสข้อมูลเกี่ยวกับด้านข้างของถนนที่เครื่องมือแก้ปัญหาเลือก - เมื่อคุณใช้
ShipmentRoute.Visitเป็นส่วนหนึ่งของคำขออินพุต หากShipmentRoute.Visitนั้นสอดคล้องกับVisitRequestในavoid_u_turns = trueShipmentRoute.Visitจะต้องมีinjected_solution_location_tokenที่โปรแกรมโซลูชันแสดงผลก่อนหน้านี้
ข้อจำกัด
ระบบจะพยายามหลีกเลี่ยงการเลี้ยวกลับ ในบางสถานการณ์ เส้นทางอาจยังคงมีการเลี้ยวกลับ ดังนี้
avoid_u_turnsใช้ได้กับโหมดการเดินทางที่รองรับside_of_roadเท่านั้น กล่าวโดยละเอียดคือ ไม่รองรับโหมดการเดินทางWALKINGavoid_u_turnsใช้สำหรับการรับและการนำส่งที่เวลามาถึงและเวลาออกเดินทางไม่ตรงกันไม่ได้- เมื่อการไปรับหรือการนำส่งเกิดขึ้นบนถนนตัน คุณจะต้องเลี้ยวกลับเพื่อออกจากถนน
- เป้าหมายของฟีเจอร์นี้คือหลีกเลี่ยงการเลี้ยวกลับรถที่จุดรับและจุดส่ง ระบบจะไม่หลีกเลี่ยงการเลี้ยวกลับรถระหว่างจุดแวะพัก
- ทางโค้งหักศอกไปยังถนนสายอื่นจะไม่ถือว่าเป็นการเลี้ยวกลับรถ และโดยทั่วไปแล้วจะไม่หลีกเลี่ยงทางโค้งหักศอก
ฟีเจอร์นี้มีข้อจำกัดเพิ่มเติมขณะอยู่ระหว่างการพัฒนา เราคาดว่าข้อจำกัดเหล่านี้จะยกเลิกไปเมื่อฟีเจอร์พัฒนาขึ้น
- ใช้
avoid_u_turnsร่วมกับinterpret_injected_solutions_using_labelsไม่ได้