Gestisci tappe

Questo documento descrive come gestire le preferenze dei punti di passaggio per la tua app utilizzando due funzionalità:

  • Preferenze di routing per lato della strada
  • Sosta

Impostare la preferenza di routing per il lato della strada

Per impostazione predefinita, l'SDK Navigation per iOS trova il percorso più rapido per raggiungere un punto di riferimento, ma questo non garantisce che l'utente arrivi sul lato della strada desiderato, ad esempio il lato della strada su cui è in attesa il cliente di un conducente di rideshare. La funzionalità Preferenza di routing per lato della strada consente di assicurarti che il veicolo arrivi sul lato corretto della strada.

Come funziona

Imposti la preferenza per arrivare su un determinato lato della strada quando crei il waypoint per la fermata. Puoi specificare la preferenza in due modi.

Preferenza: stesso lato della strada

Fornisci le coordinate geografiche del waypoint e poi imposti un flag preferSameSideOfRoad che indica che preferisci arrivare sullo stesso lato della strada del waypoint, allineato al marciapiede più vicino.

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

Impostare una rotta di arrivo

Fornisci le coordinate geografiche del punto di passaggio e poi un'indicazione di arrivo preferredSegmentHeading che corrisponda alla direzione del flusso di traffico sullo stesso lato della strada della destinazione.

(nullable instancetype)initWithLocation:(CLLocationCoordinate2D)location
                                  title:(NSString *)title
                preferredSegmentHeading:(int32_t)preferredSegmentHeading;

L'SDK Navigation sceglie il tratto di strada più vicino al waypoint, con una direzione di corsia allineata (entro +/- 55 gradi) al lato della strada su cui si trova il waypoint.

Impostare la preferenza di sosta

In alcuni luoghi, non è possibile per gli utenti fermarsi in sicurezza (ad esempio, su strade sopraelevate, traghetti, stazioni della metropolitana e altre aree con accesso limitato). La funzionalità Sosta sposta il waypoint in un luogo nelle vicinanze se la sua posizione non è adatta per una fermata dell'utente. Se imposti vehicleStopover su YES, il waypoint viene riposizionato automaticamente quando viene calcolato il percorso, se è disponibile una posizione alternativa.

Come funziona

Imposti la preferenza per una sosta quando crei il punto di passaggio per la fermata. Per farlo, imposta la preferenza per una sosta su un GMSNavigationMutableWaypoint come mostrato nell'esempio seguente:

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: {...})

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){...}];