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

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

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

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

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