Questions fréquentes
Informations sur le produit
- Comment afficher l'avis sur les conditions d'utilisation du SDK Navigation ?
- Dans quelles langues le guidage vocal est-il disponible ?
- L'orientation est-elle conservée lorsque le conducteur quitte le mode de navigation ?
- Les polylignes sont-elles disponibles lorsque je démarre ou modifie un itinéraire ?
- Les utilisateurs de l'application doivent-ils avoir installé Google Maps pour mobile ?
- Le SDK Navigation peut-il identifier les parkings à proximité des restaurants et d'autres destinations ?
- Le SDK Navigation indique-t-il le sens de circulation dans les voies à l'approche d'un virage ?
Problèmes
- Dans Xcode 12, les applications ne se compilent pas correctement pour le simulateur. Comment résoudre ce problème ?
GMSMapViewne se charge pas.
Réseau
- Comment le SDK Navigation gère-t-il une mauvaise connectivité ?
- Un mode hors connexion est-il disponible ?
Données
- Puis-je récupérer tous les arrêts/destinations d'un trajet avant de commencer l'itinéraire ?
- La navigation détaillée est-elle disponible au début d'un itinéraire ?
- Comment l'heure d'arrivée prévue est-elle communiquée aux utilisateurs de l'application ?
- Le
RoadSnappedLocationProviderpeut-il être utilisé pour obtenir la position actuelle du conducteur sur la route si la navigation n'est pas au premier plan ? - Le SDK Navigation est-il compatible avec le geofencing ?
- Puis-je désactiver les notifications lorsque l'application Navigation est en arrière-plan ?
Personnalisation de l'interface utilisateur
- Puis-je utiliser un code couleur pour l'option d'itinéraire la plus rapide ?
- Le SDK Navigation peut-il afficher l'heure d'arrivée prévue à la destination finale ?
- Comment masquer les notifications d'heure d'arrivée prévue ?
- Quelles personnalisations de l'interface utilisateur sont disponibles pour les fiches d'en-tête et de pied de page ?
Routage
- Puis-je fournir un itinéraire spécifique à un conducteur ou supprimer les itinéraires alternatifs ?
- Puis-je afficher un libellé de destination différent de l'emplacement de destination par défaut pour le conducteur ?
- Puis-je utiliser le SDK Navigation pour suivre les écarts par rapport à un itinéraire défini ?
- Le conducteur peut-il quitter la navigation sans terminer l'itinéraire ?
- Le SDK Navigation est-il compatible avec l'itinéraire et la navigation pour les camions et les grands véhicules ?
Simulateur
Workflows
Services de mobilité
- En quoi l'utilisation du SDK Navigation est-elle différente pour les clients Mobility Services ?
- Comment savoir si je suis un client Mobility Services ?
- Comment le SDK Navigation est-il facturé aux clients des services de mobilité ?
- Quelles API du SDK Navigation ne doivent être utilisées que par les clients Mobility Services ?
- Si je suis un client Mobility Services, puis-je également utiliser une implémentation du SDK Navigation qui n'est pas liée à Mobility Services ?
Informations sur le produit
- Votre application doit implémenter une boîte de dialogue contenant les conditions d'utilisation du SDK Navigation, que chaque conducteur doit accepter. Cette boîte de dialogue permet au conducteur d'accepter les conditions d'utilisation. Un fichier texte des conditions est fourni avec le SDK Navigation.
- Dans Android, utilisez la méthode
NavigationApi.showTermsAndConditionsDialogpour afficher la boîte de dialogue contenant les conditions d'utilisation. - Dans iOS, appelez
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName. - Toutes les langues compatibles avec Google Maps pour mobile sont automatiquement disponibles pour le SDK Navigation. Un appareil dispose d'une langue système par défaut, et une application ne peut pas modifier ce paramètre. Toutefois, l'application a accès à plus de 70 langues.
-
Oui. Dans Android, une fois démarré,
LocationListenercontinue de s'exécuter en arrière-plan. Votre application continue d'aligner la position sur la route et conserve l'orientation.Sur iOS, pour continuer à recevoir des notifications de position et d'orientation en arrière-plan, implémentez l'alignement sur la route et définissez
allowsBackgroundLocationUpdatessurYES. -
Oui. Lorsqu'un itinéraire est créé ou modifié,
RouteChangeListenerfournit des polylignes. - Non, le SDK Navigation ne nécessite pas l'installation de Google Maps Mobile sur l'appareil.
- Non, le SDK Navigation ne propose pas cette fonctionnalité pour le moment.
- Oui. La direction du trafic est disponible et affichée par défaut.
Problèmes
- Dans Xcode 12, les applications ne se compilent pas correctement pour le simulateur. Comment corriger ce problème ?
-
Pour résoudre ce problème, ouvrez les paramètres "Build Settings" de votre projet Xcode et ajoutez
arm64auExcluded Architecturespour les builds "iOS Simulator" uniquement.Pour plus d'informations, consultez ce fil de discussion StackOverflow.
- GMSMapView ne se charge pas.
-
Si GMSMapView ne se charge pas :
- Vérifiez que le SDK Navigation est activé dans la console Cloud.
- Si le SDK Navigation est installé, mais que votre projet n'utilise pas ses API, supprimez-le de votre binaire.
Réseau
- Comment le SDK Navigation gère-t-il une mauvaise connectivité ?
- Le SDK Navigation pré-met en cache l'itinéraire pour chaque trajet. Les informations pré-mises en cache incluent des informations de routage pour 15 à 20 minutes, ainsi que des itinéraires alternatifs au cas où le conducteur s'écarterait de l'itinéraire. Le SDK Navigation estime la position à l'aide du GPS et des capteurs de l'appareil.
- Un mode hors connexion est-il disponible ?
- Non, le SDK Navigation ne propose pas de mode hors connexion pour le moment. Toutefois, il fournit des informations pré-mémorisées pour un trajet.
Données
- Puis-je récupérer tous les arrêts/destinations d'un trajet avant de commencer l'itinéraire ?
-
Oui. Sur Android, pour récupérer l'itinéraire d'un trajet, appelez
Navigator.getRouteSegments().Dans iOS, appelez
GMSNavigator.routeLegs(read). - La navigation détaillée est-elle disponible au début d'un itinéraire ?
- Oui. Le SDK Navigation fournit une liste de segments d'itinéraire. De plus, le conducteur peut balayer la fiche d'itinéraire dans l'en-tête pour voir chaque manœuvre.
- Comment l'heure d'arrivée prévue est-elle communiquée aux utilisateurs de l'application ?
-
Sur Android, procédez comme suit pour fournir des informations sur l'heure d'arrivée prévue aux utilisateurs de l'application :
- Récupérez la durée et la distance pour tous les points de cheminement à l'aide de
Navigator.getTimeAndDistanceList(). - Transmettez ces informations à l'application cliente comme vous le faites pour l'heure d'arrivée prévue du conducteur.
Sous iOS, procédez comme suit pour fournir des informations sur l'heure d'arrivée prévue aux utilisateurs de l'application :
- Récupérez les étapes du trajet à l'aide de
Navigator.getRouteSegments(). - Appelez
GMSNavigator.timeToNextDestinationpour chaque étape du trajet. - Transmettez les informations de temps à l'application cliente comme vous le faites pour l'heure d'arrivée prévue du conducteur.
- Récupérez la durée et la distance pour tous les points de cheminement à l'aide de
-
Le
RoadSnappedLocationProviderpeut-il être utilisé pour obtenir la position actuelle du conducteur si la navigation n'est pas au premier plan ? -
Oui. Sur Android,
RoadSnappedLocationProviders'exécute en arrière-plan par défaut.Sur iOS, pour que la navigation continue de s'exécuter en arrière-plan, implémentez l'écouteur pour
GMSRoadSnappedLocationProviderListeneret définissez la propriétéallowsBackgroundLocationUpdatessurTRUE. - Le SDK Navigation est-il compatible avec le géorepérage ?
-
Non. Dans le contexte de la navigation,
remainingTimeOrdistanceChangeListenerprésente un avantage par rapport à un géorepérage. La zone de géorepérage peut ne pas tenir compte de la géométrie de la route et ne pas être centrée sur le point exact vers lequel le conducteur se dirige.Vous pouvez obtenir une approximation de cette fonctionnalité à l'aide de
remainingTimeOrdistanceChangeListener.- Définissez le seuil pour déterminer la fréquence des rappels.
- Vérifiez la distance restante jusqu'à la destination.
Par exemple, si vous définissez le seuil sur 100 m, vous recevez un rappel lorsque la distance jusqu'à la destination change de 100 m. À mesure que la distance diminue, vous pouvez réduire ce seuil et recevoir des rappels plus fréquents. Ensuite, vérifiez la distance restante pour déterminer si vous êtes suffisamment proche du lieu de prise en charge ou de dépose.
Dans iOS, implémentez l'écouteur
GMSNavigatorListener.didUpdateRemainingDistancepour gérer la distance entre les notifications. - Puis-je désactiver les notifications lorsque l'application Navigation est en arrière-plan ?
-
Oui. Sur Android, utilisez
Navigator.setHeadsUpNotificationEnabledpour contrôler les notifications. Cette méthode comporte un argument booléen.FALSEdésactive les notifications, tandis queTRUEles active.Sous iOS, désactivez la notification en arrière-plan pour les positions alignées sur la route en définissant
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdatessur NO.Pour désactiver le traitement en arrière-plan pour les autres notifications de localisation, appelez
GMSNavigator.sendsBackgroundNotifications(NO).
Personnalisation de l'interface utilisateur
- Puis-je attribuer un code couleur à la meilleure option d'itinéraire ?
- Non. Il n'est pas possible d'attribuer un code couleur à une option d'itinéraire spécifique pour le moment.
- Le SDK Navigation peut-il afficher l'heure d'arrivée prévue à la destination finale ?
-
Oui. Sur Android, utilisez les méthodes suivantes :
- Récupérez la durée et la distance pour tous les points de cheminement à l'aide de
Navigator.getTimeAndDistanceList(). - Masquez l'heure d'arrivée prévue du point de cheminement actuel à l'aide de
NavigationFragment.setEtaCardEnabled(false). - Affichez l'heure d'arrivée prévue à la destination finale.
Dans iOS, utilisez les éléments suivants :
- Appelez
GMSNavigator.routeLegs(read). - Pour la dernière étape, appelez
GMSNavigator.timeToNextDestination. - Masquez l'heure d'arrivée prévue du point de cheminement actuel en définissant
MSMapView.settings.navigationFooterEnabled=NOsur FALSE. - Affichez l'heure d'arrivée prévue à la destination finale.
- Récupérez la durée et la distance pour tous les points de cheminement à l'aide de
- Comment masquer les notifications d'heure d'arrivée prévue ?
-
Vous pouvez désactiver les cartes d'heure d'arrivée prévue de différentes manières :
- Sur Android, utilisez
navigationView.setEtaCardEnabled(false). - Sous iOS, utilisez
GMSMapView.settings.navigationFooterEnabled=NO.
- Sur Android, utilisez
-
Dans Android, vous utilisez
StylingOptionspour définir le style de la couleur d'arrière-plan. Pour masquer ou afficher l'en-tête et le pied de page, utilisez les fonctions membressetHeaderEnabledetsetFooterEnableddeNavigationFragment.Dans iOS, utilisez
GMSMapView.settings.navigationHeaderPrimaryBackgroundColorpour définir le style de la couleur d'arrière-plan. Pour masquer ou afficher l'en-tête et le pied de page, utilisez les propriétésnavigationFooterEnabledetnavigationHeaderEnableddeGMSUISettings.
Routage
- Puis-je fournir un itinéraire spécifique à un conducteur ou supprimer les itinéraires alternatifs ?
- Non. Par défaut, plusieurs itinéraires sont proposés, et l'itinéraire le plus rapide est prioritaire. Vous pouvez modifier l'itinéraire par défaut en ajoutant des préférences à votre requête, par exemple "éviter les autoroutes et les péages". L'ajout de points de cheminement a également une incidence sur l'itinéraire.
- Puis-je afficher un libellé de destination différent de l'emplacement de destination par défaut pour l'utilisateur de l'application ?
-
Oui. Dans Android, créez un
Markeravec un titre personnalisé pour la destination et la latitude/longitude. Le SDK Navigation affiche le titre personnalisé et les coordonnées sur leNavigationMap.Dans iOS, vous créez et affichez un
GMSMarkerpour la destination. - Puis-je utiliser le SDK Navigation pour suivre les écarts par rapport à un itinéraire défini ?
-
Oui. Sur Android, utilisez
Navigator.setRouteChangedListenerpour recevoir des notifications lorsqu'un itinéraire change ou qu'un nouvel itinéraire est recommandé :- Enregistrez un écouteur qui vérifie la position de l'appareil le long de l'itinéraire à l'aide de la méthode
Navigator.setRouteChangedListener. - Ajoutez du code au gestionnaire d'événements de rappel,
onRouteChanged:- Envoyez un message à l'utilisateur de l'application avec l'heure d'arrivée prévue et la distance mises à jour.
- Suivre la position de l'appareil
- [Facultatif] Ajoutez d'autres fonctionnalités requises par votre application pour gérer les cas où le conducteur s'écarte de l'itinéraire prescrit.
Dans iOS, utilisez
GMSNavigatoret ses écouteurs pour recevoir des notifications lorsqu'un itinéraire change ou qu'un nouvel itinéraire est recommandé :- Sur le contrôleur de vue de la carte, implémentez les protocoles
GMSNavigatorListeneretGMSRoadSnappedLocationProviderListener. - Implémentez
GMSNavigatorListener.navigatorDidChangeRoute. - Accédez au nouvel itinéraire à l'aide des propriétés
routeLegsetcurrentRouteLegdeGMSNavigator.
- Enregistrez un écouteur qui vérifie la position de l'appareil le long de l'itinéraire à l'aide de la méthode
-
Oui. Dans Android, appelez la méthode
Navigator.stopGuidance()pour arrêter la navigation.Dans iOS, appelez
GMSNavigator.clearDestinations. - Le SDK Navigation est-il compatible avec l'itinéraire et la navigation pour les camions et les véhicules de grande taille ?
-
Oui. Avec le routage des véhicules de grande taille (LVR), vous pouvez transmettre au SDK Navigation des jetons d'itinéraire spécifiques aux camions générés par l'API Routes ou l'API Route Optimization. Le SDK fournit une navigation détaillée avec des repères d'itinéraire (restrictions de hauteur, de poids, de matières dangereuses et de camions) et conserve le profil physique du véhicule lors du changement d'itinéraire dynamique. Pour en savoir plus, consultez Naviguer sur des itinéraires pour véhicules de grande taille.
Simulateur
- Le simulateur est-il compatible avec les changements d'itinéraire ?
-
Oui. Dans Android, appelez
simulateLocationsAlongNewRoutepour simuler un trajet incluant un changement d'itinéraire. La méthodesimulateLocationsAlongExistingRouteignore les modifications apportées à la route existante.Sous iOS, utilisez
GMSLocationSimulator.simulateAlongNewRouteToDestinationspour simuler un trajet incluant un changement d'itinéraire. Si vous ne prévoyez pas de modifier l'itinéraire, vous pouvez utiliserGMSLocationSimulator.simulateLocationsAlongExistingRouteouGMSLocationSimulator.simulateAlongNewRouteToDestinations.
Workflows
- Comment ignorer la notification après avoir fermé une activité contenant un fragment de navigation ?
-
La notification de navigation reste visible pendant la navigation, lorsque l'activité est fermée. Lorsque le véhicule arrive à destination, la navigation s'arrête et la notification disparaît.
Pour gérer les clics sur la notification, utilisez
Navigator.startGuidance(intent resumeIntent).resume intentse déclenche lorsque l'utilisateur de l'application clique sur la notification. En règle générale,Navigator.startguidance(getIntent())est appelé à partir de l'activité principale, qui rappelle l'activité lorsque l'utilisateur de l'application clique sur la notification.
Services de mobilité
Les services de mobilité Google Maps Platform proposent un ensemble d'API et de SDK pour répondre aux besoins des entreprises de transport et de logistique. Pour les clients des services de mobilité, le SDK Navigation est généralement utilisé avec des services associés pour l'optimisation des itinéraires, la répartition, le suivi des tâches, l'analyse de la flotte, etc. Le SDK Navigation est également facturé différemment pour les clients des services de mobilité. Pour en savoir plus, consultez la documentation sur les services de mobilité.
Les produits Mobility ne sont disponibles que pour certains clients. Pour en savoir plus, contactez votre conseiller commercial.
ReportBillableEvent dans votre code. Seuls les clients Mobility Services doivent appeler la méthode ReportBillableEvent.
Le SDK Navigation contient plusieurs API qui ne sont destinées qu'aux clients des services de mobilité, qui sont facturés par Google par transaction. Si vous n'êtes pas un client Mobility Services, les méthodes suivantes sont des opérations sans effet :
Oui, les clients Mobility Services peuvent utiliser les implémentations du SDK Navigation avec et sans Mobility Services. Toutefois, vous ne pouvez utiliser qu'un seul type d'implémentation dans une application à la fois. Vous devez également créer un projet Google Cloud, un compte de facturation et une clé API distincts de ceux que vous utilisez avec votre implémentation des services de mobilité. Pour en savoir plus, consultez la présentation de la configuration du SDK Navigation.
Pour en savoir plus sur l'utilisation d'une implémentation du SDK Navigation autre que Mobility Services, y compris sur la migration d'une application d'un type d'implémentation à un autre, contactez votre responsable de compte Google.
Remarque : Si vous n'êtes pas un client Mobility Services et que vous souhaitez en savoir plus sur la collection d'API et de SDK Mobility Services, contactez l'équipe commerciale Google Maps Platform.