Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.
Le SDK Navigation offre différentes façons d'intégrer une expérience de navigation à votre application. Cette page explique ce qu'est une expérience de navigation personnalisée et en quoi elle diffère des autres expériences de navigation disponibles dans le SDK Navigation.
Qu'est-ce qu'une expérience de navigation personnalisée ?
La principale façon d'implémenter le SDK Navigation est d'utiliser l'expérience de navigation Google, qui vous permet d'intégrer une expérience de navigation détaillée utilisant des éléments d'interface utilisateur et des visuels fournis par Google, semblables à l'expérience de navigation dans les applications Google Maps. Si vous avez besoin de plus de flexibilité que l'expérience de navigation Google, vous pouvez implémenter une expérience de navigation personnalisée. Une expérience de navigation personnalisée peut aller de la suppression complète des instructions de navigation et de l'exécution de la navigation uniquement en tant que processus en arrière-plan, à la projection d'une expérience de navigation hautement personnalisée sur un écran distinct de l'appareil qui exécute la navigation. Avec une expérience de navigation personnalisée, votre application appelle le SDK Navigation pour demander un flux de navigation guidée, puis vous fournissez et gérez les éléments d'interface utilisateur et les éléments visuels que l'utilisateur voit dans l'expérience de navigation. Bien que l'utilisation de l'expérience de navigation Google soit généralement plus facile à implémenter, la création de votre propre expérience de navigation personnalisée permet une plus grande personnalisation.
Lorsque vous créez une expérience de navigation personnalisée, votre application appelle le SDK Navigation pour démarrer, exécuter et arrêter la navigation, en suivant le flux suivant :
Démarrez la navigation. Comme pour l'expérience de navigation Google, une expérience de navigation personnalisée implique toujours la création d'une instance de navigation et la définition de la destination. Toutefois, avec une expérience de navigation personnalisée, vous y parvenez en établissant d'abord une session de navigation à l'aide de GMSNavigationService.createNavigationSession, qui est un objet sans UI avec état qui peut fonctionner avec ou sans contrôleur de vue.
Voir la démo : le téléchargement du SDK Navigation contient une démo que vous pouvez exécuter pour voir un exemple d'expérience de navigation qui bascule entre le guidage vocal détaillé via la navigation standard et une expérience de navigation qui n'affiche que la position de l'appareil se déplaçant le long d'une polyligne routière.
Navigation active : Voici une autre différence essentielle entre une expérience de navigation fournie par Google et une expérience de navigation personnalisée. Au lieu de confier les conseils au gestionnaire d'événements intégré du SDK Navigation, vous activez le flux d'instructions vocales et implémentez des gestionnaires d'événements. Cela permet à votre expérience de répondre aux événements décrits dans Écouter les événements de navigation.
Arrêtez la navigation. Comme pour l'expérience de navigation Google, la navigation personnalisée nécessite également que vous mettiez fin à la navigation de la manière la mieux adaptée à l'expérience de l'application.
Quand utiliser une expérience de navigation personnalisée ?
Le tableau suivant décrit certains scénarios de navigation personnalisée.
Exemple de scénario
Étapes générales
Vous devez fournir des instructions textuelles pour les petits appareils tels que les véhicules à deux roues.
Créez votre navigateur et configurez les instructions détaillées comme flux de données sur un appareil à petit écran, tandis que le navigateur s'exécute sur le téléphone mobile du conducteur, hors de son champ de vision immédiat.
Vous souhaitez rendre votre application disponible en tant que service automobile pour les conducteurs qui utilisent Android Auto.
Configurez le service automobile.
Configurez votre projet SDK Navigation.
Établissez un navigateur si vous ne l'avez pas déjà fait.
Activez le flux de guidage vocal.
Dessinez la carte sur la surface de l'application automobile et renseignez les champs à partir du flux de données que vous avez configuré.
Les conducteurs qui utilisent votre application souhaitent une carte générale pour la majeure partie de leur trajet, avec un guidage détaillé minimal pour les rues de la ville.
Votre application doit permettre aux conducteurs d'accéder à l'expérience de navigation Google et d'en sortir selon leurs besoins, sans modifier les paramètres du navigateur pour la destination et le mode de trajet.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/16 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/16 (UTC)."],[[["\u003cp\u003eThe Navigation SDK offers both a pre-built Google navigation experience and the flexibility to create custom navigation experiences.\u003c/p\u003e\n"],["\u003cp\u003eCustom navigation experiences allow developers to manage UI elements, visuals, and event handling for a highly tailored user interface.\u003c/p\u003e\n"],["\u003cp\u003eThis customization ranges from background navigation to projecting guidance onto separate screens, giving developers more control.\u003c/p\u003e\n"],["\u003cp\u003eCustom experiences involve starting navigation, managing active navigation with event handlers, and ending navigation as needed.\u003c/p\u003e\n"],["\u003cp\u003eUse cases for custom navigation include text-only guidance, Android Auto integration, and dynamic switching between map views and turn-by-turn instructions.\u003c/p\u003e\n"]]],[],null,["The 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\nThe primary way to implement the Navigation SDK is to use the [Google\nnavigation\nexperience](/maps/documentation/navigation/android-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 For more information, see [Enable turn-by-turn data\n feed](/maps/documentation/navigation/android-sdk/tbt-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 enable the turn-by-turn feed and implement event\n handlers. This allows your experience to respond to the events described in\n [Listen for navigation\n events](/maps/documentation/navigation/android-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\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 Android Auto. | 1. Set up the car service. 2. Set up your Navigation SDK project. 3. Establish a navigator if you haven't already. 4. Enable the turn-by-turn guidance feed. 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 Android Auto](/maps/documentation/navigation/android-sdk/android-auto) |\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. |"]]