Le SDK Navigation pour iOS offre des moyens améliorés de spécifier des waypoints ou des points de navigation, ce qui permet un routage 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 des itinéraires vers des lieux précis à 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 des coordonnées de latitude et de longitude avec un ID de lieu pour obtenir un contexte supplémentaire.
Arrière-plan
Avant la version 10.10, vous pouviez définir un Waypoint à l'aide de coordonnées géographiques 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 lieux, les parcs ou les bâtiments avec 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 points 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 obtenir l'itinéraire le plus précis vers des points d'accès spécifiques tels que des entrées, des quais de chargement ou des zones de retrait 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 spécifique et routable associé à un lieu.
Pour spécifier un jeton de point de navigation :
Obtenez un
navigationPointTokenà partir de la réponse de la méthode Destinations de l'API Geocoding.Spécifiez
navigationPointTokenlorsque vous créez unGMSNavigationWaypoint.
Remarque : Vous ne pouvez pas spécifier simultanément un jeton de point de navigation avec une position et un PlaceID.
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] initWithNavigationPointToek:@"sampleNavigationPointToken"
Utiliser des jetons de points de navigation et des jetons d'itinéraire
Vous pouvez récupérer un jeton de point de navigation via l'API Geocoding, un jeton d'itinéraire depuis l'API Routes, puis transmettre à la fois le jeton de point de navigation et le jeton d'itinéraire au SDK 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 la précision d'un jeton de point de navigation.
Le jeton d'itinéraire oriente le choix de l'itinéraire par le SDK Navigation vers celui qui a été utilisé pour la tarification. Cela réduit le risque d'utiliser des itinéraires plus longs ou plus courts pour le trajet, ce qui peut entraîner des "chocs de prix".
Consultez la documentation de l'API Routes pour en savoir plus sur la spécification d'un lieu à l'aide d'un jeton de point de navigation et la création d'un jeton de route. Consultez Planifier un itinéraire pour savoir comment planifier un itinéraire à l'aide d'un jeton d'itinéraire.
Ce schéma montre comment une application de covoiturage ou de livraison utiliserait les jetons de point de navigation et les jetons d'itinéraire ensemble :
Combiner l'ID de lieu et la localisation
À partir de la version 10.10, vous pouvez fournir à la fois un ID de lieu et des coordonnées géographiques lorsque vous créez un point de repère. Cette méthode est utile lorsque vous souhaitez spécifier un point précis (l'emplacement) 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 :
- L'itinéraire cible principalement le
locationspécifié. - Le
placeIdest utilisé comme contexte pour améliorer l'expérience à l'arrivée. - Solution de repli : si le SDK détermine que le
placeIdfourni correspond à une fonctionnalité trop éloignée dulocationdonné, leplaceIdsera ignoré. Dans ce cas, le routage ne s'effectuera que vers lelocation, et les améliorations de l'expérience d'arrivée spécifiques au lieu ne seront pas disponibles.
Récapitulatif des configurations de points de cheminement valides
| Spécification | location |
placeID |
navigationPointToken |
Comportement du routage | Mise en évidence de la destination |
|---|---|---|---|---|---|
| Coordonnées du lieu uniquement | set | manquantes | manquantes | Redirige vers le segment de route le plus proche des coordonnées définies | Affiché si la destination peut être déduite avec un degré 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 définie dans la requête destinations method of the API Geocoding d'origine |
| Coordonnées géographiques et ID de lieu combinés | se | set | manquantes | Redirige vers le segment de route le plus proche des coordonnées définies | À partir de l'ID de lieu (non affiché si l'ID de lieu est trop éloigné des coordonnées de latitude/longitude) |