Questions fréquentes
Informations sur le produit
- Comment l'avis sur les conditions d'utilisation du SDK Navigation doit-il être affiché ?
- Quelles sont les langues disponibles pour le guidage vocal ?
- Le cap est-il conservé lorsque le conducteur quitte le mode 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 sur leur mobile ?
- Le SDK Navigation peut-il identifier les parkings à proximité des restaurants et d'autres destinations ?
- Le SDK Navigation affiche-t-il le sens de circulation dans les voies à l'approche d'un point de changement de direction ?
Problèmes
- Dans Xcode 12, les applications ne se compilent pas correctement pour le simulateur. Comment résoudre ce problème ?
GMSMapView
ne se charge pas.
Réseau
Données
- Puis-je récupérer tous les arrêts/destinations d'un trajet avant de commencer l'itinéraire ?
- L'itinéraire détaillé est-il disponible au début d'un trajet ?
- Comment l'heure d'arrivée estimée est-elle communiquée aux utilisateurs de l'application ?
- L'
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 attribuer un code couleur à la meilleure option d'itinéraire ?
- Le SDK Navigation peut-il afficher l'heure d'arrivée prévue à la destination finale ?
- Comment masquer les mises à jour de l'heure d'arrivée estimée ?
- Quelles personnalisations de l'UI sont disponibles pour les cartes d'en-tête et de pied de page ?
Routage
- Puis-je fournir un itinéraire spécifique à un chauffeur ou supprimer des itinéraires alternatifs ?
- Puis-je indiquer au chauffeur un autre libellé pour la destination que celui par défaut ?
- 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 ?
Simulateur
Workflows
Services de mobilité
- En quoi l'utilisation du SDK Navigation est-elle différente pour les clients des services de mobilité ?
- Comment savoir si je suis client des services de mobilité ?
- 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 des services de mobilité ?
- Si je suis client Mobility Services, puis-je également utiliser une implémentation non Mobility Services du SDK Navigation ?
Informations sur le produit
- Votre application doit implémenter une boîte de dialogue avec l'avis sur 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 d'utilisation est fourni avec le SDK Navigation.
- Dans Android, utilisez la méthode
NavigationApi.showTermsAndConditionsDialog
pour afficher la boîte de dialogue contenant les conditions d'utilisation. - Dans iOS, appelez
GMSNavigationServices.showTermsAndConditionsDialogIfNeededWithCompanyName
. - Toutes les langues acceptées par Google Maps Mobile sont automatiquement disponibles pour le SDK Navigation. Un appareil possède une langue système par défaut qu'une application ne peut pas modifier. Toutefois, l'application a accès à plus de 70 langues.
-
Oui. Sur Android, une fois démarré, le
LocationListener
continue de s'exécuter en arrière-plan. Votre application continue d'accrocher la position à la route et de conserver le cap.Dans iOS, pour continuer à recevoir des mises à jour de position et de cap en arrière-plan, implémentez l'accrochage à la route et définissez
allowsBackgroundLocationUpdates
surYES
. -
Oui. Lorsqu'un itinéraire est créé ou modifié,
RouteChangeListener
fournit des polylignes. - Non, le SDK Navigation ne nécessite pas l'installation de Google Maps Mobile sur l'appareil.
- Non, le SDK Navigation ne fournit 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 corriger 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 la console Cloud.
- Si le SDK Navigation est installé, mais que votre projet n'utilise pas les API du SDK Navigation, supprimez-le de votre binaire.
Réseau
- Comment le SDK Navigation gère-t-il la mauvaise connectivité ?
- Le SDK Navigation prémet en cache l'itinéraire de 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'écarte de l'itinéraire. Le SDK Navigation estime la position à l'aide du GPS et des capteurs de l'appareil.
- Existe-t-il un mode hors connexion ?
- Non, le SDK Navigation ne propose 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. Dans Android, pour récupérer l'itinéraire d'un trajet, appelez
Navigator.getRouteSegments()
.Dans iOS, appelez
GMSNavigator.routeLegs(read)
. - Le guidage routier détaillé est-il disponible au début d'un itinéraire ?
- Oui. Le SDK Navigation fournit une liste de segments de route. De plus, le conducteur peut balayer la carte des instructions dans l'en-tête pour voir chaque manœuvre.
- Comment le temps estimé à l'arrivée est-il communiqué aux utilisateurs de l'application ?
-
Dans Android, procédez comme suit pour fournir des informations sur l'heure d'arrivée estimée 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'estimation de l'heure d'arrivée du chauffeur.
Sur iOS, suivez ces étapes pour fournir des informations sur l'heure d'arrivée estimée aux utilisateurs de l'application :
- Récupérez les étapes 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 pour l'heure d'arrivée prévue du chauffeur.
- Récupérez la durée et la distance pour 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. Dans Android,
RoadSnappedLocationProvider
s'exécute en arrière-plan par défaut.Dans 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 zone géographique. Il est possible que la zone géographique ne tienne pas compte de la géométrie de la route et qu'elle ne soit pas centrée sur le point exact vers lequel le conducteur se dirige.Vous pouvez approximer 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 définir un seuil plus petit pour 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.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, tandis queTRUE
les active.Dans iOS, désactivez les notifications en arrière-plan pour les positions ajustées sur la route en définissant
GMSRoadSnappedLocationProvider.allowsBackgroundLocationUpdates
sur NO.Pour désactiver le traitement en arrière-plan des 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. Le codage couleur d'une option d'itinéraire spécifique n'est pas disponible pour le moment.
- Le SDK Navigation peut-il afficher l'heure d'arrivée prévue à la destination finale ?
-
Oui. Dans 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 repère 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 estimée du point de repère actuel en définissant
MSMapView.settings.navigationFooterEnabled=NO
sur 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 mises à jour de l'heure d'arrivée estimée ?
-
Vous pouvez désactiver les cartes d'heure d'arrivée estimée de différentes manières :
- Sur Android, utilisez
navigationView.setEtaCardEnabled(false)
. - Sur iOS, utilisez
GMSMapView.settings.navigationFooterEnabled=NO
.
- Sur Android, utilisez
-
Sur Android, vous utilisez
StylingOptions
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 fonctions membressetHeaderEnabled
etsetFooterEnabled
deNavigationFragment
.Dans 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 fournir un itinéraire spécifique à un chauffeur ou supprimer des 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, comme "éviter les autoroutes et les péages". L'ajout de points de repère affecte également l'itinéraire.
- Puis-je afficher un libellé différent pour la destination de l'utilisateur de l'application par rapport à la destination par défaut ?
-
Oui. Dans Android, créez un
Marker
avec un titre personnalisé pour la destination, ainsi que la latitude et la longitude. Le SDK Navigation affiche le titre personnalisé et les coordonnées surNavigationMap
.Dans iOS, vous créez et affichez un
GMSMarker
pour la destination. - Puis-je utiliser le SDK Navigation pour suivre les écarts par rapport à un itinéraire 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 sur 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 les informations actualisées sur l'heure d'arrivée prévue et la distance.
- 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
GMSNavigator
et 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 le protocole
GMSNavigatorListener
et le protocoleGMSRoadSnappedLocationProviderListener
. - Implémenter
GMSNavigatorListener.navigatorDidChangeRoute
. - Accédez à la nouvelle route à l'aide des propriétés
routeLegs
etcurrentRouteLeg
deGMSNavigator
.
- Enregistrez un écouteur qui vérifie la position de l'appareil sur l'itinéraire à l'aide de la méthode
-
Oui. Sur Android, appelez la méthode
Navigator.stopGuidance()
pour arrêter la navigation.Dans iOS, appelez
GMSNavigator.clearDestinations
.
Simulateur
- Le simulateur est-il compatible avec les changements d'itinéraire ?
-
Oui. Dans Android, appelez
simulateLocationsAlongNewRoute
pour simuler un trajet incluant un changement d'itinéraire. La méthodesimulateLocationsAlongExistingRoute
ignore les modifications apportées à la route existante.Dans iOS, utilisez
GMSLocationSimulator.simulateAlongNewRouteToDestinations
pour simuler un trajet incluant un changement d'itinéraire. Si vous ne prévoyez aucune modification d'itinéraire, 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)
. L'événementresume 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 un ensemble d'API et de SDK pour répondre aux besoins des entreprises de transport et de logistique. Pour les clients Mobility Services, le SDK Navigation est généralement utilisé en association avec des services associés pour l'optimisation des itinéraires, la répartition, le suivi des tâches, l'analyse du parc automobile et plus encore. Le SDK Navigation est également facturé différemment pour les clients Mobility Services. Pour en savoir plus, consultez la documentation Mobility Services.
Les produits de mobilité 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 sont uniquement destinées aux clients Mobility Services, qui sont facturés par Google par transaction. Si vous n'êtes pas client de Mobility Services, les méthodes suivantes sont des no-ops :
Oui, les clients Mobility Services peuvent utiliser les implémentations Mobility Services et non Mobility Services du SDK Navigation. Toutefois, vous ne pouvez utiliser qu'un seul type d'implémentation à la fois dans une application. Vous devez également créer un compte de facturation, un projet Google Cloud et une clé API distincts de ceux que vous utilisez avec votre implémentation Mobility Services. 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 client des services de mobilité et que vous souhaitez en savoir plus sur la collection d'API et de SDK des services de mobilité, contactez l'équipe commerciale Google Maps Platform.