Tránh quay đầu

Tính năng tránh quay đầu xe có trong `ShipmentModel.Shipment` trong các đối tượng nhận hàng và giao hàng.

Tính năng tránh quay đầu là một tính năng tối ưu hoá tuyến đường, giúp ngăn các phương tiện quay đầu tại vị trí nhận hoặc giao hàng cụ thể của một lượt ghé thăm. Bằng cách đặt chế độ tránh quay đầu, bạn chỉ định rằng xe phải đi cùng hướng khi đến và khi rời khỏi một vị trí ghé thăm.

Tính năng tránh quay đầu hoạt động theo cách sau:

  1. Bạn đặt thuộc tính tránh quay đầu xe cho một lượt truy cập cụ thể.
  2. API này xem xét cả hai hướng di chuyển trên đường hai chiều và chọn đường đi tối ưu nhất.
  3. API này tạo một tuyến đường mà xe đến và rời đi mà không cần quay đầu tại vị trí ghé thăm. Người lái xe có thể cần phải băng qua đường để đến địa điểm này.

Thuộc tính này phù hợp với những trường hợp khó hoặc không thể quay đầu xe do kích thước xe, biển báo giao thông hoặc tình trạng giao thông bình thường.

Thuộc tính

Thuộc tính tránh quay đầu được xác định trong đối tượng VisitRequest. Đối tượng này được dùng trong các mảng pickupsdeliveries của một lô hàng.

Thuộc tính Loại Mô tả
avoidUTurns boolean Khi được đặt thành true, API sẽ ngăn xe quay đầu tại vị trí ghé thăm này. Xe sẽ đến và rời đi theo cùng một hướng.

Ví dụ

Phần này đề cập đến 2 loại ví dụ:

  • Mã mẫu minh hoạ cấu trúc của tính năng tránh quay đầu xe.
  • Ví dụ về yêu cầu có chứa tính năng này.

Mã mẫu

Ví dụ sau đây cho thấy cấu trúc của avoidUTurns trong một lần đến lấy hàng và một lần giao hàng:

"pickups":[
  {
    "arrivalLocation": {
      "latitude": 37.42506261000996,
      "longitude": -122.09535511930135
    },
    "avoidUTurns": true
  }
],
"deliveries":[
  {
    "arrivalLocation": {
      "latitude": 37.42421503206021,
      "longitude": -122.09526063135228
    },
    "avoidUTurns": true
  }
]

Ví dụ về yêu cầu

Ví dụ sau đây cho thấy một yêu cầu optimizeTours cơ bản có tính năng tránh đường vòng. Yêu cầu này bao gồm các phần tử sau:

  • Một lô hàng có thông tin nhận hàng và giao hàng trong đối tượng model.
  • Thuộc tính avoidUTurns được đặt thành true ở cả vị trí đến lấy và giao hàng để ngăn xe thay đổi hướng tại những điểm dừng đó.
  {
    "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
        }
      ]
    }
  }

Tránh quay đầu xe bằng sideOfRoad

Mặc dù sideOfRoad là một tính năng riêng biệt, nhưng tính năng này có liên quan chặt chẽ đến tính năng tránh quay đầu xe vì tính năng này ngăn chặn nhiều lượt quay đầu xe bằng cách định tuyến xe đến phía đường gần với điểm đến nhất. Điều này buộc xe phải tiếp cận một vị trí ghé thăm theo một hướng cụ thể, giúp bạn không cần phải quay đầu xe.

Trên thực tế, bạn nên sử dụng tính năng tránh quay đầu xe khi có thể băng qua đường một cách an toàn bằng bộ để đến vị trí cần ghé thăm. Nếu bạn không nên hoặc không thể băng qua đường, hãy cân nhắc đặt sideOfRoad thành true.

Thuộc tính sideOfRoad được xác định trong đối tượng Waypoint.

Tương tác với các tính năng khác

Tính năng tránh quay đầu tương tác với các tính năng định tuyến khác theo những cách sau:

  • Lề đường: Việc đặt cả avoidUTurnssideOfRoad thành true sẽ tăng nhẹ khả năng tránh được việc quay đầu xe trong khi định tuyến xe đến lề đường gần vị trí ghé thăm nhất. Tuy nhiên, việc này sẽ làm tăng thêm độ phức tạp liên quan đến các hạn chế khi tránh quay đầu xe. Đối với hầu hết các vị trí ghé thăm, bạn chỉ cần đặt một trong các thuộc tính này là đủ để tránh quay đầu.
  • Giải pháp được chèn: Khi bạn sử dụng tính năng tránh quay đầu, phản hồi API sẽ bao gồm injectedSolutionLocationToken bên trong ShipmentRoute.Visit đã tạo để ghi lại bên đường mà tính năng này đã chọn. Nếu sử dụng lại lượt truy cập này làm giải pháp được chèn trong một yêu cầu sau này, bạn phải truyền mã thông báo này trở lại API.

Các điểm hạn chế

Tính năng tránh quay đầu là một tính năng được thực hiện trên cơ sở nỗ lực tối đa. API vẫn có thể bao gồm các đoạn đường quay đầu trong tuyến đường được tạo trong các trường hợp sau:

  • Chế độ di chuyển được đặt thành một chế độ khác ngoài DRIVING.
  • Vị trí đến và vị trí khởi hành của một vị trí bạn đã ghé thăm cụ thể là khác nhau. Trong trường hợp này, API sẽ trả về một lỗi.
  • Địa điểm này nằm trên một con đường cụt, bạn cần phải quay đầu xe để rời đi.
  • Đường vòng xảy ra dọc theo tuyến đường, chứ không phải tại vị trí thực tế của lượt truy cập.
  • Thao tác này là một cú rẽ rất gấp vào một con đường khác mà API không phân loại là đường vòng.