Para quem é este guia:leia este guia se você for um desenvolvedor de dispositivos móveis responsável por criar a experiência de navegação na cabine para motoristas de caminhões ou outros veículos grandes.
O que este guia aborda: este guia explica como usar uma rota específica para caminhões, gerada pela API Routes ou pela API Route Optimization, e usá-la para ativar uma sessão de navegação guiada com o SDK do Navigation.
O que você vai aprender
Você vai aprender a fazer o seguinte:
- Use um
routeTokenpara conectar o planejamento de rotas de back-end à experiência de navegação no app. - Configurar o SDK do Navigation para usar um trajeto de caminhão pré-planejado.
- Entender como as restrições específicas para caminhões aparecem para o motorista na interface.
Pré-requisitos
Antes de começar, atenda aos seguintes requisitos.
Configurar o projeto
Seu projeto na nuvem do Google Cloud precisa ser provisionado para o roteamento de veículos grandes. Se você estiver usando projetos separados para a API Routes e o SDK do Navigation, eles precisarão ser provisionados de acordo.
Gerar um token de rota
Primeiro, gere um trajeto seguindo as instruções no guia Gerar
trajetos e ETAs de caminhão. A saída desse processo, um routeToken, é necessária para concluir as etapas deste guia.
Requisitos mínimos
Seu app precisa usar a versão mínima necessária do SDK do Navigation:
- Android:5.2.0 ou mais recente
- iOS:5.4.0 ou mais recente
Além disso, todos os requisitos para usar o SDK do Navigation se aplicam:
Limitações
Antes de começar, você precisa estar ciente das seguintes limitações e requisitos.
- Disponibilidade geográfica: o roteamento de veículos grandes está disponível apenas em 48 estados contíguos dos Estados Unidos.
- O roteamento de veículos grandes é uma oferta em fase de pré-lançamento. Os motoristas não devem confiar apenas nos trajetos retornados por essa API para serem seguros ou legais. Não há garantia de que os trajetos sejam adequados para o veículo, e segui-los pode expor os motoristas a perigos, como pontes baixas ou estradas em que veículos grandes são proibidos.
- Trajetos de melhor esforço. Em alguns casos, a API não consegue encontrar um trajeto que esteja totalmente em conformidade com as restrições de viagem. Em vez disso, ela retorna um trajeto de "melhor esforço" que ainda pode atravessar áreas restritas. A resposta da API Routes sinaliza claramente esses trajetos no campo
routeRestrictionsPartiallyIgnored. Planeje seu trajeto com cuidado nesses casos, de preferência usando outros dados de origem. Não use um trajeto sinalizado como uma única fonte de verdade para planejamento ou navegação. - Recursos não compatíveis: embora estejamos trabalhando para trazer mais funcionalidades
a essa oferta, o roteamento de veículos grandes não oferece suporte ao
seguinte:
- Preços de pedágio de caminhões
- Limites de velocidade
- Roteamento de materiais perigosos radioativos
- Limites de uso: todas as solicitações estão sujeitas aos limites padrão de consultas por segundo (QPS).
Mostrar a interface específica para caminhões
O SDK do Navigation mostra automaticamente avisos visuais, chamados de frases de destaque do trajeto, no mapa para alertar os motoristas sobre as restrições de caminhões. As frases de destaque são renderizadas para restrições que fazem parte do trajeto planejado, mas não em outras estradas próximas.
O SDK inclui frases de destaque para as seguintes restrições:
| Restrição | Ícone e texto da frase de destaque | Condições de exibição |
|---|---|---|
| Altura |
Amarelo = aviso, seu veículo está próximo da altura máxima permitida
Vermelho = seu veículo está acima da altura máxima permitida |
Uma frase de destaque amarela aparece quando a altura do veículo está próxima da restrição.
Uma frase de destaque vermelha aparece se o trajeto não estiver em conformidade e violar uma restrição de altura.
|
| Peso |
|
Uma frase de destaque vermelha aparece quando o peso do veículo excede o limite da estrada.
|
| Caminhões proibidos |
|
Uma frase de destaque vermelha aparece ao viajar em um trecho de estrada com uma restrição de caminhão.
|
| Mercadorias perigosas |
|
Uma frase de destaque vermelha aparece quando a carga de materiais perigosos do veículo é proibida em um trecho de estrada.
|
Fluxo de trabalho do token de rota
Um routeToken é um snapshot criptografado e seguro de um trajeto gerado pela API Routes. Ele contém todos os detalhes do trajeto, incluindo o perfil do veículo usado para criá-lo. O uso de um token garante que a sessão de navegação corresponda ao trajeto planejado no back-end.
Observe que, depois que o motorista começa a navegar, a rota apresentada pelo SDK do Navigation pode mudar dependendo do tráfego e das condições da estrada. Em alguns casos, ele pode divergir do trajeto especificado pelo token de rota.
Nesses casos, bem como no caso em que o motorista se desvia do trajeto planejado, o uso do token de rota garante que os trajetos recém-recalculados respeitem os atributos do veículo conforme configurado na solicitação de API original da API Routes.
O fluxo de trabalho segue estas etapas:
- O back-end solicita um trajeto de caminhão da API Routes.
- A API Routes retorna um
routeToken. - O back-end envia esse token para seu aplicativo para dispositivos móveis.
- O app para dispositivos móveis transmite o
routeTokenpara o SDK do Navigation para iniciar a viagem. - O SDK do Navigation processa todos os aspectos da navegação guiada, incluindo o traçar novo trajeto se o motorista se desviar do caminho, preservando as restrições originais do veículo.
Implementação: iniciar uma viagem específica para caminhões
Para iniciar uma sessão de navegação com o trajeto de caminhão, transmita o token de rota para o navegador.
Etapa 1: receber o token de rota
Seu aplicativo recebe a string routeToken do servidor de back-end.
O código a seguir é um exemplo de token:
CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g
Etapa 2: transmitir o token para o navegador
Forneça o routeToken ao navegador ao definir o destino da viagem.
O SDK do Navigation usa esse token para todos os cálculos de trajeto da viagem.
O SDK do Navigation tem uma configuração TravelMode, que precisa ser definida como
TravelMode.DRIVING. Isso é separado da configuração travelMode na API Routes, que precisa ser definida como TRUCK. A configuração travelMode da API Routes é codificada no routeToken e sinaliza o SDK do Navigation para mostrar a experiência e o trajeto específicos para caminhões.
Android
Use CustomRoutesOptions.builder() para definir o token e transmiti-lo para navigator.setDestinations().
// Obtain the routeToken string from your backend
val routeToken = "route token returned by Routes API"
val customRoutesOptions = CustomRoutesOptions.builder()
.setRouteToken(routeToken)
.setTravelMode(TravelMode.DRIVING)
.build()
// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
.setLatLng(10.0, 20.0)
.setTitle("title")
.setVehicleStopover(true)
.build()
destinations.add(destination);
navigator.setDestinations(destinations, customRoutesOptions)
iOS
Transmita o token de rota para o SDK do Navigation usando o método mapView.navigator
setDestinations, especificando os mesmos pontos de referência de destino que você usou ao criar o token de rota:
// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})
Próximas etapas
- Conheça os SDKs: SDK do Navigation para Android | SDK do Navigation para iOS
- Personalizar a interface:saiba como personalizar a interface do SDK do Navigation