I calcoli del percorso (incluso il ricalcolo) restituiscono il percorso che richiede il minor tempo di navigazione come percorso migliore predefinito. Tuttavia, puoi modificare la strategia di routing in modo che venga restituita l'alternativa di percorso più breve.
Il termine più breve si riferisce al percorso più breve tra i percorsi ottimali in base al nostro modello di costo predefinito. Il percorso più breve potrebbe non essere il percorso assolutamente più breve, poiché questa opzione potrebbe essere una scarsa alternativa. Ad esempio, se il percorso assolutamente più breve è di 10 km e richiede 50 minuti di navigazione e un altro percorso è di 15 km, ma richiede solo 20 minuti di navigazione, la seconda scelta è ottimale, perché spendere 30 minuti per ridurre 5 km non è un buon compromesso.
Una volta impostata la strategia di routing per un viaggio, non cambierà fino al completamento del viaggio. Per modificare la strategia di routing per un viaggio esistente, devi cancellare le destinazioni e reimpostarle con la nuova strategia di routing.
Recuperare i dettagli del percorso
Per determinare quale strategia di percorso è la scelta ottimale per un determinato waypoint, chiama getRouteInfoForDestination() per ottenere i dettagli del percorso sia per il percorso migliore predefinito sia per il percorso assolutamente più breve. I dettagli includono la durata e la distanza da un waypoint di destinazione.
Questi dettagli provengono da
GMSNavigationRouteInfo
nel callback.
Esempio
Il seguente esempio di codice mostra come ottenere i dettagli del percorso 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 quando chiami setDestinations().
routingStrategy accetta uno dei seguenti valori di enumerazione:
| Valore di enumerazione | Descrizione |
|---|---|
| GMSNavigationRoutingStrategyDefaultBest | Classifica i percorsi in base al modello di costo predefinito dell'SDK Navigation. Questa è la strategia di routing predefinita. |
| GMSNavigationRoutingStrategyShorter | Classifica i percorsi in base alla distanza. Il percorso con la classificazione più alta è il più breve tra quelli restituiti. |
Esempio
Il seguente esempio di codice mostra come impostare la strategia di routing del percorso 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 Navigation per iOS esclude i percorsi che includono traghetti. Se preferisci includere le opzioni di traghetto nei tuoi percorsi, puoi modificare questa preferenza di routing per esporre il viaggio 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 della distanza. Tuttavia, puoi utilizzare i callout dell'ETA.
Configurare il formato del callout del percorso
Puoi modificare il formato del callout del percorso impostando routeCalloutFormat in GMSMapView. routeCalloutFormat accetta uno dei seguenti valori di enumerazione:
| Valore di enumerazione | Descrizione |
|---|---|
| GMSNavigationRouteCalloutFormatDefault | Mostra il tempo rimanente quando utilizzi la strategia di routing del percorso migliore predefinito strategia. Mostra la distanza rimanente quando utilizzi la strategia di routing del percorso più breve . |
| GMSNavigationRouteCalloutFormatTime | Mostra il tempo rimanente. |
| GMSNavigationRouteCalloutFormatDistance | Mostra 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;