라우팅 환경설정 조정

경로 계산 (경로 변경 포함)에서는 이동 시간이 가장 짧은 경로를 기본 최적 경로로 반환합니다. 그러나 대체 경로 중 더 짧은 경로가 대신 반환되도록 라우팅 전략을 변경할 수 있습니다.

더 짧은 용어는 기본 비용 모델을 기준으로 한 최적 경로 중 가장 짧은 경로를 의미합니다. 더 짧은 경로는 절대적인 최단 경로가 아닐 수도 있습니다. 이 옵션은 잘못된 대안일 수 있기 때문입니다. 예를 들어 최단 경로가 10km이고 이동하는 데 50분이 걸리고 다른 경로가 15km이지만 이동에 20분밖에 걸리지 않는다면 두 번째 선택이 가장 좋은데, 그 이유는 5km를 줄이는 데 30분을 투자하는 것은 좋은 선택이 아니기 때문입니다.

경로에 대한 경로 전략을 설정하면 이동이 완료될 때까지 변경되지 않습니다. 기존 경로의 라우팅 전략을 변경하려면 목적지를 지우고 새 경로 전략으로 다시 재설정해야 합니다.

경로 세부정보 가져오기

특정 경유지에 가장 적합한 경로 전략을 결정하려면 getRouteInfo()를 호출하여 기본 최적 경로와 더 짧은 경로 모두에 대한 경로 세부정보를 가져옵니다. 세부정보에는 목적지 경유지까지의 소요 시간 및 거리가 포함됩니다.

이러한 세부정보는 RouteInfo에서 가져오며 ListenableResultFuture에 반환됩니다.

다음 코드 예는 두 가지 라우팅 전략 각각에 대한 경로 세부정보를 가져오는 방법을 보여줍니다.

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

라우팅 전략 설정

setDestinations()를 호출할 때 RoutingOptions.routingStrategy를 설정하여 라우팅 전략을 구성할 수 있습니다.

RoutingOptions.routingStrategy는 다음 열거형 값 중 하나를 사용합니다.

열거형 값설명
RoutingStrategy.DEFAULT_BEST Navigation SDK의 기본 비용 모델에 따라 경로 순위를 지정합니다. 이는 기본 라우팅 전략입니다.
RoutingStrategy.SHORTER 거리를 기준으로 경로의 순위를 매깁니다. 가장 높은 순위의 경로는 반환된 경로 중 가장 짧은 경로입니다.

다음 코드 예는 더 짧은 경로 환경설정을 지정하는 방법을 보여줍니다.

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

페리가 포함된 경로

기본적으로 NavSDK에서는 페리가 포함된 경로를 제외합니다. 경로에 페리 옵션을 포함하려면 avoidFerriesfalse로 설정하여 경로를 페리 구간에 노출하도록 이 경로 환경설정을 조정하세요.

RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);

경로 콜아웃 형식

더 짧은 경로 환경설정에서 경로를 따라 표시되는 콜아웃에 거리 세부정보가 표시됩니다. 대신 도착예정시간 콜아웃을 사용할 수 있습니다.

경로 콜아웃 형식 구성

NavigationView (또는 NavigationFragment)에서 setRouteCalloutInfoFormat를 호출하여 경로 콜아웃 형식을 변경할 수 있습니다. setRouteCalloutInfoFormat는 다음 열거형 값 중 하나를 사용합니다.

열거형 값설명
RouteCalloutInfoFormat.DEFAULT 기본 최적 경로 라우팅 전략을 사용하는 경우 남은 시간을 표시합니다. 더 짧은 경로 경로 지정 전략을 사용할 때 남은 거리를 표시합니다.
RouteCalloutInfoFormat.TIME 남은 시간을 표시합니다.
RouteCalloutInfoFormat.DISTANCE 남은 거리를 표시합니다.

다음 코드 예에서는 경로 콜아웃 형식을 구성하는 방법을 보여줍니다.

mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);