Ajustar preferências de roteamento

Os cálculos de trajeto (incluindo novos trajetos) retornam o trajeto que leva o menor tempo para navegar como o melhor trajeto padrão. No entanto, é possível mudar a estratégia de roteamento para que a mais curta das alternativas de trajeto seja retornada.

O termo mais curto significa o trajeto mais curto entre os trajetos ideais com base no nosso modelo de custo padrão. O trajeto mais curto pode não ser o absolutamente mais curto, já que essa opção pode ser uma alternativa ruim. Por exemplo, se o trajeto mais curto for de 10 km e levar 50 minutos para ser percorrido, e outro trajeto for de 15 km, mas levar apenas 20 minutos, a segunda opção será a ideal, porque gastar 30 minutos para reduzir 5 km não é uma boa troca.

Depois de definir a estratégia de trajeto de uma viagem, ela não vai mudar até que a viagem seja concluída. Para mudar a estratégia de trajeto de uma viagem, limpe os destinos e redefina-os com a nova estratégia.

Como ver detalhes do trajeto

Para determinar qual estratégia de trajeto é a melhor opção para um determinado waypoint, chame getRouteInfoForDestination() para ver os detalhes do melhor trajeto padrão e do trajeto absoluto mais curto. Os detalhes incluem a duração e a distância até um waypoint de destino.

Esses detalhes vêm de GMSNavigationRouteInfo no callback.

Exemplo

O exemplo de código a seguir demonstra como receber detalhes de rota para cada uma das duas estratégias de roteamento.

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){...}];

Como definir a estratégia de roteamento

É possível configurar a estratégia de roteamento usando GMSNavigationRoutingOptions e definindo routingStrategy ao chamar setDestinations().

routingStrategy usa um dos seguintes valores de enumeração:

Valor de enumeraçãoDescrição
GMSNavigationRoutingStrategyDefaultBest Classifica os trajetos pelo modelo de custo padrão do SDK do Navigation. Essa é a estratégia de roteamento padrão.
GMSNavigationRoutingStrategyShorter Classifica os trajetos por distância. O trajeto com a classificação mais alta é o mais curto entre os retornados.

Exemplo

O exemplo de código a seguir demonstra como definir a estratégia de trajeto mais curto.

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){...}];

Rotas que incluem balsas

Por padrão, o SDK do Navigation para iOS exclui rotas que incluem balsas. Se você preferir incluir opções de balsa como parte dos seus trajetos, ajuste essa preferência de trajeto para expor a viagem a trechos de balsa definindo avoidsFerries como false.

Exemplo

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

O formato da frase de destaque do trajeto

Na estratégia de trajeto mais curto, os balões ao longo do trajeto mostram detalhes da distância. Mas você pode usar as frases de destaque de ETA.

Como configurar o formato de chamada de rota

É possível mudar o formato da frase de destaque do trajeto definindo routeCalloutFormat em GMSMapView. routeCalloutFormat usa um dos seguintes valores de enumeração:

Valor de enumeraçãoDescrição
GMSNavigationRouteCalloutFormatDefault Mostra o tempo restante ao usar a estratégia de trajeto padrão de melhor trajeto. Mostra a distância restante ao usar a estratégia de rota mais curta.
GMSNavigationRouteCalloutFormatTime Mostra o tempo restante.
GMSNavigationRouteCalloutFormatDistance Mostra a distância restante.

Exemplo

O exemplo de código a seguir demonstra como configurar o formato de chamada de rota.

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;