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 đã 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 tham chiếu 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 đánh dấu
Đảm bảo không có điểm đánh dấu nào trong tuyến đường có
via
được đặt thànhtrue
, ví dụ:{"address": "Clare,SA", "via": true}
. Để biết thêm thông tin về các điểm tham chiếu trung gian, hãy xem phần Chỉ định các điểm tham chiếu trung gian.Đảm bảo bạn không đặt
routing_preference
thànhTRAFFIC_AWARE_OPTIMAL
.Đặt
optimize_waypoint_order
thànhtrue
. Ví dụ:"optimizeWaypointOrder": "true",
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 tham chiếu
Sau đây là cách Routes API tối ưu hoá thứ tự của các điểm tham chiếu trong một tuyến đường:
Tự động lập chỉ mục các điểm tham chiếu dựa trên thứ tự bạn cung cấp trong yêu cầu, bắt đầu từ 0.
Tối ưu hoá thứ tự của các điểm tham chiếu bằng cách sử dụng số chỉ mục mà nó đã chỉ định cho các điểm tham chiếu trong yêu cầu.
Trả về thứ tự điểm đánh dấu được tối ưu hoá trong đối tượng
routes
, trong trườngwaypoint_order
, trongroutes.optimizedIntermediateWaypointIndex
.
Ví dụ:
Yêu cầu này yêu cầu tối ưu hoá một tuyến đường từ Adelaide, Nam Úc đến từng vùng sản xuất rượu vang chính của Nam Úc, rồi quay trở 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'
Routes API lập chỉ mục các điểm tham chiếu 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"}
Bằng cách sử dụng số chỉ mục cho 4 điểm tham chiếu được cung cấp trong yêu cầu, dịch vụ sẽ trả về thứ tự được tối ưu hoá:
"optimizedIntermediateWaypointIndex": [ 3, 2, 0, 1 ]