Ce document explique comment gérer les préférences de points de repère pour votre application à l'aide de deux fonctionnalités :
- Préférences de routage pour le côté de la route
- Escales
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 repère. Toutefois, cela ne garantit pas que l'utilisateur arrivera du côté de la route souhaité, par exemple du côté où attend le client d'un chauffeur de VTC. La fonctionnalité Préférence de routage 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 pour arriver 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 différentes.
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, en étant placé sur le 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 au sens de circulation du même côté de la route que la destination.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location title:(NSString *)title preferredSegmentHeading:(int32_t)preferredSegmentHeading;
Le Navigation SDK choisit le segment de route le plus proche du point de cheminement, dont le sens de circulation correspond (à +/- 55 degrés) au côté de la route sur lequel se trouve le point de cheminement.
Définir une préférence d'escale
Dans certains lieux, il n'est pas possible pour les utilisateurs de s'arrêter en toute sécurité (par exemple, les zones en hauteur, les ferries, les lieux souterrains et d'autres zones à accès limité). La fonctionnalité Escale déplace le point de cheminement vers un lieu à proximité si son emplacement ne convient pas à un arrêt. Lorsque vous définissez vehicleStopover
sur YES
, le point de cheminement est automatiquement déplacé lorsque l'itinéraire est calculé, si un autre emplacement est disponible.
Fonctionnement
Vous définissez la préférence pour une escale lorsque vous créez le point de repère pour cette escale. Pour ce faire, définissez la préférence pour une escale sur un GMSNavigationMutableWaypoint
, comme indiqué 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){...}];