Itinéraire vers des points de navigation

Le SDK Navigation pour iOS offre des moyens améliorés de spécifier des points de cheminement ou des points de navigation, ce qui permet d'obtenir un itinéraire plus précis et une meilleure expérience d'arrivée, en particulier pour les destinations comportant plusieurs entrées ou des points de navigation spécifiques. Vous pouvez définir un itinéraire vers des positions exactes à l'aide d'un navigationPointToken, qui est une chaîne encodant un lieu et un contexte d'itinéraire supplémentaire. Vous pouvez également combiner les coordonnées de latitude et de longitude avec un ID de lieu pour ajouter du contexte.

Arrière-plan

Avant la version 10.10, vous pouviez définir un Waypoint à l'aide de coordonnées de localisation ou d'un ID de lieu. Bien que parfois efficace, le routage uniquement vers une latitude et une longitude peut parfois entraîner des points de dépose ou de prise en charge non optimaux, en particulier pour les grands sites, les parcs ou les bâtiments dotés de plusieurs entrées. Le résultat peut s'aligner sur le segment de route le plus proche, qui n'est pas forcément le point d'accès le plus pratique ou le plus correct.

Les options de point de cheminement améliorées permettent de résoudre ce problème en vous permettant de fournir plus de contexte.

Utiliser un jeton de point de navigation

Pour un routage plus précis vers des points d'accès spécifiques tels que des entrées, des quais de chargement ou des zones de prise en charge désignées, vous pouvez utiliser un navigationPointToken.

Ce jeton est obtenu en appelant la méthode Destinations de l'API Geocoding. Il représente un point de navigation routable spécifique associé à un lieu.

Pour spécifier un jeton de point de navigation :

  1. Obtenez un navigationPointToken à partir de la réponse de la méthode SearchDestinations de l'API Geocoding.

  2. Spécifiez ce navigationPointToken lorsque vous créez un GMSNavigationWaypoint.

Swift

// Create a waypoint using a navigation endpoint token
let waypointTwo = GMSNavigationWaypoint(
  navigationPointToken: "ChIJALijSXPhQkARHmIozCCbXsASEgkFVjYHGH6PgBFrbM7wl3..",
  title: "Sydney Opera House")

// Route to the waypoint
navigator.setDestinations([waypointTwo]) { [weak self] routeStatus in
   self?.handleRouteCallback(status: routeStatus)
}

Objective-C

GMSNavigationWaypoint *waypointTwo =
    [[GMSNavigationWaypoint alloc] initWithNavigationPointToken:@"sampleNavigationPointToken"
                                                          title:@"Sydney Opera House"];

Utiliser des jetons de point de navigation et des jetons d'itinéraire

Vous pouvez récupérer un jeton de point de navigation via l'API Geocoding, l'utiliser dans une requête de l'API Routes pour obtenir un jeton d'itinéraire, puis transmettre uniquement le jeton d'itinéraire au SDK Navigation. Le jeton d'itinéraire conserve la précision du jeton de point de navigation. Cela est utile dans des scénarios tels que le covoiturage ou la livraison, où vous utilisez l'API Routes pour calculer le prix d'un trajet et où vous souhaitez bénéficier de la précision d'un jeton de point de navigation.

Avec le jeton d'itinéraire, le SDK Navigation démarre la navigation sur l'itinéraire que vous avez utilisé pour calculer le prix. Cela réduit le risque que des itinéraires plus longs ou plus courts soient utilisés pour le trajet, ce qui peut entraîner des "chocs de prix".

Pour en savoir plus sur les jetons de point de navigation et les jetons de route dans l'API Routes, consultez Spécifier des emplacements pour une route et Obtenir un jeton de route. Pour savoir comment planifier un itinéraire à l'aide d'un jeton d'itinéraire, consultez Planifier un itinéraire.

Le schéma suivant montre comment une application de covoiturage ou de livraison utilise à la fois des jetons de point de navigation et des jetons d'itinéraire. À partir de la version 11.3, l'application du conducteur ne transmet que le jeton de route au SDK Navigation à l'étape 7.

Diagramme de cas d'utilisation pour le covoiturage ou la livraison
Schéma d'un cas d'utilisation de covoiturage ou de livraison

Combiner l'ID de lieu et l'emplacement

À partir de la version 10.10, vous pouvez fournir à la fois un ID de lieu et des coordonnées de localisation lorsque vous créez un point de cheminement. Cette méthode est utile lorsque vous souhaitez spécifier un point précis (la position) tout en fournissant le contexte du lieu global (l'ID de lieu). Cela permet au SDK Navigation de fournir une expérience d'arrivée plus riche en mettant en évidence le bâtiment de destination ou en affichant les points d'intérêt à proximité associés à l'ID de lieu.

Swift

// Create a waypoint using both the latlng and placeID
let waypoint = GMSNavigationWaypoint(
  location: CLLocationCoordinate2DMake(-33.85657945261524, 151.21535034203333),  
  placeID: "ChIJ3S-JXmauEmsRUcIaWtf4MzE",
  title: "Sydney Opera House")

// Route to the waypoint
navigator.setDestinations([waypoint]) { [weak self] routeStatus in
   self?.handleRouteCallback(status: routeStatus)
}

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint = [[GMSNavigationWaypoint alloc] initWithLocation:placeID:coordinate title:@"waypoint from location and placeiD"];

Remarques

Lorsque vous fournissez à la fois placeID et location :

  • La route cible principalement le location spécifié.
  • placeID fournit un contexte qui améliore l'expérience d'arrivée.
  • Création de remplacement : si le SDK détermine que le placeID fourni correspond à un élément trop éloigné du location donné, il ignore le placeID. Dans ce scénario, l'itinéraire ne mène qu'au location, et les améliorations de l'expérience d'arrivée spécifiques au lieu ne sont pas disponibles.

Résumé des configurations de points de cheminement valides

Spécification location placeID navigationPointToken Comportement du routage Mise en évidence de la destination
Coordonnées de localisation uniquement set manquantes manquantes Redirige vers le segment de route le plus proche des coordonnées définies S'affiche si la destination peut être déduite avec un niveau de confiance élevé
ID de lieu uniquement manquantes set manquantes Itinéraires vers le point de navigation par défaut pour l'ID de lieu ID de lieu de départ
Jeton de point de navigation uniquement manquantes manquantes set Itinéraires vers le point de navigation précis représenté par le jeton Destination de départ définie dans la requête d'origine de la méthode destinations de l'API Geocoding
Coordonnées de l'emplacement et ID de lieu combinés set set manquantes Redirige vers le segment de route le plus proche des coordonnées définies À partir de l'ID de lieu, mais pas si l'ID de lieu est trop éloigné des coordonnées de latitude/longitude