En este documento, se describe cómo puedes administrar las preferencias de los puntos de referencia para tu app con dos funciones:
- Preferencias de ruta según el lado de la ruta
- Parada
Cómo establecer la preferencia de ruta según el lado de la ruta
De forma predeterminada, el SDK de Navigation para iOS encuentra la ruta más rápida a un punto de referencia, pero esto no garantiza que el usuario llegue al lado de la ruta deseado, por ejemplo, el lado de la ruta en el que espera el cliente de un conductor de viajes compartidos. La función Preferencia de ruta por lado de la ruta te permite asegurarte de que el vehículo llegue al lado correcto de la ruta.
Cómo funciona
Estableces la preferencia para llegar a un lado específico de la ruta cuando creas el punto de referencia para esa parada. Puedes especificar la preferencia de dos maneras.
Prefiero el mismo lado de la ruta
Proporcionas las coordenadas geográficas del punto de referencia y, luego, estableces una marca preferSameSideOfRoad
que indica que prefieres llegar al mismo lado de la ruta que el punto de referencia, ajustado a la vereda más cercana.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferSameSideOfRoad:(BOOL)preferSameSideOfRoad;
Cómo establecer un rumbo de llegada
Proporcionas las coordenadas geográficas del punto de referencia y, luego, un rumbo de llegadapreferredSegmentHeading
que coincida con la dirección del flujo de tráfico en el mismo lado de la ruta que el destino.
(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
title:(NSString *)title
preferredSegmentHeading:(int32_t)preferredSegmentHeading;
El SDK de Navigation elige el tramo de ruta más cercano al punto de referencia que tiene una dirección de carril que se alinea (dentro de +/- 55 grados) con el lado de la ruta en el que se encuentra el punto de referencia.
Cómo establecer la preferencia de parada
En ciertos lugares, los usuarios no pueden detenerse de forma segura (por ejemplo, áreas elevadas, ferrys, ubicaciones subterráneas y otras áreas de acceso limitado). La función Parada reubica el punto de referencia en un lugar cercano si su ubicación no es adecuada para que el usuario haga una parada. Cuando configuras vehicleStopover
como YES
, el punto de referencia se reubica automáticamente cuando se calcula la ruta, si hay una ubicación alternativa disponible.
Cómo funciona
Estableces la preferencia para una parada cuando creas el punto de ruta para esa parada.
Para ello, establece la preferencia para una parada intermedia en un GMSNavigationMutableWaypoint
, como se muestra en el siguiente ejemplo:
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){...}];