Ce document explique comment gérer les préférences de repère pour votre application à l'aide de deux fonctionnalités:
- Préférences de routage par côté de la route
- Escale
Définir la préférence de côté de la route pour le calcul d'itinéraire
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é de la route souhaité, par exemple, du côté de la route où le client d'un chauffeur de covoiturage attend. La fonctionnalité Preference de routage par 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 l'une des deux manières suivantes.
Privilégier le même côté de la route
Vous fournissez les coordonnées géographiques du point de repère, puis 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 repère, aligné sur le trottoir le plus proche.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;
Titre de segment préféré
Vous devez fournir les coordonnées géographiques du point d'intérêt, puis un angle d'arrivée preferredSegmentHeading
correspondant au sens de circulation sur le 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 voie s'aligne (à +/- 55 degrés) avec le côté de la route sur lequel se trouve le point de cheminement.
Définir une préférence d'escale
Dans certains endroits, les utilisateurs ne peuvent pas s'arrêter de manière sécurisée (par exemple, les zones surélevées, les ferries, les lieux souterrains et les autres zones à accès limité). La fonctionnalité Escale déplace le point de cheminement vers un lieu à proximité si son emplacement n'est pas adapté à un arrêt. 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 un arrêt lorsque vous créez le repère pour cet arrêt.
Pour ce faire, définissez la préférence pour un arrêt 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){...}];