เลี่ยงการกลับรถที่จุดรับและนำส่ง

โดยค่าเริ่มต้น ยานพาหนะจะมาถึงจุดรับหรือจุดส่งจากทิศทางใดก็ได้ แล้วออกเดินทางในทิศทางใดก็ได้ ในบางกรณี การดำเนินการนี้อาจทำให้ยานพาหนะต้องยูเทิร์นที่จุดแวะ ซึ่งอาจทำได้ยากหรือเป็นไปไม่ได้เนื่องจากขนาดของยานพาหนะ ป้ายจราจร ณ สถานที่ตั้ง หรือสภาพการจราจรตามปกติ

หากต้องการป้องกันไม่ให้ยานพาหนะเปลี่ยนทิศทางระหว่างการมาถึงและการออกเดินทางสำหรับสถานที่รับหรือส่งที่กำหนด ให้ตั้งค่า 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 = true ShipmentRoute.Visit จะต้องมี injected_solution_location_token ที่โปรแกรมโซลูชันแสดงผลก่อนหน้านี้

ข้อจำกัด

ระบบจะพยายามหลีกเลี่ยงการเลี้ยวกลับ ในบางสถานการณ์ เส้นทางอาจยังคงมีการเลี้ยวกลับ ดังนี้

  • avoid_u_turns ใช้ได้กับโหมดการเดินทางที่รองรับ side_of_road เท่านั้น กล่าวโดยละเอียดคือ ไม่รองรับโหมดการเดินทาง WALKING
  • avoid_u_turns ใช้สำหรับการรับและการนำส่งที่เวลามาถึงและเวลาออกเดินทางไม่ตรงกันไม่ได้
  • เมื่อการไปรับหรือการนำส่งเกิดขึ้นบนถนนตัน คุณจะต้องเลี้ยวกลับเพื่อออกจากถนน
  • เป้าหมายของฟีเจอร์นี้คือหลีกเลี่ยงการเลี้ยวกลับรถที่จุดรับและจุดส่ง ระบบจะไม่หลีกเลี่ยงการเลี้ยวกลับรถระหว่างจุดแวะพัก
  • ทางโค้งหักศอกไปยังถนนสายอื่นจะไม่ถือว่าเป็นการเลี้ยวกลับรถ และโดยทั่วไปแล้วจะไม่หลีกเลี่ยงทางโค้งหักศอก

ฟีเจอร์นี้มีข้อจำกัดเพิ่มเติมขณะอยู่ระหว่างการพัฒนา เราคาดว่าข้อจำกัดเหล่านี้จะยกเลิกไปเมื่อฟีเจอร์พัฒนาขึ้น