À qui s'adresse ce guide : Lisez ce guide si vous êtes un développeur mobile chargé de créer l'expérience de navigation guidée pour les conducteurs de camions, de bus ou d'autres grands véhicules commerciaux.
Contenu de ce guide : Ce guide explique comment utiliser un itinéraire spécifique aux camions généré par l'API Routes ou l'API Route Optimization pour alimenter une session de navigation guidée avec le SDK Navigation pour iOS.
Points abordés
Vous apprendrez à effectuer les tâches suivantes :
- Utiliser un
routeTokenpour connecter la planification d'itinéraire backend à l' expérience de navigation dans l'application. - Configurer le SDK Navigation pour utiliser un itinéraire de camion préplanifié.
- Comprendre comment les restrictions spécifiques aux camions s'affichent pour le conducteur dans l'interface utilisateur de navigation.
Prérequis
Avant de commencer, assurez-vous de répondre aux exigences suivantes :
1. Demander l'accès à votre projet
Le routage pour les grands véhicules n'est disponible que pour un nombre limité de clients. Pour nous faire part de votre intérêt et demander l'accès à votre projet Google Cloud, remplissez le formulaire de contact. Un représentant Google vous contactera pour vous indiquer les prochaines étapes.
Une fois que Google vous a accordé l'accès, assurez-vous que votre projet Google Cloud est provisionné pour le routage des grands véhicules.
Si votre organisation utilise des projets Google Cloud distincts pour les API de routage backend et le SDK Navigation mobile, contactez Google pour provisionner chaque projet.
2. Configurer la génération d'itinéraires backend et obtenir un jeton d'itinéraire
Avant de démarrer la navigation sur l'appareil, votre serveur backend doit générer un itinéraire pour les camions et obtenir un routeToken à l'aide de l'une des API suivantes :
- API Routes : recommandée pour calculer des itinéraires de camion uniques entre des points de départ et des destinations. Pour obtenir des instructions de configuration, consultez Générer des itinéraires et des heures d'arrivée estimées pour les grands véhicules.
- API Route Optimization : recommandée pour optimiser les itinéraires à plusieurs arrêts pour une flotte. Pour en savoir plus, consultez le guide de routage pour les grands véhicules de l'API Route Optimization.
Votre requête backend doit spécifier travelMode: TRUCK ainsi que les attributs physiques du véhicule (hauteur, largeur, longueur, poids, nombre d'essieux et marchandises dangereuses). L'API de routage renvoie un routeToken dans sa réponse, que votre serveur backend transmet à votre application mobile.
3. Répondre aux exigences minimales du SDK et à la configuration système requise
Votre application doit utiliser la version minimale requise du SDK Navigation, 5.4.0 ou une version ultérieure.De plus, votre projet doit répondre aux exigences de configuration standard du SDK Navigation.
Limites et consignes opérationnelles
Avant de commencer, tenez compte des limites et des consignes opérationnelles suivantes :
- Disponibilité géographique : le routage pour les grands véhicules est disponible dans les 48 États contigus des États-Unis (disponibilité générale) et au Japon (expérimental). Il n'est pas disponible en Alaska, à Hawaï ni dans les territoires américains.
- Conseils et sécurité pour les conducteurs : les conducteurs ne doivent pas se fier uniquement aux itinéraires renvoyés par le SDK Navigation pour être en sécurité ou respecter la loi. Les itinéraires peuvent ne pas convenir au véhicule dans toutes les conditions de circulation, et les suivre peut exposer les conducteurs à des dangers tels que des dégagements insuffisants ou des routes à poids limité. Les conducteurs doivent toujours rester vigilants et respecter les panneaux de signalisation et les réglementations locales.
- Itinéraires optimaux : lorsque l'API de routage ne trouve pas d'itinéraire qui respecte pleinement les restrictions du véhicule, elle renvoie un itinéraire "optimal" qui peut quand même traverser des segments restreints. Par exemple, l'API Routes définit le flag
routeRestrictionsPartiallyIgnoreddans sa réponse. Lors de la navigation sur ces itinéraires, le SDK Navigation affiche des légendes d'itinéraire pour mettre en évidence les restrictions pertinentes. Dans ce cas, planifiez soigneusement les itinéraires et n'utilisez pas un itinéraire signalé comme source unique de vérité pour la planification ou la navigation. - Fonctionnalités non compatibles : le routage pour les grands véhicules n'est pas compatible avec les
fonctionnalités suivantes :
- Tarifs des péages pour les camions
- Limites de vitesse spécifiques aux camions ou aux véhicules lourds
- Routage pour les matières dangereuses radioactives
- Limites d'utilisation : les requêtes adressées au SDK Navigation suivent les limites d'utilisation et de quota standards. Pour en savoir plus, consultez Utilisation et facturation.
Afficher l'interface utilisateur spécifique aux camions (légendes d'itinéraire)
Le SDK Navigation affiche automatiquement des avertissements visuels, appelés légendes d'itinéraire, sur la carte pour alerter les conducteurs des restrictions à venir pour les camions. Les légendes s'affichent pour les restrictions qui se produisent sur l'itinéraire prévu, mais pas sur les autres routes à proximité.
Le SDK Navigation inclut des légendes pour les restrictions suivantes :
| Restriction | Icône et texte de la légende | Conditions d'affichage |
|---|---|---|
| Height |
Jaune = avertissement, votre véhicule est proche de la hauteur maximale autorisée
Rouge = votre véhicule dépasse la hauteur maximale autorisée |
Une légende jaune s'affiche lorsque la hauteur du véhicule est proche de la restriction.
Une légende rouge s'affiche si l'itinéraire n'est pas conforme et enfreint une restriction de hauteur.
|
| Weight |
|
Une légende rouge s'affiche lorsque le poids du véhicule
dépasse la limite de la route.
|
| Trucks Prohibited |
|
Une légende rouge s'affiche lorsque vous circulez sur un segment de route
avec une restriction pour les camions commerciaux.
|
| Hazardous Goods |
|
Une légende rouge s'affiche lorsque le chargement de matières dangereuses du véhicule est interdit sur un segment de route.
|
Fonctionnement des jetons d'itinéraire
Un routeToken est un instantané chiffré d'un itinéraire créé par le backend de routage de Google. Il encapsule la géométrie de l'itinéraire prévu, ainsi que les dimensions physiques et le profil de restriction du véhicule.
Le workflow suit les étapes suivantes :
- Demander un itinéraire : votre serveur backend demande un itinéraire pour les camions à l' API Routes (ou à l'API Route Optimization).
- Recevoir un jeton : l'API de routage calcule l'itinéraire conforme et
renvoie un
routeTokenà votre serveur backend. - Transférer un jeton : votre serveur backend transmet le
routeTokenet les coordonnées de destination à votre application mobile. - Transmettre au SDK : l'application mobile transmet le
routeTokenau SDK Navigation. - Démarrer le guidage : le SDK Navigation gère tous les aspects de l' expérience de navigation détaillée, y compris le rendu des légendes d'itinéraire et la gestion du recalcul dynamique de l'itinéraire en fonction des restrictions du véhicule.
Recalculs dynamiques et recalculs d'itinéraire
Pendant la navigation active, les conditions de circulation, les fermetures de routes ou les virages manqués peuvent entraîner une déviation du véhicule par rapport à l'itinéraire prévu.
En cas de recalcul d'itinéraire :
- Le SDK Navigation recalcule automatiquement l'itinéraire vers la destination.
- Le SDK conserve les attributs et les dimensions du véhicule encodés dans le
routeTokend'origine. - L'itinéraire nouvellement recalculé évite les dégagements insuffisants, les ponts à poids limité et les routes interdites aux camions commerciaux.
Implémentation : démarrer un trajet spécifique aux camions
Suivez ces étapes pour initialiser et démarrer la navigation détaillée avec un jeton d'itinéraire pour les grands véhicules.
Étape 1 : Obtenir le jeton d'itinéraire à partir de votre backend
Votre application mobile reçoit la chaîne routeToken ainsi que les coordonnées de destination de votre serveur backend. Pour en savoir plus sur la génération de ce
jeton sur votre serveur, consultez Générer des itinéraires et des heures d'arrivée estimées pour les grands véhicules
dans la documentation de l'API Routes.
Le code suivant est un exemple de jeton d'itinéraire :
{
"routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}
Étape 2 : Transmettre le jeton au navigateur
Transmettez le routeToken et les points de cheminement de destination à la méthode mapView.navigator
setDestinations.
Lorsque vous configurez des points de cheminement et que vous transmettez le jeton d'itinéraire, tenez compte des points suivants :
- Exigence de correspondance de la destination : les coordonnées de destination transmises à
setDestinationsdoivent correspondre à celles utilisées lors de la génération durouteToken. Si vous spécifiez une destination différente, une erreur se produit. - Routage sur le côté de la route : les grands véhicules commerciaux ne peuvent pas faire facilement
demi-tour dans les rues étroites. Pour vous assurer que le camion approche de la destination du bon côté de la route, définissez
preferSameSideOfRoad = truesur vos points de cheminement. - Arrêts de véhicules : pour guider le camion vers un emplacement approprié pour
s'arrêter ou décharger, définissez
vehicleStopover = truesur vos points de cheminement. - Points de navigation : si votre destination dispose d'une entrée de marchandises ou d'un quai de chargement désigné, spécifiez-le à l'aide d'un jeton de point de navigation.
Étape 3 : Gérer l'état de l'itinéraire et démarrer le guidage
Évaluez le GMSRouteStatus renvoyé dans le rappel setDestinations. Lorsque l'état est .OK (GMSRouteStatusOK), définissez isGuidanceActive = true (guidanceActive = YES) pour démarrer la navigation détaillée active.
Exemple de code
Transmettez le jeton d'itinéraire au SDK Navigation à l'aide de la méthode mapView.navigator
setDestinations, en spécifiant les mêmes points de cheminement de destination que ceux utilisés lors de la création du jeton d'itinéraire :
// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})
Écrans embarqués
Vous pouvez afficher la session de navigation pour les grands véhicules sur les écrans intégrés à l'aide de Navigation pour CarPlay.Étapes suivantes
- Modifier l'interface utilisateur de navigation : personnalisez les commandes d'interface utilisateur et les éléments visuels intégrés, tels que la boussole, le bouton de recentrage et la perspective de la caméra.
- Écouter les événements de navigation : gérez les mises à jour de navigation et les événements de cycle de vie, tels que la progression de l'itinéraire, les modifications de l'heure d'arrivée estimée et les recalculs d'itinéraire.