Questions fréquentes
Informations sur le produit
- Comment doit-on afficher l'avis sur les conditions d'utilisation du SDK Navigation ?
- Dans quelles langues les instructions vocales sont-elles disponibles ?
- Le cap est-il maintenu lorsque le conducteur quitte le mode navigation ?
- Les polylignes sont-elles disponibles lorsque vous commencez ou modifiez 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é de restaurants et d'autres destinations ?
- Le SDK Navigation indique-t-il le sens de circulation dans les voies lorsque vous approchez d'un point d'inflexion ?
Problèmes
- Dans Xcode 12, les applications ne se compilent pas correctement pour le simulateur. Comment résoudre ce problème ?
GMSMapView
ne 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 estimée est-elle communiquée aux utilisateurs de l'application ?
- Le
RoadSnappedLocationProvider
peut-il être utilisé pour obtenir la position actuelle du conducteur si la navigation n'est pas au premier plan ? - Le SDK Navigation est-il compatible avec le géorepérage ?
- Puis-je désactiver les notifications lorsque l'application Navigation est en arrière-plan ?
Personnalisation de l'interface utilisateur
- Puis-je ajouter un code couleur à la meilleure option d'itinéraire ?
- Le SDK Navigation peut-il afficher l'heure d'arrivée prévue pour la destination finale ?
- Comment masquer les mises à jour de l'heure d'arrivée ?
- Quelles personnalisations de l'UI sont disponibles pour les cartes d'en-tête et de pied de page ?
Routage
- Puis-je indiquer un itinéraire spécifique à un conducteur ou supprimer d'autres itinéraires ?
- Puis-je afficher au conducteur un libellé de destination différent de l'emplacement de destination par défaut ?
- Puis-je utiliser le SDK Navigation pour suivre les écarts par rapport à un chemin défini ?
- Le conducteur peut-il quitter la navigation sans terminer l'itinéraire ?
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 client des services de mobilité ?
- Comment le SDK Navigation est-il facturé aux clients Mobility Services ?
- Quelles API du SDK Navigation ne doivent être utilisées que par les clients de Mobility Services ?
- Si je suis client Mobility Services, puis-je également utiliser une implémentation du SDK Navigation autre que Mobility Services ?
Informations sur le produit
- Votre application doit implémenter une boîte de dialogue contenant la notification des 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.
- Sur Android, utilisez la méthode
NavigationApi.showTermsAndConditionsDialog
pour afficher la boîte de dialogue contenant les conditions. - Sur iOS, appelez
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - Toutes les langues prises en charge par Google Maps 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. Sous Android, une fois démarré,
LocationListener
continue de s'exécuter en arrière-plan. Votre application continue de caler la position sur la route et maintient l'orientation.Sur iOS, pour continuer à recevoir des mises à jour de position et de cap en arrière-plan, implémentez l'ancrage sur la route et définissez
allowsBackgroundLocationUpdates
surYES
. -
Oui. Lorsqu'une route est créée ou modifiée,
RouteChangeListener
fournit des polylignes. - Non, le SDK Navigation n'exige pas que Google Maps Mobile soit installé sur l'appareil.
- Non, le SDK Navigation ne propose pas cette fonctionnalité pour le moment.
- Oui. Le sens de circulation est disponible et affiché par défaut.
Problèmes
- Dans Xcode 12, les applications ne se compilent pas correctement pour le simulateur. Comment résoudre ce problème ?
-
Pour résoudre ce problème, ouvrez les paramètres "Build Settings" de votre projet Xcode et ajoutez
arm64
auExcluded Architectures
pour 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 NavSDK est activé dans Cloud Console.
- Si le SDK Nav est installé, mais que votre projet n'utilise pas les API du SDK Nav, 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 détermine la position approximative à l'aide du GPS et des capteurs de l'appareil.
- Un mode hors connexion est-il disponible ?
- Non, le SDK Navigation n'offre pas de mode hors connexion pour le moment. Toutefois, il fournit des informations pré-mises en cache 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 les itinéraires d'un trajet, appelez
Navigator.getRouteSegments()
.Sur 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 de parcours. De plus, le conducteur peut faire défiler la fiche de navigation dans l'en-tête pour voir chaque manœuvre.
- Comment l'heure d'arrivée 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 aux utilisateurs de l'application:
- Récupérez le temps et la distance de tous les points de cheminement à l'aide de
Navigator.getTimeAndDistanceList()
. - Transmettez ces informations à l'application cliente comme vous le faites actuellement pour l'heure d'arrivée prévue du conducteur.
Sur iOS, procédez comme suit pour fournir des informations sur l'heure d'arrivée aux utilisateurs de l'application:
- Récupérez les segments du trajet à l'aide de
Navigator.getRouteSegments()
. - Appelez
GMSNavigator.timeToNextDestination
pour chaque étape du trajet. - Transférez les informations temporelles à l'application cliente comme vous le faites actuellement pour l'heure d'arrivée estimée du conducteur.
- Récupérez le temps et la distance de tous les points de cheminement à l'aide de
-
Le
RoadSnappedLocationProvider
peut-il être utilisé pour obtenir la position actuelle du conducteur si la navigation n'est pas au premier plan ? -
Oui. Sous Android,
RoadSnappedLocationProvider
s'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
GMSRoadSnappedLocationProviderListener
et définissez la propriétéallowsBackgroundLocationUpdates
surTRUE
. - Le SDK Navigation est-il compatible avec le géorepérage ?
-
Non. Dans le contexte de la navigation,
remainingTimeOrdistanceChangeListener
présente un avantage par rapport à une simple zone géographique. La zone géographique 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 approcher 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 à la destination change de 100 m. À mesure que la distance diminue, vous pouvez modifier ce seuil pour qu'il soit inférieur 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/de dépôt.
Sur iOS, implémentez l'écouteur
GMSNavigatorListener.didUpdateRemainingDistance
pour 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.setHeadsUpNotificationEnabled
pour contrôler les notifications. Cette méthode comporte un argument booléen.FALSE
désactive les notifications,TRUE
les active.Sur iOS, désactivez la notification en arrière-plan pour les emplacements avec des routes en définissant
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
sur "NON".Pour désactiver le traitement en arrière-plan pour d'autres notifications de localisation, appelez
GMSNavigator.sendsBackgroundNotifications(NO)
.
Personnalisation de l'interface utilisateur
- Puis-je ajouter un code couleur à l'itinéraire le plus adapté ?
- Non. Il n'est pas possible de mettre en code couleur une option de parcours spécifique pour le moment.
- Le SDK Navigation peut-il afficher l'heure d'arrivée prévue pour la destination finale ?
-
Oui. Sur Android, utilisez les méthodes suivantes:
- Récupérez le temps et la distance de 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.
Sur 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=NO
sur "FALSE". - Affichez l'heure d'arrivée prévue à la destination finale.
- Récupérez le temps et la distance de tous les points de cheminement à l'aide de
- Comment masquer les mises à jour de l'heure d'arrivée ?
-
Vous pouvez désactiver les fiches d'heure d'arrivée estimée de la manière suivante:
- Sur Android, utilisez
navigationView.setEtaCardEnabled(false)
. - Sous iOS, utilisez
GMSMapView.settings.navigationFooterEnabled=NO
.
- Sur Android, utilisez
-
Sous Android, vous utilisez
StylingOptions
pour définir le style de couleur d'arrière-plan. Pour masquer ou afficher l'en-tête et le pied de page, utilisez les fonctions membressetHeaderEnabled
etsetFooterEnabled
deNavigationFragment
.Sous iOS, utilisez
GMSMapView.settings.navigationHeaderPrimaryBackgroundColor
pour 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ésnavigationFooterEnabled
etnavigationHeaderEnabled
deGMSUISettings
.
Routage
- Puis-je indiquer un itinéraire spécifique à un conducteur ou supprimer des itinéraires alternatifs ?
- Non. Par défaut, plusieurs itinéraires sont proposés, et 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 le trajet.
- Puis-je afficher à l'utilisateur de l'application un libellé de destination différent de l'emplacement de destination par défaut ?
-
Oui. Sur Android, créez un
Marker
avec un titre personnalisé pour la destination et la latitude/longitude. Le SDK Navigation affiche le titre personnalisé et les coordonnées sur leNavigationMap
.Sous iOS, vous créez et affichez un
GMSMarker
pour la destination. - Puis-je utiliser le SDK Navigation pour suivre les écarts par rapport à un parcours défini ?
-
Oui. Sur Android, utilisez
Navigator.setRouteChangedListener
pour 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 du parcours à 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 les informations sur 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 situations où le conducteur s'écarte de l'itinéraire prescrit.
Sur iOS, utilisez
GMSNavigator
et ses écouteurs pour recevoir des notifications lorsqu'un itinéraire change ou qu'un nouvel itinéraire est recommandé:- Dans le contrôleur de vue de la carte, implémentez le protocole
GMSNavigatorListener
et le protocoleGMSRoadSnappedLocationProviderListener
. - Implémentez
GMSNavigatorListener.navigatorDidChangeRoute
. - Accédez au nouvel itinéraire à l'aide des propriétés
routeLegs
etcurrentRouteLeg
deGMSNavigator
.
- Enregistrez un écouteur qui vérifie la position de l'appareil le long du parcours à l'aide de la méthode
-
Oui. Sous Android, appelez la méthode
Navigator.stopGuidance()
pour arrêter la navigation.Sur iOS, appelez
GMSNavigator.clearDestinations
.
Simulateur
- Le simulateur est-il compatible avec les modifications de parcours ?
-
Oui. Dans Android, appelez
simulateLocationsAlongNewRoute
pour simuler un trajet incluant un changement d'itinéraire. La méthodesimulateLocationsAlongExistingRoute
ignore les modifications apportées au parcours existant.Sur iOS, utilisez
GMSLocationSimulator.simulateAlongNewRouteToDestinations
pour simuler un trajet incluant un changement d'itinéraire. Si vous ne prévoyez aucun changement de route, vous pouvez utiliserGMSLocationSimulator.simulateLocationsAlongExistingRoute
ouGMSLocationSimulator.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 intent
se 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 une collection d'API et de SDK pour répondre aux besoins des entreprises du secteur des transports et de la logistique. Pour les clients Mobility Services, le SDK Navigation est généralement utilisé avec des services associés pour l'optimisation des itinéraires, la distribution, le suivi des tâches, l'analyse de la flotte, etc. Le SDK Navigation est également facturé différemment pour les clients Mobility Services. Pour en savoir plus, consultez la documentation sur les services de mobilité.
Les produits de mobilité ne sont actuellement 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
.
Plusieurs API du SDK Navigation ne sont destinées qu'aux clients Mobility Services, qui sont facturés par Google à la transaction. Si vous n'êtes pas client de Mobility Services, les méthodes suivantes ne sont pas exécutées:
Oui, les clients des services de mobilité peuvent utiliser à la fois les implémentations des services de mobilité et les implémentations autres que les services de mobilité du SDK de navigation. Toutefois, vous ne pouvez utiliser qu'un seul type d'implémentation dans une application à la fois. Vous devez également créer un projet, un compte de facturation et une clé API Google Cloud distincts de ceux que vous utilisez pour 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 encore client de Mobility Services et que vous souhaitez en savoir plus sur la collection d'API et de SDK Mobility Services, contactez l'équipe commerciale de Google Maps Platform.