Los cálculos de rutas (incluido el cambio de ruta) muestran la ruta que lleva menos tiempo para navegar como la mejor ruta predeterminada. Sin embargo, puedes cambiar la estrategia de enrutamiento para que se muestre la más corta de las alternativas de ruta.
El término más corta significa la ruta que es la más corta entre las rutas óptimas según nuestro modelo de costos predeterminado. Es posible que la ruta más corta no sea la ruta absoluta más corta, ya que esa opción podría ser una alternativa deficiente. Por ejemplo, si la ruta absoluta más corta es de 10 km y tarda 50 minutos en navegar, y otra ruta es de 15 km, pero solo tarda 20 minutos en navegar, la segunda opción es óptima, ya que invertir 30 minutos para reducir cinco km no es una buena compensación.
Una vez que establezcas la estrategia de enrutamiento para un viaje, no cambiará hasta que se complete. Para cambiar la estrategia de enrutamiento de un viaje existente, debes borrar los destinos y restablecerlos con la nueva estrategia de enrutamiento.
Cómo establecer la estrategia de enrutamiento
Para configurar la estrategia de enrutamiento, establece RoutingOptions.routingStrategy cuando llames a setDestinations().
RoutingOptions.routingStrategy toma uno de los siguientes valores de enumeración:
| Valor de enumeración | Descripción |
|---|---|
| RoutingStrategy.DEFAULT_BEST | Clasifica las rutas según el modelo de costos predeterminado del SDK de Navigation. Esta es la estrategia de enrutamiento predeterminada. |
| RoutingStrategy.SHORTER | Clasifica las rutas por distancia. La ruta mejor clasificada es la más corta de las que se muestran. |
Ejemplo
En el siguiente ejemplo de código, se muestra cómo establecer la preferencia de ruta más corta.
RoutingOptions routingOptions = new RoutingOptions();
routingOptions.routingStrategy(RoutingStrategy.SHORTER);
navigator.setDestinations(destinations, routingOptions, displayOptions);
Rutas que incluyen ferris
De forma predeterminada, el NavSDK excluye las rutas que incluyen ferris. Si prefieres incluir opciones de ferris como parte de tus rutas, puedes ajustar esta preferencia de enrutamiento para exponer el viaje a los segmentos de ferris estableciendo avoidFerries en false.
Ejemplo
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
Formato de texto destacado de la ruta
Según la preferencia de ruta más corta, los textos destacados a lo largo de la ruta muestran detalles de la distancia. Sin embargo, puedes usar los textos destacados de la ETA en su lugar.
Cómo configurar el formato de texto destacado de la ruta
Para cambiar el formato de texto destacado de la ruta, llama a setRouteCalloutInfoFormat en NavigationView (o en NavigationFragment). setRouteCalloutInfoFormat toma uno de los siguientes valores de enumeración:
| Valor de enumeración | Descripción |
|---|---|
| RouteCalloutInfoFormat.DEFAULT | Muestra el tiempo restante cuando se usa la estrategia de enrutamiento de la mejor ruta predeterminada. Muestra la distancia restante cuando se usa la estrategia de enrutamiento de la ruta más corta estrategia. |
| RouteCalloutInfoFormat.TIME | Muestra el tiempo restante. |
| RouteCalloutInfoFormat.DISTANCE | Muestra la distancia restante. |
Ejemplo
En el siguiente ejemplo de código, se muestra cómo configurar el formato de texto destacado de la ruta.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);