라우팅 환경설정 조정

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

더 짧은 용어는 기본 비용 모델에 따른 최적 경로 중 최단 경로를 의미합니다. 더 짧은 경로는 절대적인 최단 경로가 아닐 수도 있습니다. 이 옵션은 잘못된 대안일 수 있기 때문입니다. 예를 들어 최단 경로가 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

경로 콜아웃 형식

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

경로 콜아웃 형식 구성

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

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

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

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;