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 i percorsi ottimali 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 getRouteInfo()
per ottenere i dettagli del percorso sia
per il percorso migliore predefinito sia per quello più breve in assoluto. I dettagli includono la durata
e la distanza da un waypoint di destinazione.
Questi dettagli provengono da RouteInfo
e vengono restituiti in un ListenableResultFuture
.
Esempio
Il seguente esempio di codice mostra come ottenere i dettagli delle route per ciascuna delle due strategie di routing.
ListenableResultFuture<RouteInfo> routeInfoFuture =
navigator.getRouteInfo(waypoint, routingOptions);
Impostare la strategia di routing
Puoi configurare la strategia di routing impostando RoutingOptions.routingStrategy
quando chiami setDestinations()
.
RoutingOptions.routingStrategy
utilizza uno dei seguenti valori di enumerazione:
Valore di enumerazione | Descrizione |
---|---|
RoutingStrategy.DEFAULT_BEST | Classifica le route in base al modello di costo predefinito dell'SDK di navigazione. Questa è la strategia di routing predefinita. |
RoutingStrategy.SHORTER | 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 preferenza di percorso più breve.
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
Percorsi che includono traghetti
Per impostazione predefinita, NavSDK esclude i percorsi che includono traghetti. Se preferisci includere le opzioni di traghetti nei percorsi, puoi modificare questa preferenza di percorso in modo da esporre la corsa ai segmenti di traghetti impostando avoidFerries
su false
.
Esempio
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
Il formato del callout del percorso
Sotto la preferenza 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 chiamando setRouteCalloutInfoFormat
in NavigationView
(o in NavigationFragment
). setRouteCalloutInfoFormat
prende uno dei seguenti valori di enumerazione:
Valore di enumerazione | Descrizione |
---|---|
RouteCalloutInfoFormat.DEFAULT | 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. |
RouteCalloutInfoFormat.TIME | Mostra il tempo rimanente. |
RouteCalloutInfoFormat.DISTANCE | Mostra la distanza rimanente. |
Esempio
Il seguente esempio di codice mostra come configurare il formato del callout del percorso.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);