Kết quả tính toán tuyến đường (bao gồm cả việc đổi tuyến đường) sẽ trả về tuyến đường mất ít thời gian nhất để di chuyển dưới dạng tuyến đường tốt nhất mặc định. Tuy nhiên, bạn có thể thay đổi chiến lược định tuyến để trả về tuyến đường ngắn hơn trong số các tuyến đường thay thế.
Thuật ngữ ngắn hơn có nghĩa là tuyến đường ngắn nhất trong số các tuyến đường tối ưu dựa trên mô hình chi phí mặc định của chúng tôi. Tuyến đường ngắn hơn có thể không phải là tuyến đường ngắn nhất, vì lựa chọn đó có thể là một phương án thay thế không phù hợp. Ví dụ: nếu tuyến đường ngắn nhất tuyệt đối là 10 km và mất 50 phút để di chuyển, còn một tuyến đường khác là 15 km nhưng chỉ mất 20 phút để di chuyển, thì lựa chọn thứ hai là tối ưu vì việc mất 30 phút để giảm 5 km không phải là một sự đánh đổi hợp lý.
Sau khi bạn đặt chiến lược định tuyến cho một chuyến đi, chiến lược này sẽ không thay đổi cho đến khi chuyến đi hoàn tất. Để thay đổi chiến lược định tuyến cho một chuyến đi hiện có, bạn phải xoá các điểm đến và đặt lại các điểm đến đó bằng chiến lược định tuyến mới.
Thiết lập chiến lược định tuyến
Bạn có thể định cấu hình chiến lược định tuyến bằng cách đặt RoutingOptions.routingStrategy khi gọi setDestinations().
RoutingOptions.routingStrategy lấy một trong các giá trị enum sau:
| Giá trị enum | Mô tả |
|---|---|
| RoutingStrategy.DEFAULT_BEST | Xếp hạng tuyến đường theo mô hình chi phí mặc định của SDK điều hướng. Đây là chiến lược định tuyến mặc định. |
| RoutingStrategy.SHORTER | Xếp hạng tuyến đường theo khoảng cách. Tuyến đường có thứ hạng cao nhất là tuyến đường ngắn nhất trong số các tuyến đường được trả về. |
Ví dụ
Ví dụ về mã sau đây minh hoạ cách đặt lựa chọn ưu tiên cho tuyến đường ngắn hơn.
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
Tuyến đường có phà
Theo mặc định, NavSDK sẽ loại trừ các tuyến đường có phà. Nếu
bạn muốn thêm các lựa chọn đi phà vào tuyến đường của mình, bạn có thể điều chỉnh
lựa chọn ưu tiên về tuyến đường này để hiển thị chuyến đi đến các đoạn đường đi phà bằng cách đặt
avoidFerries thành false.
Ví dụ
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
Định dạng chú thích tuyến đường
Trong lựa chọn ưu tiên tuyến đường ngắn hơn, chú thích dọc theo tuyến đường sẽ hiển thị thông tin chi tiết về khoảng cách. Nhưng bạn có thể sử dụng chú thích về thời gian đến dự kiến.
Định cấu hình định dạng chú thích tuyến đường
Bạn có thể thay đổi định dạng chú thích tuyến đường bằng cách gọi setRouteCalloutInfoFormat trong NavigationView (hoặc trong NavigationFragment). setRouteCalloutInfoFormat lấy một trong các giá trị enum sau:
| Giá trị enum | Mô tả |
|---|---|
| RouteCalloutInfoFormat.DEFAULT | Hiển thị thời gian còn lại khi sử dụng chiến lược định tuyến tuyến đường tốt nhất mặc định. Hiển thị quãng đường còn lại khi sử dụng chiến lược định tuyến tuyến đường ngắn hơn. |
| RouteCalloutInfoFormat.TIME | Hiển thị thời gian còn lại. |
| RouteCalloutInfoFormat.DISTANCE | Hiển thị quãng đường còn lại. |
Ví dụ
Ví dụ về mã sau đây minh hoạ cách định cấu hình định dạng chú thích tuyến đường.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);