Gérer les points de cheminement

Ce document explique comment gérer les préférences de points de cheminement pour votre application à l'aide de deux fonctionnalités :

  • Préférences de calcul d'itinéraire selon le côté de la route
  • Escale

Définir la préférence de routage pour le côté de la route

Par défaut, le SDK Navigation pour iOS trouve l'itinéraire le plus rapide vers un point de cheminement. Toutefois, cela ne garantit pas que l'utilisateur arrivera du côté souhaité de la route, par exemple, du côté de la route où le client d'un conducteur de covoiturage attend. La fonctionnalité Préférence de routage du côté de la route vous permet de vous assurer que le véhicule arrive du bon côté de la route.

Fonctionnement

Vous définissez la préférence d'arrivée d'un côté particulier de la route lorsque vous créez le point de cheminement pour cet arrêt. Vous pouvez spécifier la préférence de deux manières.

Privilégier le même côté de la route

Vous fournissez les coordonnées géographiques du point de cheminement, puis vous définissez un indicateur preferSameSideOfRoad qui indique que vous préférez arriver du même côté de la route que le point de cheminement, ancré au trottoir le plus proche.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                   preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;

Définir un cap d'arrivée

Vous fournissez les coordonnées géographiques du point de cheminement, puis un cap d'arrivée preferredSegmentHeading qui correspond à la direction du trafic du même côté de la route que la destination.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                preferredSegmentHeading:(int32_t)preferredSegmentHeading;

Le SDK Navigation choisit le segment de route le plus proche du point de cheminement, dont la direction de la voie correspond (à +/- 55 degrés) au côté de la route où se trouve le point de cheminement.

Définir la préférence d'escale

Dans certains endroits, les utilisateurs ne peuvent pas s'arrêter en toute sécurité (par exemple, les zones surélevées, les ferries, les lieux souterrains et d'autres zones à accès limité). La fonctionnalité Stopover déplace le point de cheminement vers un lieu à proximité si son emplacement ne convient pas à un arrêt de l'utilisateur. Lorsque vous définissez vehicleStopover sur YES, le point de cheminement est automatiquement déplacé lors du calcul de l'itinéraire, si un autre emplacement est disponible.

Fonctionnement

Vous définissez la préférence pour une escale lorsque vous créez le point de cheminement correspondant. Pour ce faire, définissez la préférence pour une escale sur un GMSNavigationMutableWaypoint, comme illustré dans l'exemple suivant :

Swift

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint = GMSNavigationMutableWaypoint(location: location, title: "waypoint from location")!
waypoint.vehicleStopover = true
mapView.navigator?.setDestinations([waypoint], routingOptions: routingOptions, callback: {...})

Objective-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationMutableWaypoint *waypoint =
    [[GMSNavigationMutableWaypoint alloc] initWithLocation:location
                                                     title:@"waypoint from location"];
waypoint.vehicleStopover = YES;
[_mapView.navigator setDestinations:@[waypoint1]
                     routingOptions:routingOptions
                           callback:^(GMSRouteStatus routeStatus){...}];