Modifica delle preferenze di routing

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 enumerazioneDescrizione
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 enumerazioneDescrizione
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);