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

Thao tác tính toán tuyến đường (bao gồm cả việc định tuyến lại) sẽ trả về tuyến đường tốn ít thời gian nhất để điều hướng 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ề các lựa chọn tuyến đường ngắn hơn.

Thuật ngữ ngắn hơn có nghĩa là tuyến ngắn nhất trong số các tuyến 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ì tùy chọn đó có thể là giải pháp thay thế kém. 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 và một tuyến đường khác dài 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 dành 30 phút để giảm 5 km không phải là sự đánh đổi tốt.

Sau khi bạn thiết lập chiến lược định tuyến cho một chuyến đi, chiến lược đó 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 chuyến đi hiện tại, bạn phải xoá các đích đến rồi đặt lại lần nữa bằng chiến lược định tuyến mới.

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

Để xác định chiến lược định tuyến 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() để lấy thông tin về tuyến đường cho cả tuyến đường tốt nhất mặc định và tuyến đường ngắn hơn. 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 đích.

Những thông tin 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.

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êNội dung mô tả
RoutingStrategy.DEFAULT_BEST Xếp hạng các tuyến 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 xếp hạng cao nhất là tuyến ngắn nhất trong số các tuyến được trả về.

Ví dụ:

Ví dụ về mã sau đây minh hoạ cách đặt lựa chọn ưu tiên về tuyến ngắn hơn.

RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);

Các tuyến đường có phà

Theo mặc định, NavSDK loại trừ các tuyến đường có phà. Nếu muốn thêm các lựa chọn về phà vào các tuyến đường của mình, bạn có thể điều chỉnh lựa chọn ưu tiên định tuyến này để hiển thị chuyến đi đến các đoạn 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 tuỳ chọ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 ETA.

Đị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ị liệt kê sau:

Giá trị liệt kêNội dung 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 mặc định tốt nhất. Cho thấy 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 Cho thấy 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.

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);