라우팅 환경설정 조정

경로 계산 (경로 재지정 포함)은 탐색하는 데 가장 적은 시간이 걸리는 경로를 기본 최적 경로 로 반환합니다. 하지만 경로 대안 중 더 짧은 경로가 대신 반환되도록 라우팅 전략을 변경할 수 있습니다.

더 짧은 이라는 용어는 기본 비용 모델을 기반으로 하는 최적 경로 중에서 가장 짧은 경로를 의미합니다. 더 짧은 경로는 절대적으로 가장 짧은 경로가 아닐 수 있습니다. 이 옵션이 좋지 않은 대안일 수 있기 때문입니다. 예를 들어 절대적으로 가장 짧은 경로가 10km이고 탐색하는 데 50분이 걸리며 다른 경로는 15km이지만 탐색하는 데 20분만 걸린다면 두 번째 선택이 최적입니다. 5km를 줄이는 데 30분을 쓰는 것은 좋은 절충안이 아니기 때문입니다.

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

경로 세부정보 가져오기

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

이러한 세부정보는 콜백의 GMSNavigationRouteInfo 에서 가져옵니다.

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

Swift

let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
                                      routingOptions: routingOptions) { routeInfo in
  ...
}

Objective-C

GMSNavigationRoutingOptions *routingOptions =
    [[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
                   withRoutingOptions:routingOptions
                             callback:^(GMSNavigationRouteInfo *routeInfo){...}];

라우팅 전략 설정

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

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

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

다음 코드 예에서는 더 짧은 경로 라우팅 전략을 설정하는 방법을 보여줍니다.

Swift

let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
                           routingOptions: routingOptions) { routeStatus in
  ...
}

Objective-C

GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
            routingOptions:routingOptions
                  callback:^(GMSRouteStatus routeStatus){...}];

페리가 포함된 경로

기본적으로 iOS용 Navigation SDK는 페리가 포함된 경로를 제외합니다. 경로에 페리 옵션을 포함하려면 avoidsFerriesfalse로 설정하여 페리 구간으로 여행을 노출하도록 이 라우팅 환경설정을 조정하면 됩니다.

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

경로 콜아웃 형식

더 짧은 경로 라우팅 전략에서는 경로를 따라 콜아웃에 거리 세부정보가 표시됩니다. 하지만 ETA 콜아웃을 대신 사용할 수 있습니다.

경로 콜아웃 형식 구성

GMSMapView에서 routeCalloutFormat을 설정하여 경로 콜아웃 형식을 변경할 수 있습니다. routeCalloutFormat 은 다음 열거형 값 중 하나를 사용합니다.

열거형 값설명
GMSNavigationRouteCalloutFormatDefault 기본 최적 경로 라우팅 전략을 사용할 때 남은 시간을 표시합니다. 더 짧은 경로 라우팅 전략을 사용할 때 남은 거리를 표시합니다.
GMSNavigationRouteCalloutFormatTime 남은 시간을 표시합니다.
GMSNavigationRouteCalloutFormatDistance 남은 거리를 표시합니다.

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

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;