Experiência de navegação personalizada

O SDK Navigation oferece diferentes maneiras de integrar uma experiência de navegação ao seu app. Esta página explica o que é uma experiência de navegação personalizada e como ela difere de outras experiências de navegação disponíveis no SDK Navigation.

O que é uma experiência de navegação personalizada?

A principal maneira de implementar o SDK Navigation é usar a experiência de navegação do Google, que permite incorporar uma experiência de navegação passo a passo usando elementos e recursos visuais da interface fornecidos pelo Google, semelhante à experiência de navegação nos apps do Google Maps. Se você precisar de mais flexibilidade do que a experiência de navegação do Google oferece, implemente uma experiência de navegação personalizada. Uma experiência de navegação personalizada pode ser desde a eliminação completa das orientações de curva e a execução da navegação apenas como um processo em segundo plano até a projeção de uma experiência de orientação altamente personalizada em uma tela separada do dispositivo que executa a navegação. Com uma experiência de navegação personalizada, seu app chama o SDK Navigation para solicitar um feed de navegação orientada por voz e, em seguida, você fornece e gerencia os elementos e recursos visuais da interface que o usuário vê na experiência de navegação. Embora usar a experiência de navegação do Google seja geralmente mais fácil de implementar, criar sua própria experiência de navegação personalizada permite mais personalização.

Ao criar uma experiência de navegação personalizada, seu app chama o SDK Navigation para iniciar, executar e interromper a navegação, usando o seguinte fluxo:

  1. Inicie a navegação. Assim como na experiência de navegação do Google, uma experiência de navegação personalizada ainda envolve a criação de uma instância de navegação e a definição do destino. No entanto, com uma experiência de navegação personalizada, isso é feito primeiro estabelecendo uma sessão de navegação usando GMSNavigationService.createNavigationSession, que é um objeto sem interface do usuário que pode operar com um controlador de visualização ou sem um.

    Para mais informações, consulte Detalhes sobre o feed de dados de instruções detalhadas.

    Confira a demonstração:o download do SDK Navigation contém uma demonstração que você pode executar para ver um exemplo de uma experiência de navegação que alterna entre a navegação guiada padrão e uma experiência de navegação que mostra apenas a localização do dispositivo se movendo ao longo de uma polilinha de uma via.

  2. Navegação ativa. Esta é outra diferença importante entre uma experiência de navegação fornecida pelo Google e uma personalizada. Em vez de transferir orientações para o gerenciador de eventos integrado do SDK Navigation, configure um listener para orientações detalhadas trecho a trecho implementando o protocolo GMSNavigatorListener e, em seguida, implemente manipuladores de eventos. Isso permite que sua experiência responda aos eventos descritos em Detectar eventos de navegação.

  3. Encerrar a navegação. Assim como na experiência de navegação do Google, a navegação personalizada também exige que você encerre a navegação da maneira mais adequada para a experiência do app.

Quando você pode usar uma experiência de navegação personalizada?

A tabela a seguir descreve alguns cenários de navegação personalizada.

Exemplo de cenário

Etapas avançadas

Você precisa fornecer orientações para motoristas apenas com texto para dispositivos pequenos, como veículos de duas rodas.

Crie seu navegador e configure o trajeto guiado como um feed de dados para um dispositivo de tela pequena enquanto o navegador é executado no smartphone do motorista fora do campo de visão imediato.

Você quer disponibilizar seu app como um serviço para motoristas que usam o Apple CarPlay.

  1. Configure o serviço de carro.
  2. Configure seu projeto do SDK Navigation.
  3. Estabeleça um navegador, se ainda não tiver feito isso.
  4. Configure um listener para orientação passo a passo.
  5. Desenhe o mapa na superfície do app automático e preencha os campos com base no feed de dados configurado.

Para mais informações, consulte Ativar a navegação para o CarPlay.

Os motoristas que usam seu app querem um mapa geral para a maior parte da viagem, com apenas um mínimo de orientação passo a passo para ruas da cidade.

O app precisa permitir que os motoristas entrem e saiam da experiência de navegação do Google conforme necessário, sem alternar as configurações do navegador para destino e modo de viagem.