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 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 Android.

Points abordés

Vous apprendrez à effectuer les tâches suivantes :

  • Utiliser un routeToken pour connecter la planification d'itinéraire backend à l' expérience de navigation dans l'application.
  • Configurer le SDK Navigation pour utiliser un itinéraire préplanifié pour les camions.
  • 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 :

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.2.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, notez les limites et 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 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 ê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 au mieux : lorsque l'API de routage ne trouve pas d'itinéraire qui respecte pleinement les restrictions du véhicule, elle renvoie un itinéraire "au mieux" qui peut quand même traverser des segments restreints. Par exemple, l'API Routes définit le flag 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 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 une interface utilisateur 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 pour les camions. Les accroches 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 accroches pour les restrictions suivantes :

Restriction Icône et texte de l'accroche Conditions d'affichage
Hauteur 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
Une accroche jaune s'affiche lorsque la hauteur du véhicule est proche de la restriction.
Carte affichant un avertissement concernant une limitation de hauteur
Une accroche rouge s'affiche si l'itinéraire n'est pas conforme et enfreint une restriction de hauteur.
Carte montrant un cas de non-respect de la limite de hauteur
Poids Icône de restriction de poids Une accroche 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" Une accroche rouge s'affiche lorsque vous circulez sur un segment de route avec une restriction pour les camions commerciaux.
Carte affichant une icône indiquant que les camions sont interdits
Marchandises dangereuses Icône de produits dangereux Une accroche rouge s'affiche lorsque le chargement de matières dangereuses du véhicule est interdit sur un segment de route.
Carte affichant une icône de marchandises dangereuses

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 processus comprend les étapes suivantes :

  1. Demander un itinéraire : votre serveur backend demande un itinéraire pour les camions à l' API Routes (ou à l'API Route Optimization).
  2. Recevoir un jeton : l'API de routage calcule l'itinéraire conforme et renvoie un routeToken à votre serveur backend.
  3. Transférer un 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 le rendu des accroches d'itinéraire et la gestion du reroutage dynamique en fonction des restrictions du véhicule.

Recalculs et reroutage dynamiques

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 reroutage :

  • 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 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 : Configurer CustomRoutesOptions

Transmettez le jeton d'itinéraire à une CustomRoutesOptions instance à l'aide de CustomRoutesOptions.builder :

  • Transmettez le jeton à l'aide de setRouteToken(routeToken).
  • Définissez le mode de déplacement à l'aide de setTravelMode(CustomRoutesOptions.TravelMode.DRIVING).

Étape 3 : Définir des points de repère et définir des destinations

Transmettez vos points de repère de destination et CustomRoutesOptions à navigator.setDestinations.

Lorsque vous configurez des points de repère et transmettez des options d'itinéraire personnalisées, gardez à l'esprit les 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 du routeToken. Si vous spécifiez une destination différente, une erreur se produit.
  • Routage côté 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, appelez setPreferSameSideOfRoad(true) sur vos points de repère.
  • Arrêts de véhicules : pour guider le camion vers un emplacement approprié pour s'arrêter ou décharger, appelez setVehicleStopover(true) sur vos points de repère.
  • 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 4 : Gérer l'état de l'itinéraire et démarrer le guidage

Enregistrez un OnResultListener sur le ListenableResultFuture<Navigator.RouteStatus>. Lorsque l'état de l'itinéraire est OK, appelez navigator.startGuidance pour démarrer la navigation détaillée active.

Exemple de code

Utilisez CustomRoutesOptions.builder pour définir le jeton, puis transmettez-le à navigator.setDestinations.

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

val customRoutesOptions = CustomRoutesOptions.builder()
    .setRouteToken(routeToken)
    .setTravelMode(TravelMode.DRIVING)
    .build()

// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
    .setLatLng(10.0, 20.0)
    .setTitle("title")
    .setVehicleStopover(true)
    .build()
destinations.add(destination);

navigator.setDestinations(destinations, customRoutesOptions)

Écrans embarqués

Vous pouvez projeter la session de navigation pour les grands véhicules sur les écrans embarqués à l'aide de Navigation pour Android Auto.

Étapes suivantes

  • Modifier l'interface utilisateur de navigation : personnalisez les commandes d'interface utilisateur intégrées et les éléments visuels, 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 reroutages.