เลี่ยงการกลับรถ

การหลีกเลี่ยงการกลับรถจะอยู่ใน `ShipmentModel.Shipment` ในออบเจ็กต์การรับและการนำส่ง

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

การหลีกเลี่ยงการกลับรถทำงานดังนี้

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