Experiencia de navegación personalizada
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
El SDK de Navigation proporciona diferentes formas de integrar una experiencia de navegación en tu app. En esta página, se explica qué es una experiencia de navegación personalizada y en qué se diferencia de otras experiencias de navegación disponibles en el SDK de Navigation.
¿Qué es una experiencia de navegación personalizada?
La principal forma de implementar el SDK de Navigation es usar la experiencia de navegación de Google, que te permite incorporar una experiencia de navegación paso a paso que usa elementos visuales y de IU proporcionados por Google, similar a la experiencia de navegación dentro de las apps de Google Maps. Si necesitas más flexibilidad que la que ofrece la experiencia de navegación de Google, puedes implementar una experiencia de navegación personalizada.
Una experiencia de navegación personalizada se refiere a cualquier cosa, desde eliminar por completo la guía de giros y ejecutar la navegación solo como un proceso en segundo plano, hasta proyectar una experiencia de guía altamente personalizada en una pantalla separada del dispositivo que ejecuta la navegación. Con una experiencia de navegación personalizada, tu app llama al SDK de Navigation para solicitar un feed de navegación paso a paso y, luego, tú proporcionas y administras los elementos visuales y de la IU que el usuario ve en la experiencia de navegación. Si bien usar la experiencia de navegación de Google suele ser más fácil de implementar, crear tu propia experiencia de navegación personalizada permite una mayor personalización.
Cuando creas una experiencia de navegación personalizada, tu app llama al SDK de Navigation para iniciar, ejecutar y detener la navegación, con el siguiente flujo:
Inicia la navegación. Al igual que con la experiencia de navegación de Google, una experiencia de navegación personalizada también implica crear una instancia de navegación y establecer el destino. Sin embargo, con una experiencia de navegación personalizada, primero debes establecer una sesión de navegación con GMSNavigationService.createNavigationSession
, que es un objeto sin IU que contiene un estado y que puede operar con un controlador de vistas o sin uno.
Para obtener más información, consulta Detalles sobre el feed de datos de indicaciones paso a paso.
Ver la demostración: La descarga del SDK de Navigation contiene una demostración que puedes ejecutar para ver un ejemplo de una experiencia de navegación que cambia entre la orientación paso a paso a través de la navegación estándar y una experiencia de navegación que muestra solo la ubicación del dispositivo que se mueve a lo largo de una polilínea de ruta.
Navegación activa Esta es otra diferencia clave entre una experiencia de navegación proporcionada por Google y una experiencia de navegación personalizada.
En lugar de entregar la orientación al administrador de eventos integrado del SDK de Navigation, debes configurar un objeto de escucha para la orientación detallada paso a paso implementando el protocolo GMSNavigatorListener
y, luego, implementar controladores de eventos. Esto permite que tu experiencia responda a los eventos que se describen en Cómo escuchar eventos de navegación.
Finaliza la navegación. Al igual que con la experiencia de navegación de Google, la navegación personalizada también requiere que finalices la navegación de la manera más adecuada para la experiencia de la app.
¿Cuándo podrías usar una experiencia de navegación personalizada?
En la siguiente tabla, se describen algunas situaciones de navegación personalizadas.
Situación de ejemplo |
Pasos generales |
Debes proporcionar indicaciones para el conductor solo con texto para dispositivos pequeños, como vehículos de 2 ruedas. |
Crea tu navegador y configura la guía paso a paso como un feed de datos para un dispositivo de pantalla pequeña mientras el navegador se ejecuta en el teléfono celular del conductor fuera de su vista inmediata. |
Quieres que tu app esté disponible como servicio para automóviles para los conductores que usan Apple CarPlay. |
- Configura el servicio de automóvil.
- Configura tu proyecto del SDK de Navigation.
- Establece un navegador si aún no lo hiciste.
- Configura un objeto de escucha para las indicaciones paso a paso.
- Dibuja el mapa en la superficie de la app para automóviles y completa los campos con el feed de datos que configuraste.
Para obtener más información, consulta Cómo habilitar la navegación para CarPlay. |
Los conductores que usan tu app quieren un mapa general para la mayor parte de su viaje, con solo una guía paso a paso mínima para las calles de la ciudad. |
Tu app debe permitir que los conductores entren y salgan de la experiencia de navegación de Google según sea necesario, sin alternar la configuración del navegador para el destino y el modo de viaje. |
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-08-31 (UTC)
[null,null,["Última actualización: 2025-08-31 (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. |"]]