Điều chỉnh các tuỳ chọn định tuyến

Quá trình tính toán tuyến đường (bao gồm cả việc định tuyến lại) sẽ trả về tuyến đường mất ít thời gian di chuyển nhất 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 thay thế ngắn hơn.

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 tuyệt đối, vì tuyến đường đó có thể là một lựa chọn thay thế không tốt. Ví dụ: nếu tuyến đường ngắn nhất tuyệt đối là 10 km và mất 50 phút để đi, còn một tuyến đường khác dài 15 km nhưng chỉ mất 20 phút để đi, thì lựa chọn thứ hai là tối ưu vì việc mất thêm 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 kết thúc. Để 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.

Lấy thông tin chi tiết về tuyến đường

Để xác định chiến lược tuyến đường nào là lựa chọn tối ưu cho một điểm tham chiếu nhất định, hãy gọi getRouteInfo() để nhận thông tin chi tiết về tuyến đường cho cả tuyến đường tốt nhất mặc định và tuyến đường ngắn hơn tuyệt đối. Thông tin chi tiết bao gồm thời lượng và khoảng cách đến một điểm tham chiếu trên đường đi.

Những thông tin chi tiết này được lấy từ RouteInfo và được trả về trong ListenableResultFuture.

Ví dụ:

Ví dụ về mã sau đây minh hoạ cách lấy thông tin chi tiết về tuyến đường cho từng chiến lược định tuyến trong số 2 chiến lược.

ListenableResultFuture<RouteInfo> routeInfoFuture =
        navigator.getRouteInfo(waypoint, routingOptions);

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 nhận một trong các giá trị liệt kê sau:

Giá trị liệt kêMô tả
RoutingStrategy.DEFAULT_BEST Xếp hạng các tuyến đường theo mô hình chi phí mặc định của Navigation SDK. Đây là chiến lược định tuyến mặc định.
RoutingStrategy.SHORTER Xếp hạng các 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ố những 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ừ những tuyến đường có phà. Nếu muốn thêm các lựa chọn đi phà vào tuyến đường, bạn có thể điều chỉnh lựa chọn ưu tiên về việc định tuyến này để hiển thị chuyến đi đến các đoạn đường có 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 về 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. Tuy nhiên, bạn có thể sử dụng chú thích về thời gian dự kiến đến.

Định cấu hình định dạng chú thích trên 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 nhận một trong các giá trị liệt kê sau:

Giá trị liệt kê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ị khoảng cách còn lại khi sử dụng chiến lược định tuyến theo tuyến đường ngắn hơn.
RouteCalloutInfoFormat.TIME Hiển thị thời gian còn lại.
RouteCalloutInfoFormat.DISTANCE Hiển thị khoảng cách 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);