I calcoli del percorso (compreso il cambio di percorso) restituiscono come percorso migliore predefinito il percorso che impiega il meno tempo a disposizione. Tuttavia, puoi modificare la strategia di routing in modo che venga restituita la alternativa più breve.
Il termine più breve indica il percorso più breve tra il percorso ottimale in base al nostro modello di costo predefinito. Forse quello più breve non è quello assoluto, dato che potrebbe non essere un'alternativa. Ad esempio, se il percorso più breve in assoluto è di 10 km e impiega 50 minuti per percorrere, mentre un altro percorso richiede solo 20 minuti, la seconda opzione è ottimale, perché dedicare 30 minuti per ridurre di 5 km non è un buon compromesso.
Una volta impostata, la strategia di routing per una corsa non cambierà fino al completamento della corsa. Per modificare la strategia di routing per una corsa esistente, devi cancellare le destinazioni e reimpostarle di nuovo con la nuova strategia di routing.
Recupero dei dettagli del percorso in corso...
Per determinare quale strategia di percorso sia la scelta ottimale per un determinato waypoint,
chiama getRouteInfoForDestination()
per ricevere i dettagli del percorso sia per il percorso migliore
predefinito che per quello più breve in assoluto. I dettagli includono la durata e la
distanza fino a un waypoint di destinazione.
Questi dettagli provengono da GMSNavigationRouteInfo
nel callback.
Esempio
Il seguente esempio di codice mostra come ottenere i dettagli delle route per ciascuna delle due strategie di routing.
Swift
let routingOptions = GMSNavigationRoutingOptions()
navigator?.getRouteInfoForDestination(destination,
routingOptions: routingOptions) { routeInfo in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions =
[[GMSNavigationRoutingOptions alloc] init];
[navigator getRouteInfoForDestination:destination
withRoutingOptions:routingOptions
callback:^(GMSNavigationRouteInfo *routeInfo){...}];
Impostare la strategia di routing
Puoi configurare la strategia di routing utilizzando GMSNavigationRoutingOptions
e impostando routingStrategy
durante le chiamate a setDestinations()
.
routingStrategy
accetta uno dei seguenti valori di enumerazione:
Valore di enumerazione | Descrizione |
---|---|
GMSNavigationRoutingStrategyDefaultBest | Classifica le route in base al modello di costo predefinito dell'SDK di navigazione. Questa è la strategia di routing predefinita. |
GMSNavigationRoutingStrategyShorter | Ordina i percorsi in base alla distanza. La route con il ranking più alto è la più breve tra quelle restituite. |
Esempio
Il seguente esempio di codice mostra come impostare la strategia di routing di route più breve.
Swift
let routingOptions = GMSNavigationRoutingOptions(routingStrategy: .shorter)
navigator?.setDestinations(destinations,
routingOptions: routingOptions) { routeStatus in
...
}
Objective-C
GMSNavigationRoutingOptions *routingOptions = [[GMSNavigationRoutingOptions alloc] initWithRoutingStrategy:GMSNavigationRoutingStrategyShorter];
[navigator setDestinations:destinations
routingOptions:routingOptions
callback:^(GMSRouteStatus routeStatus){...}];
Percorsi che includono traghetti
Per impostazione predefinita, l'SDK di navigazione per iOS esclude i percorsi che includono traghetti. Se preferisci includere le opzioni dei traghetti all'interno dei percorsi, puoi modificare questa preferenza in modo da esporre la corsa ai segmenti di traghetto impostando avoidsFerries
su false
.
Esempio
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
Il formato del callout del percorso
Nella strategia di routing del percorso più breve, i callout lungo il percorso mostrano i dettagli sulla distanza. In alternativa, puoi utilizzare i callout ETA.
Configurazione del formato del callout del percorso
Puoi modificare il formato del callout del percorso impostando routeCalloutFormat
in
GMSMapView
. routeCalloutFormat
utilizza uno dei seguenti valori di enumerazione:
Valore di enumerazione | Descrizione |
---|---|
GMSNavigationRouteCalloutFormatDefault | Mostra il tempo rimanente quando utilizzi la strategia di routing delle route migliore predefinita. Mostra la distanza rimanente quando utilizzi la strategia di routing del percorso più breve |
GMSNavigationRouteCalloutFormatTime | Mostra il tempo rimanente. |
GMSNavigationRouteCalloutFormatDistance | DMostra la distanza rimanente. |
Esempio
Il seguente esempio di codice mostra come configurare il formato del callout del percorso.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;