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 détaillé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 allez apprendre à effectuer les tâches suivantes :

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

1. Demander l'accès pour votre projet

Le routage pour les gros véhicules est disponible pour un nombre limité de clients. Pour exprimer votre intérêt et demander l'accès pour 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 calcul d'itinéraires pour les véhicules de grande taille.

Si votre organisation utilise des projets Google Cloud distincts pour les API de routage de backend et le SDK Navigation pour 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 camion 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 de matières dangereuses). L'API Routes renvoie un routeToken dans sa réponse, que votre serveur backend transmet à votre application mobile.

3. Respecter les exigences minimales concernant le SDK et le système

Votre application doit utiliser la version minimale requise du SDK Navigation, à savoir la version 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 des 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 garantir leur sécurité ou leur conformité à la loi. Les itinéraires peuvent ne pas être adaptés au véhicule dans toutes les conditions routières, et les suivre peut exposer les conducteurs à des dangers tels que des hauteurs de passage insuffisantes ou des routes à 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 Routes ne trouve pas d'itinéraire entièrement conforme aux restrictions du véhicule, elle renvoie un itinéraire "optimisé au mieux" qui peut toujours traverser des segments restreints. Par exemple, l'API Routes définit l'option routeRestrictionsPartiallyIgnored dans sa réponse. Lors de la navigation sur ces itinéraires, le SDK Navigation affiche des accroches d'itinéraire pour mettre en évidence les restrictions pertinentes. Dans ce cas, planifiez soigneusement vos 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 des véhicules de grande taille 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 lourds
    • Itinéraire pour les matières radioactives dangereuses
  • Limites d'utilisation : les requêtes envoyées au SDK Navigation sont soumises aux limites d'utilisation et aux quotas standards. Pour en savoir plus, consultez Utilisation et facturation.

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

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

Le SDK Navigation inclut des accroches pour les restrictions suivantes :

Restriction Icône et texte d'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 restriction de hauteur
Rouge = Votre véhicule dépasse la hauteur maximale autorisée
Un encadré jaune s'affiche lorsque la hauteur du véhicule est proche de la limite.
Carte affichant un avertissement de restriction de hauteur
Un encadré rouge s'affiche si l'itinéraire n'est pas conforme et ne respecte pas une restriction de hauteur.
Carte montrant un non-respect de la hauteur maximale autorisée
Pondération Icône de restriction de poids Un encadré rouge s'affiche lorsque le poids du véhicule dépasse la limite de la route.
Carte affichant une icône de restriction de poids
Camions interdits Icône "Camions interdits" Un encadré rouge s'affiche lorsque vous circulez sur un segment de route soumis à une restriction pour les camions commerciaux.
Carte affichant une icône d'interdiction pour les camions
Marchandises dangereuses Icône de marchandises dangereuses Un message rouge s'affiche lorsque le transport de matières dangereuses par le véhicule est interdit sur un segment de route.
Carte affichant une icône de marchandises dangereuses

Fonctionnement des jetons de route

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 planifié, ainsi que les dimensions physiques et le profil de restriction du véhicule.

Le workflow comprend les étapes suivantes :

  1. Demande d'itinéraire : votre serveur backend demande un itinéraire pour camion à l'API Routes (ou à l'API Route Optimization).
  2. Recevoir un jeton : l'API Routes calcule l'itinéraire conforme et renvoie un routeToken à votre serveur backend.
  3. Transférer le jeton : votre serveur backend transmet le routeToken et les coordonnées 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 l'affichage des repères d'itinéraire et la gestion du changement d'itinéraire dynamique en fonction des restrictions du véhicule.

Recalculs et réacheminements 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.

Lorsqu'un nouvel itinéraire est proposé :

  • 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 ponts à faible hauteur ou à charge limitée, ainsi que 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 grand véhicule.

Étape 1 : Obtenez le jeton d'itinéraire auprès 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 prévues pour les véhicules de grande taille dans la documentation de l'API Routes.

Le code suivant est un exemple de jeton de route :

{
  "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g"
}

Étape 2 : Définissez des destinations avec le jeton d'itinéraire

Transmettez routeToken à la méthode mapView.navigatorsetDestinationsWithToken:completionHandler:. Le SDK Navigation obtient les destinations à partir du jeton de route, ainsi que le profil de routage TRUCK qui lui indique d'appliquer les contraintes liées aux grands véhicules. Vous n'avez pas besoin de transmettre de points de cheminement. Le mode de transport de votre application doit être .driving (GMSNavigationTravelModeDriving), qui est la valeur par défaut, ou .twoWheeler (GMSNavigationTravelModeTwoWheeler).

Définissez les options de point de cheminement dans la requête API Routes qui crée le jeton de route. Le SDK Navigation les obtient à partir du jeton, ainsi que vos destinations. Pour les véhicules de grande taille, tenez compte des options suivantes :

  • Itinéraires côté route : les grands véhicules commerciaux ne peuvent pas facilement faire demi-tour dans les rues étroites. Pour vous assurer que le camion s'approche de la destination du bon côté de la route, définissez sideOfRoad sur true sur le point de cheminement de destination.
  • Arrêts du véhicule : pour guider le camion vers un emplacement approprié pour s'arrêter ou décharger, définissez vehicleStopover sur true sur le point de cheminement de destination.
  • Points de navigation : si votre destination dispose d'une entrée de fret ou d'un quai de chargement désignés, 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

Une fois que le SDK Navigation a terminé de calculer l'itinéraire, il transmet un GMSNavigationRouteDescription à votre gestionnaire d'achèvement. Lorsque son routeStatus est .OK (GMSRouteStatusOK), définissez isGuidanceActive = true (guidanceActive = YES) pour lancer la navigation détaillée active.

Pour vérifier que le SDK Navigation a appliqué votre jeton de route, consultez Vérifier si le SDK Navigation a appliqué votre jeton de route.

Exemple de code

Transmettez le jeton d'itinéraire à setDestinationsWithToken:completionHandler:, puis démarrez le guidage lorsque l'état de l'itinéraire est .OK.

// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"

mapView.navigator?.setDestinationsWithToken(routeToken) { [weak self] routeDescription, error in
  if routeDescription?.routeStatus == .OK {
    self?.mapView.navigator?.isGuidanceActive = true
  }
}

Écrans embarqués

Vous pouvez afficher la session de navigation pour les grands véhicules sur les écrans du tableau de bord à l'aide de la 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 changements d'heure d'arrivée prévue et les changements d'itinéraire.