Gestisci tappe

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

  • Preferenze dei percorsi su strada
  • Tappa

Imposta il lato della preferenza per i percorsi stradali

Per impostazione predefinita, l'SDK di navigazione per iOS trova il percorso più rapido fino a una tappa, ma non garantisce che l'utente arrivi sul lato desiderato della strada, ad esempio il lato della strada su cui il cliente del conducente di ridesharing sta aspettando. La funzionalità Preferenza per i percorsi su strada ti consente di assicurarti che il veicolo arrivi nel lato corretto della strada.

Come funziona

Puoi impostare la preferenza per l'arrivo su un determinato lato della strada quando crei la tappa per quella fermata. Puoi specificare la preferenza in due modi.

Preferenza dello stesso lato della strada

Tu fornisci le coordinate geografiche del waypoint e poi imposti una bandiera preferSameSideOfRoad per indicare che preferisci arrivare sullo stesso lato della strada in cui si trova la tappa, agganciata al marciapiede più vicino.

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

Intestazione segmento preferito

Devi fornire le coordinate geografiche del waypoint, quindi fornire un'intestazione di arrivo preferredSegmentHeading che corrisponda alla direzione del flusso del traffico sullo stesso lato della strada rispetto alla destinazione.

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

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

Imposta preferenze per le tappe

In alcuni luoghi non è possibile fermarsi in sicurezza (ad esempio in aree sopraelevate, traghetti, stazioni sotterranee e altre aree con accesso limitato). La funzionalità Stopover sposta la tappa in un luogo nelle vicinanze se la sua posizione non è adatta a un utente per fare una fermata. Se imposti vehicleStopover su YES, il waypoint viene riposizionato automaticamente durante il calcolo del percorso, se è disponibile una località alternativa.

Come funziona

Puoi impostare la preferenza per una sosta quando crei il waypoint per quella fermata. Per farlo, imposta la preferenza per uno scalo su un GMSNavigationMutableWaypoint come mostrato nell'esempio seguente:

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