Tối ưu hóa thứ tự các trạm dừng trên tuyến đường của bạn

Theo mặc định, phương thức Compute Routes của Routes API sẽ tính toán một tuyến đường qua nhiều điểm dừng (gọi là điểm dừng chân) theo thứ tự mà bạn cung cấp.

Bạn có thể yêu cầu Routes API tối ưu hoá tuyến đường được cung cấp bằng cách sắp xếp lại các điểm dừng theo thứ tự hiệu quả hơn. Tính năng tối ưu hoá điểm trung gian tối ưu hoá thời gian di chuyển nhưng cũng xem xét các yếu tố khác như khoảng cách và số lượt rẽ khi quyết định tuyến đường nào hiệu quả nhất.

Cách tối ưu hoá điểm trung gian

  1. Đảm bảo rằng không có nút nào trong tuyến đường có via được đặt thành true, ví dụ: {"address": "Clare,SA", "via": true}. Để biết thêm thông tin về điểm tham chiếu trung gian, hãy xem phần Chỉ định điểm tham chiếu trung gian.

  2. Hãy đảm bảo rằng routing_preference không được đặt thành TRAFFIC_AWARE_OPTIMAL.

  3. Đặt optimize_waypoint_order thành true. Ví dụ:

    "optimizeWaypointOrder": "true",
    
  4. Chỉ định trường routes.optimizedIntermediateWaypointIndex trong mặt nạ trường:

    REST

    -H X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex

    RPC

    const (fieldMask = "routes.optimizedIntermediateWaypointIndex")

Tìm hiểu cách tối ưu hoá thứ tự điểm trung gian

Dưới đây là cách Routes API tối ưu hoá thứ tự các điểm trung gian trong một tuyến đường:

  1. Tự động lập chỉ mục các điểm trung gian dựa trên thứ tự bạn cung cấp trong yêu cầu, bắt đầu từ 0.

  2. Tối ưu hoá thứ tự của các điểm trung gian bằng cách sử dụng các số chỉ mục mà ứng dụng chỉ định cho các điểm trung gian trong yêu cầu.

  3. Trả về thứ tự điểm trung gian được tối ưu hoá trong đối tượng routes, trong trường waypoint_order, trong routes.optimizedIntermediateWaypointIndex.

Ví dụ:

Yêu cầu này yêu cầu tối ưu hoá cho một tuyến đường từ Adelaide, Nam Úc đến từng khu vực sản xuất rượu vang chính của Nam Úc, sau đó quay lại Adelaide.

curl -X POST -H 'content-type: application/json' -d ' {
  "origin": {
    "address": "Adelaide,SA"
  },
  "destination": {
    "address": "Adelaide,SA"
  },
  "intermediates": [
    {"address": "Barossa+Valley,SA"},
    {"address": "Clare,SA"},
    {"address": "Coonawarra,SA"},
    {"address": "McLaren+Vale,SA"}
  ],
  "travelMode": "DRIVE",
  "optimizeWaypointOrder": "true"
  }' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes,geocodingResults.intermediates.intermediateWaypointRequestIndex' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

API Tuyến đường lập chỉ mục các điểm trung gian được cung cấp trong yêu cầu, bắt đầu từ 0. Ví dụ:

0    {"address": "Barossa+Valley,SA"},
1    {"address": "Clare,SA"},
2    {"address": "Coonawarrav,SA"},
3    {"address": "McLaren+Vale,SA"}

Sử dụng các số chỉ mục cho 4 điểm trung gian được cung cấp trong yêu cầu, sau đó dịch vụ sẽ trả về thứ tự được tối ưu hoá:

"optimizedIntermediateWaypointIndex": [
                3,
                2,
                0,
                1
            ]