Administrar waypoints

En este documento, se describe cómo puedes administrar las preferencias de puntos de referencia de tu app con dos funciones:

  • Preferencias de enrutamiento por lado de la ruta
  • Pausa

Cómo establecer la preferencia de enrutamiento del 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. Sin embargo, esto no garantiza que el usuario llegue al lado deseado de la ruta, por ejemplo, el lado en el que espera el cliente de un conductor de transporte privado con conductor. La función Side of the Road Routing Preference te permite asegurarte de que el vehículo llegue al lado correcto de la ruta.

Cómo funciona

Cuando creas el punto de referencia de esa parada, puedes establecer la preferencia de llegar a un lado específico de la ruta. Puedes especificar la preferencia de una de estas dos maneras:

Prefieres 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 acera más cercana.

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

Título del segmento preferido

Proporcionas las coordenadas geográficas del punto de referencia y, luego, un heading de llegada preferredSegmentHeading 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 escalas

En ciertos lugares, no es posible que los usuarios se detengan de forma segura (por ejemplo, en áreas elevadas, transbordadores, ubicaciones subterráneas y otras áreas de acceso limitado). La función Parada traslada el punto de referencia a un lugar cercano si su ubicación no es adecuada para que un usuario haga una parada. Cuando configuras vehicleStopover como YES, el punto de referencia se vuelve a ubicar automáticamente cuando se calcula la ruta, si hay una ubicación alternativa disponible.

Cómo funciona

Cuando creas el punto de referencia de esa parada, estableces la preferencia de una parada. Para ello, establece la preferencia de una parada 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){...}];