I calcoli del percorso (incluso il reinstradamento) restituiscono il percorso migliore predefinito. Tuttavia, puoi modificare la strategia di routing in modo da restituire le alternative più brevi.
Il termine più breve indica la route più breve tra quelle ottimali in base al nostro modello di costo predefinito. Il percorso più breve potrebbe non essere il percorso assoluto più breve, poiché questa opzione potrebbe essere un'alternativa insoddisfacente. Ad esempio, se il percorso più breve in assoluto è di 10 km, impiega 50 minuti per percorrere e un altro percorso è di 15 km, ma il percorso dura solo 20 minuti, la seconda opzione è ottimale, perché spendere 30 minuti per ridurne cinque non è un buon compromesso.
Una volta impostata la strategia di routing per una corsa, questa non cambierà fino al completamento di quest'ultima. 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
Per determinare quale strategia di percorso è la scelta ottimale per una determinata tappa,
chiama getRouteInfoForDestination()
per ottenere 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 da una tappa 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
quando chiami 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 | Classifica i percorsi in base alla distanza. Il percorso con il ranking più alto è il più corto tra quelli restituiti. |
Esempio
Il seguente esempio di codice mostra come impostare la strategia di routing delle route più brevi.
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 di traghetto nei tuoi percorsi, puoi modificare questa preferenza di percorso per esporre la corsa a segmenti di traghetti impostando avoidsFerries
su false
.
Esempio
Swift
self.mapView.navigator?.avoidsFerries = false
Objective-C
self.mapView.navigator.avoidsFerries = NO
Il formato del callout del percorso
Nell'ambito della strategia di routing del percorso più breve, i callout lungo il percorso mostrano i dettagli sulla distanza. In alternativa, puoi utilizzare i callout Orario di arrivo stimato.
Configurare il formato dei callout di route
Puoi modificare il formato del callout del routing impostando routeCalloutFormat
in
GMSMapView
. routeCalloutFormat
accetta uno dei seguenti valori di enumerazione:
Valore di enumerazione | Descrizione |
---|---|
GMSNavigationRouteCalloutFormatDefault | Mostra il tempo rimanente quando si utilizza la strategia di routing della route migliore predefinita. Mostra la distanza rimanente quando si utilizza la strategia di calcolo del percorso più breve |
GMSNavigationRouteCalloutFormatTime | Visualizza il tempo rimanente. |
GMSNavigationRouteCalloutFormatDistance | DMostra la distanza rimanente. |
Esempio
Il seguente esempio di codice mostra come configurare il formato di callout della route.
Swift
self.mapView.routeCalloutFormat = .time
Objective-C
_mapView.routeCalloutFormat = GMSNavigationRouteCalloutFormatTime;