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 seja mais fácil implementar a experiência de navegação do Google, 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:
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 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.
Navegação ativa. Confira outra diferença importante entre uma experiência de navegação fornecida pelo Google e uma personalizada. Em vez de transferir a orientação para o gerenciador de eventos integrado do SDK Navigation, configure um listener para orientação detalhada trecho a trecho implementando o protocolo
GMSNavigatorListenere, em seguida, implemente manipuladores de eventos. Isso permite que sua experiência responda aos eventos descritos em Detectar eventos de navegação.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 de carro para motoristas que usam o Apple CarPlay. |
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. |