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

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

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

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