Los cálculos de ruta (incluido el cambio de ruta) devuelven la ruta que tarda la menor cantidad de tiempo en navegar como la mejor ruta predeterminada. Sin embargo, puedes cambiar la estrategia de enrutamiento para que, en su lugar, se devuelva la más corta de las alternativas de ruta.
El término más corta se refiere a la ruta 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 absolutamente más corta, ya que esa opción podría ser una alternativa deficiente. Por ejemplo, si la ruta más corta absoluta es de 10 km y toma 50 minutos recorrerla, y otra ruta es de 15 km, pero solo toma 20 minutos recorrerla, la segunda opción es óptima, ya que pasar 30 minutos para reducir cinco kilómetros 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 volver a establecerlos con la nueva estrategia de enrutamiento.
Configura 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 costo predeterminado del SDK de Navigation. Esta es la estrategia de enrutamiento predeterminada. |
| RoutingStrategy.SHORTER | Clasifica las rutas por distancia. La ruta con la clasificación más alta es la más corta de las que se devuelven. |
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 transbordadores
De forma predeterminada, el SDK de Navigation excluye las rutas que incluyen transbordadores. Si prefieres incluir opciones de ferry como parte de tus rutas, puedes ajustar esta preferencia de ruta para exponer el viaje a tramos de ferry configurando avoidFerries como false.
Ejemplo
RoutingOptions routingOptions = new RoutingOptions().avoidFerries(true);
// Add additional routing preferences
navigator.setDestination(destination, routingOptions);
El formato de la llamada de ruta
En 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 las leyendas de hora estimada de llegada en su lugar.
Configura el formato de la llamada externa de ruta
Puedes cambiar el formato de la llamada de ruta llamando 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 predeterminada de la mejor ruta. Muestra la distancia restante cuando se usa la estrategia de enrutamiento de ruta más corta. |
| 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 la leyenda de la ruta.
mNavFragment.setRouteCalloutInfoFormat(RouteCalloutInfoFormat.TIME);