Le SDK Navigation pour Android offre des moyens améliorés de spécifier des points de cheminement, 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 vous rendre à des emplacements précis à l'aide d'un navigationPointToken ou en combinant des coordonnées de latitude et de longitude avec un ID de lieu pour plus de contexte. La fonctionnalité de mise en avant de la destination continuera d'être utilisée, le cas échéant.
Arrière-plan
Avant la version 7.4, vous pouviez définir un Waypoint à l'aide de coordonnées de latitude et de longitude 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 sous-optimaux, en particulier pour les grands lieux, les parcs ou les bâtiments comportant plusieurs entrées. Le résultat peut s'aligner sur le segment de route le plus proche, qui n'est peut-être pas le point de navigation le plus pratique ou le plus correct.
Les options de point de cheminement améliorées résolvent ce problème en permettant de fournir plus de contexte.
Utiliser un jeton de point de navigation
Pour un routage plus précis vers des points de navigation 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 spécifique et routable associé à un lieu.
Pour spécifier un jeton de point de navigation :
- Obtenez un
navigationPointTokenà partir de la méthode Destinations de la réponse de l'API Geocoding. - Créez un
Waypointà l'aide de la méthodesetNavigationPointToken()dans le compilateur.
Remarque : Lorsque vous utilisez setNavigationPointToken(), vous ne pouvez pas utiliser simultanément setLatLng() ni setPlaceIdString(). Ces méthodes s'excluent mutuellement avec setNavigationPointToken().
// Assuming 'navPointToken' is a String obtained from the destinations method of the Geocoding API
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithToken = Waypoint.builder()
.setTitle(destinationName)
.setNavigationPointToken(navPointToken)
.build();
// Use this waypoint in navigator.setDestinations()
Combiner l'ID de lieu, la latitude et la longitude
À partir de la version 7.4, vous pouvez fournir à la fois un ID de lieu et des coordonnées de latitude et de longitude lorsque vous créez un Waypoint. Cette méthode est utile lorsque vous souhaitez spécifier un point précis (latitude/longitude) tout en fournissant le contexte du lieu global (ID de lieu). Cela permet au SDK Navigation de fournir une expérience d'arrivée plus riche en mettant en avant le bâtiment de destination ou en affichant les points d'intérêt à proximité associés à l'ID de lieu.
// Assuming 'placeId' is the Place ID String
// Assuming 'lat' and 'lng' are the double values for latitude and longitude
// Assuming 'destinationName' is a String title for the waypoint
Waypoint waypointWithPlaceIdAndLatLng = Waypoint.builder()
.setTitle(destinationName)
.setPlaceIdString(placeId)
.setLatLng(lat, lng)
.build();
// Use this waypoint in navigator.setDestinations()
Remarques
Lorsque vous fournissez à la fois placeId et latlng :
- L'itinéraire cible principalement le
latlngspécifié. - Le
placeIdest utilisé comme contexte pour améliorer l'expérience d'arrivée. - Solution de repli : si le SDK détermine que le
placeIdfourni correspond à une fonctionnalité trop éloignée dulatlngdonné, leplaceIdest ignoré. Dans ce cas, le routage ne s'effectue que vers lelatlng, et les améliorations de l'expérience d'arrivée spécifiques au lieu ne sont pas disponibles.
Récapitulatif des configurations de point de cheminement valides
| Méthode | setLatLng() |
setPlaceIdString() |
setNavigationPointToken() |
Comportement du routage | Mise en avant de la destination |
|---|---|---|---|---|---|
| Coordonnées de latitude/longitude 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 niveau de confiance élevé |
| ID de lieu uniquement | manquantes | set | manquantes | Redirige vers le point de navigation par défaut pour l'ID de lieu | À partir de l'ID de lieu |
| Jeton de point de navigation uniquement | manquantes | manquantes | set | Redirige vers le point de navigation précis représenté par le jeton | À partir de la destination définie dans la méthode Destinations d'origine de la requête de l'API Geocoding |
| Coordonnées de latitude/longitude 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 non affiché si l'ID de lieu est trop éloigné des coordonnées de latitude/longitude |