โดยค่าเริ่มต้น ยานพาหนะจะไปถึงสถานที่รับหรือนำส่งจากทิศทางใดก็ได้ และออกจากสถานที่นั้นในทิศทางใดก็ได้ ในบางกรณี การดำเนินการนี้จะบังคับให้ ยานพาหนะกลับรถ ณ สถานที่ที่เข้าชม ซึ่งอาจทำได้ยากหรือ เป็นไปไม่ได้เนื่องจากขนาดของยานพาหนะ ป้ายจราจรที่สถานที่ หรือสภาพการจราจรปกติ
หากต้องการป้องกันไม่ให้ยานพาหนะเปลี่ยนทิศทางระหว่างขาไปและขากลับ
สำหรับสถานที่รับหรือนำส่งที่กำหนด คุณสามารถตั้งค่า avoid_u_turns
เป็น
จริงสำหรับสถานที่นี้ ในการตั้งค่านี้ ยานพาหนะจะมาถึงและออกจากสถานที่โดยมีทิศทางเดียวกัน จึงไม่ต้องกลับรถ ในถนนแบบ 2 ทาง
ตัวแก้จะพิจารณาทั้ง 2 ทิศทางและเลือกทิศทางใดทิศทางหนึ่งเป็นส่วนหนึ่งของการเพิ่มประสิทธิภาพเส้นทาง
นอกจากนี้ คุณยังตั้งค่า side_of_road
เป็น true เพื่อรับเส้นทางที่ยานพาหนะ
มาถึงและออกจากด้านข้างของถนนที่ใกล้จุดอ้างอิงมากที่สุดได้ด้วย ใน
กรณีนี้ ยานพาหนะจะไม่เปลี่ยนทิศทางระหว่างเวลาที่มาถึงและ
เวลาที่ออกเดินทางด้วย คุณตั้งค่าทั้ง side_of_road
และ avoid_u_turns
เป็น true ได้
เพื่อให้ได้ผลลัพธ์เดียวกัน โปรดดูรายละเอียดที่หัวข้อการโต้ตอบกับฟีเจอร์อื่นๆ
ในทางปฏิบัติ คุณควรใช้ avoid_u_turns
เมื่อปลอดภัยที่จะข้ามถนนเพื่อไปยังจุดอ้างอิง ใช้ side_of_road
เมื่อไม่ควรข้ามหรือข้ามไม่ได้
ตัวอย่าง: ส่งOptimizeTours
คำขอด้วย avoid_u_turns
OptimizeTours
สามารถส่งคำขอได้โดยใช้ REST หรือ gRPC
ก่อนส่งคำขอ ให้แทนที่พารามิเตอร์ต่อไปนี้ด้วยค่าที่ เหมาะสมกับสภาพแวดล้อมของคุณ
- ตรวจสอบว่าคุณได้กำหนดค่าข้อมูลรับรองเริ่มต้นของแอปพลิเคชันตามที่อธิบายไว้ ในใช้ OAuth
ตั้งค่า PROJECT_NUMBER_OR_ID เป็นหมายเลขหรือรหัสโปรเจ็กต์ Cloud
คำสั่งต่อไปนี้จะส่ง
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 = true
แล้วShipmentRoute.Visit
ต้องมีinjected_solution_location_token
ที่ตัวแก้ปัญหาแสดงผลก่อนหน้านี้
ข้อจำกัด
การหลีกเลี่ยงการกลับรถจะทำงานได้ดีที่สุด ในบางสถานการณ์ เส้นทางอาจยังคง มีการกลับรถ ดังนี้
avoid_u_turns
ใช้ได้เฉพาะกับโหมดการเดินทางที่รองรับside_of_road
โดยเฉพาะอย่างยิ่ง ระบบไม่รองรับโหมดการเดินทางWALKING
avoid_u_turns
ใช้สำหรับการรับและนำส่งที่จุดเริ่มต้นและจุดสิ้นสุดไม่เหมือนกันไม่ได้- เมื่อมีการรับหรือนำส่งในถนนตัน คุณจำเป็นต้อง กลับรถเพื่อออกจากถนน
- จุดประสงค์ของฟีเจอร์นี้คือการหลีกเลี่ยงการกลับรถ ณ จุดรับและนำส่ง ระบบจะไม่หลีกเลี่ยงการกลับรถระหว่างจุดอ้างอิง
- การเลี้ยวที่คมมากเพื่อเข้าสู่ถนนอื่นไม่ถือเป็นการกลับรถ และโดยทั่วไปแล้วระบบจะไม่หลีกเลี่ยงการเลี้ยวลักษณะนี้
ขณะที่ฟีเจอร์นี้อยู่ระหว่างการพัฒนา จะมีข้อจำกัดเพิ่มเติม เรา คาดว่าข้อจำกัดเหล่านี้จะถูกยกเลิกเมื่อฟีเจอร์ได้รับการพัฒนา
avoid_u_turns
ใช้ร่วมกับinterpret_injected_solutions_using_labels
ไม่ได้