Administrar waypoints

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

  • Preferencias de rutas en el lado de la ruta
  • Parada

Establece la preferencia de ruta en 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 vehículo llegará al costado de la ruta que espera el consumidor. La función Preferencia de ruta del lado de la ruta te permite asegurarte de que el vehículo llegue al lado correcto de la ruta.

Cómo funciona

Establece la preferencia para llegar a un lado particular 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

Proporciona 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;

Encabezado de segmento preferido

Proporciona las coordenadas geográficas del punto de referencia y, luego, la orientación de llegada preferredSegmentHeading que coincida con la dirección del flujo del tráfico en el mismo lado de la ruta que el consumidor que está esperando.

(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 la que se encuentra el punto de referencia.

Establecer preferencia de parada

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

Cómo funciona

Establece la preferencia para una parada cuando creas el punto de referencia para esa parada. Para ello, establece la preferencia de una parada en un objeto 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){...}];