Ajustar preferências de roteamento

Os cálculos de rota (incluindo reencaminhamento) retornam a rota que leva o menor tempo para navegar como a melhor rota padrão. No entanto, é possível alterar a estratégia de roteamento para que as alternativas de trajeto mais curtas sejam retornadas.

O termo mais curto significa o trajeto mais curto entre o ideal com base no modelo de custo padrão. O trajeto mais curto pode não ser o absoluto mais curto, porque essa opção pode ser uma alternativa ruim. Por exemplo, se a rota absolutamente mais curta for 10 km e levar 50 minutos para navegar e outra tiver 15 km, mas apenas 20 minutos para navegar, a segunda opção será a ideal, porque gastar 30 minutos para reduzir 5 km não é uma boa compensação.

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

Como acessar detalhes do trajeto

Para determinar qual estratégia de trajeto é a opção ideal para um determinado waypoint, chame getRouteInfoForDestination() para ver 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 ver detalhes do trajeto 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 as rotas pelo modelo de custo padrão do SDK de navegação. 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 roteamento de rota mais curta.

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

Trajetos que incluem balsas

Por padrão, o SDK do Navigation para iOS exclui trajetos 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 aos segmentos de balsa definindo avoidsFerries como false.

Exemplo

Swift

self.mapView.navigator?.avoidsFerries = false

Objective-C

self.mapView.navigator.avoidsFerries = NO

Formato da frase de destaque do trajeto.

Na estratégia de trajeto mais curto, as frases de destaque ao longo do trajeto mostram detalhes da distância. No entanto, você pode usar as frases de destaque de HEC.

Como configurar o formato da frase de destaque da rota

Para mudar o formato da frase de destaque de rota, defina 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 roteamento de melhor rota padrão. Mostra a distância restante ao usar a estratégia de trajeto mais curto
GMSNavigationRouteCalloutFormatTime Mostra o tempo restante.
GMSNavigationRouteCalloutFormatDistance DExibe a distância restante.

Exemplo

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

Swift

self.mapView.routeCalloutFormat = .time

Objective-C

_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;