Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.
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:
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.
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.
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.
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 as orientações de 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.
Configure o serviço de carro.
Configure seu projeto do SDK Navigation.
Estabeleça um navegador, se ainda não tiver feito isso.
Configure um listener para orientação passo a passo.
Desenhe o mapa na superfície do app automático e preencha os campos com base no feed de dados configurado.
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.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-27 UTC."],[[["\u003cp\u003eThe Navigation SDK offers a custom navigation experience for greater flexibility beyond the standard Google navigation experience.\u003c/p\u003e\n"],["\u003cp\u003eCustom navigation involves managing UI elements and visuals, starting navigation sessions, listening for events, and ending navigation.\u003c/p\u003e\n"],["\u003cp\u003eCustom experiences are suitable for scenarios like text-only guidance, Carplay integration, or combining overview maps with minimal turn-by-turn guidance.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can access the turn-by-turn data feed and detailed navigation events to create highly customized navigation interfaces.\u003c/p\u003e\n"]]],[],null,["# Custom navigation experience\n\nThe Navigation SDK provides different ways to integrate a navigation\nexperience into your app. This page explains what a custom navigation experience\nis and how it differs from other navigation experiences that are available in\nthe Navigation SDK.\n\nWhat is a custom navigation experience?\n---------------------------------------\n\nThe primary way to implement the Navigation SDK is to use the [Google\nnavigation\nexperience](/maps/documentation/navigation/ios-sdk/intro-google-nav),\nwhich lets you embed a turn-by-turn navigation experience that uses\nGoogle-provided UI elements and visuals --- similar to the navigation experience\nwithin the Google Maps apps. If you need more flexibility than the Google\nnavigation experience offers, you can implement a custom navigation experience.\nA custom navigation experience refers to anything from eliminating turn guidance\nentirely with and running navigation only as a background process, to projecting\na highly customized guidance experience to a screen separate from the device\nthat runs the navigation. With a custom navigation experience, your app calls\nthe Navigation SDK to request a turn-by-turn navigation feed, and then\nyou provide and manage the UI elements and visuals that the user sees in the\nnavigation experience. While using the Google navigation experience is generally\neasier to implement, building your own custom navigation experience allows for\nmore customization.\n\nWhen you create a custom navigation experience, your app calls the Navigation\nSDK to start, run, and stop navigation, using the following flow:\n\n1. **Start navigation** . As with the Google navigation experience, a custom\n navigation experience still involves creating a navigation instance and\n setting the destination. However, with a customized navigation experience,\n you achieve this by first establishing a navigation session using\n `GMSNavigationService.createNavigationSession`, which is a state-bearing\n non-UI object that can operate either with a view controller, or without\n one.\n\n \u003cbr /\u003e\n\n For more information, see [Details about the turn-by-turn data\n feed](/maps/documentation/navigation/ios-sdk/nav-only-feed).\n\n **See the demo:** The download of the Navigation SDK contains a demo\n you can run to see an example of a navigation experience that switches\n between turn-by-turn guidance through standard navigation to a navigation\n experience that shows only the device location moving along a road\n polyline.\n2. **Active navigation** . Here is another key difference between a\n Google-provided navigation experience and a custom navigation experience.\n Instead of handing off guidance to the built-in event manager of the\n Navigation SDK, you set up a listener for detailed turn-by-turn guidance by implementing the `GMSNavigatorListener` protocol, and then implement event\n handlers. This allows your experience to respond to the events described in\n [Listen for navigation\n events](/maps/documentation/navigation/ios-sdk/events).\n\n3. **End navigation**. As with the Google navigation experience, custom\n navigation also requires you to terminate navigation in the manner best\n suited for the app's experience.\n\nWhen might you use a custom navigation experience?\n--------------------------------------------------\n\nThe following table describes some custom navigation scenarios.\n\n| **Example scenario** | **High-level steps** |\n|----------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| You need to provide text-only driver guidance for small devices such as 2-wheeled vehicles. | Create your navigator and set up the turn-by-turn guidance as a data feed to a small screen device while the navigator runs on the driver's mobile phone outside of their immediate view. |\n| You want to make your app available as a car service for drivers who use Apple Carplay. | 1. Set up the car service. 2. Set up your Navigation SDK project. 3. Establish a navigator if you haven't already. 4. Set up a listener for turn-by-turn guidance. 5. Draw the map on the auto app surface and populate the fields from the data feed you configured. For more information, see [Enable Navigation for Carplay](/maps/documentation/navigation/ios-sdk/carplay) |\n| Drivers using your app want an overview map for most of their journey, with only minimal turn-by-turn guidance for city streets. | Your app should allow drivers to enter and exit the Google navigation experience as they need, without alternating the navigator's settings for destination and trip mode. |"]]