Suivre des itinéraires pour véhicules imposants

À 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 utilitaires.

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 détaillée avec le SDK Navigation pour iOS.

Points abordés

Vous apprendrez à effectuer les tâches suivantes :

  • Utilisez un routeToken pour connecter la planification des itinéraires de backend à l'expérience de navigation dans l'application.
  • Configurez le SDK Navigation pour utiliser un itinéraire de camion prédéfini.
  • Découvrez 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 remplir les conditions suivantes :

1. Demander l'accès à votre projet

Le calcul d'itinéraire pour les gros véhicules est disponible pour un nombre limité de clients. Pour manifester 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 la marche à suivre.

Une fois que Google vous a accordé l'accès, assurez-vous que votre projet Google Cloud est provisionné pour le routage de véhicules de grande taille.

Si votre organisation utilise des projets Google Cloud distincts pour les API de routage du backend et le SDK Navigation mobile, contactez Google pour provisionner chaque projet.

2. Configurer la génération de routes de backend et obtenir un jeton de route

Avant de lancer la navigation sur l'appareil, votre serveur backend doit générer un itinéraire pour poids lourds et obtenir un routeToken à l'aide de l'une des API suivantes :

Votre requête de backend doit spécifier travelMode: TRUCK ainsi que les attributs physiques du véhicule (hauteur, largeur, longueur, poids, nombre d'essieux et cargaison dangereuse). L'API Routing renvoie un routeToken dans sa réponse, que votre serveur backend transmet à votre application mobile.

3. Respecter la configuration système requise et la version minimale du SDK

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 standards de configuration 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 véhicules de grande taille 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 des États-Unis.
  • 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 assurer leur sécurité ou respecter la loi. Il est possible que les itinéraires ne soient pas adaptés au véhicule dans toutes les conditions routières. Les suivre peut exposer les conducteurs à des dangers tels que des routes à hauteur limitée ou à poids limité. Les conducteurs doivent toujours rester vigilants et respecter les panneaux de signalisation et les réglementations locales.
  • Itinéraires optimisés au mieux : lorsque l'API Routing ne trouve pas d'itinéraire qui respecte entièrement les restrictions des véhicules, elle renvoie un itinéraire "optimisé au mieux" qui peut quand même traverser des segments à circulation restreinte. Par exemple, l'API Routes définit le flag routeRestrictionsPartiallyIgnored dans sa réponse. Lorsque vous empruntez ces itinéraires, le SDK Navigation affiche des encadrés pour mettre en évidence les restrictions concernées. Dans ces cas, planifiez soigneusement vos itinéraires et ne vous fiez pas à un itinéraire signalé comme source unique d'informations pour la planification ou la navigation.
  • Fonctionnalités non compatibles : le routage pour les véhicules volumineux n'est pas compatible avec les fonctionnalités suivantes :
    • Tarifs des péages pour les camions
    • Limitations de vitesse spécifiques aux camions ou aux véhicules imposants
    • Itinéraires pour les matières dangereuses radioactives
  • Limites d'utilisation : les requêtes envoyées au SDK Navigation sont soumises aux limites d'utilisation et de quota standards. Pour en savoir plus, consultez Utilisation et facturation.

Afficher l'UI spécifique aux camions (encadrés d'itinéraire)

Le SDK Navigation affiche automatiquement des avertissements visuels, appelés avertissements sur l'itinéraire, sur la carte pour alerter les conducteurs des restrictions à venir pour les camions. Les encadrés s'affichent pour les restrictions qui se produisent le long de l'itinéraire prévu, mais pas sur les autres routes à proximité.

Le SDK Navigation inclut des encadrés pour les restrictions suivantes :

Restriction Icône et texte de l'accroche Conditions d'affichage
Height Icône jaune de restriction de hauteur
Jaune : avertissement, votre véhicule est proche de la hauteur maximale autorisée
Icône rouge de limitation de hauteur
Rouge : votre véhicule dépasse la hauteur maximale autorisée
Une info-bulle jaune s'affiche lorsque la hauteur du véhicule est proche de la limite.
Carte affichant un avertissement de hauteur maximale
Un encadré rouge s'affiche si l'itinéraire n'est pas conforme et ne respecte pas une limite de hauteur.
Carte montrant une infraction liée à une limitation de hauteur
Pondération Icône de restriction de poids Un encadré rouge s'affiche lorsque le poids du véhicule dépasse la limite autorisée sur la route.
Carte montrant une icône de restriction de poids
Camions interdits Icône Camions interdits Une légende rouge s'affiche lorsque vous empruntez une section de route soumise à une restriction pour les poids lourds.
Carte affichant une icône indiquant que les camions sont interdits
Marchandises dangereuses Icône de produits dangereux Une légende rouge s'affiche lorsque la cargaison dangereuse du véhicule est interdite sur un tronçon de route.
Carte affichant une icône de produits dangereux

Fonctionnement des jetons de route

Un routeToken est un instantané chiffré d'un itinéraire créé par le backend de routage de Google. Il englobe 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 se déroule comme suit :

  1. Demander un itinéraire : votre serveur backend demande un itinéraire pour camion à l'API Routes (ou à l'API Route Optimization).
  2. Recevoir le jeton : l'API Routing calcule l'itinéraire conforme et renvoie un routeToken à votre serveur backend.
  3. Transférer le jeton : votre serveur backend transmet les coordonnées de routeToken et de destination à votre application mobile.
  4. Transmettre au SDK : l'application mobile transmet le routeToken au SDK Navigation.
  5. 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 indications de route et la gestion du recalcul d'itinéraire dynamique en fonction des restrictions du véhicule.

Recalculs et changements d'itinéraire dynamiques

Pendant la navigation active, les conditions de circulation, les routes fermées ou les changements de direction manqués peuvent entraîner une déviation du véhicule par rapport à l'itinéraire prévu.

Lorsque le trajet est recalculé :

  • 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 routeToken d'origine.
  • Le nouvel itinéraire recalculé évite les routes avec une hauteur libre limitée, les ponts avec une limite de poids et les routes interdites aux camions commerciaux.

Implémentation : démarrer un trajet spécifique à un camion

Suivez ces étapes pour initialiser et démarrer la navigation détaillée avec un jeton d'itinéraire pour véhicule volumineux.

Étape 1 : Obtenez le jeton de route depuis votre backend

Votre application mobile reçoit la chaîne routeToken ainsi que les coordonnées de destination de votre serveur backend. Pour savoir comment générer ce jeton sur votre serveur, consultez Générer des itinéraires et des ETA pour les véhicules de grande taille 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 : Transmettez le jeton au navigateur

Transmettez les points de cheminement routeToken et de destination à la méthode mapView.navigator setDestinations.

Lorsque vous configurez des waypoints et transmettez le jeton de route, tenez compte des points suivants :

  • Exigence de correspondance de la destination : les coordonnées de destination transmises à setDestinations doivent correspondre à celles utilisées lors de la génération de routeToken. Si vous spécifiez une autre destination, une erreur se produit.
  • Itinéraires sur le côté de la route : les grands véhicules commerciaux ne peuvent pas faire demi-tour facilement dans les rues étroites. Pour vous assurer que le camion approche de la destination du bon côté de la route, définissez preferSameSideOfRoad = true sur vos points de cheminement.
  • Escales de véhicules : pour guider le camion vers un lieu approprié pour s'arrêter ou décharger, définissez vehicleStopover = true sur vos points de cheminement.
  • Points de navigation : si votre destination dispose d'une entrée ou d'un quai de chargement spécifiques pour les marchandises, indiquez-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 commencer 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 waypoints 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 au tableau de bord à l'aide de Navigation pour CarPlay.

Étapes suivantes

  • Modifier l'UI de navigation : personnalisez les commandes et les éléments visuels intégrés de l'UI, 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 prévue et les changements d'itinéraire.