Routage vers les points d'accès

Le SDK Navigation pour Android offre des moyens améliorés de spécifier des waypoints, ce qui permet un routage plus précis et une meilleure expérience d'arrivée, en particulier pour les destinations avec plusieurs entrées ou points d'accès spécifiques. Vous pouvez définir des itinéraires vers des lieux 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 surbrillance de la destination continuera d'être appliqué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 cette méthode soit efficace pour la plupart des cas d'utilisation, 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 être associé au segment de route le plus proche, qui n'est pas forcément le point d'accès le plus pratique ou le plus approprié.

Les options de point de repère améliorées permettent de fournir plus de contexte.

Combiner l'ID de lieu avec 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 (lat/lng) tout en fournissant le contexte du lieu global (ID du 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 du 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 placeId et latlng :

  • L'itinéraire cible principalement le latlng spécifié.
  • Le placeId est utilisé comme contexte pour améliorer l'expérience à l'arrivée.
  • Solution de repli : si le SDK détermine que le placeId fourni correspond à une fonctionnalité trop éloignée du latlng donné, le placeId sera ignoré. Dans ce cas, le routage se fera uniquement vers le latlng, et les améliorations de l'expérience d'arrivée spécifiques au lieu ne seront pas disponibles.

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 s'agit d'un point de navigation spécifique et routable 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 Destinations de l'API Geocoding.
  2. Créez un Waypoint à l'aide de la méthode setNavigationPointToken() 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()

Récapitulatif des configurations de points de cheminement valides

Méthode setLatLng() setPlaceIdString() setNavigationPointToken() Comportement du routage Mise en évidence de la destination
LatLng uniquement set manquantes manquantes Redirige vers le segment de route le plus proche des coordonnées définies Non
ID de lieu uniquement manquantes set manquantes Itinéraires vers le point d'accès par défaut pour l'ID de lieu From PlaceID
Jeton de point de navigation uniquement manquantes manquantes set Itinéraires vers le point d'accès précis représenté par le jeton À partir de la destination définie dans la requête destinations method of the Geocoding API d'origine
LatLng 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 PlaceID, mais pas affiché si PlaceID est trop éloigné de LatLng