A quién está dirigida esta guía: Lee esta guía si eres un desarrollador para dispositivos móviles responsable de crear la experiencia de navegación en la cabina para conductores de camiones o de otros vehículos grandes.
Qué abarca esta guía: En esta guía, se explica cómo tomar una ruta específica para camiones, generada por la API de Routes o la API de Route Optimization, y usarla para potenciar una sesión de navegación paso a paso con el SDK de Navigation.
Qué aprenderás
Aprenderás a hacer lo siguiente:
- Usar un
routeTokenpara conectar la planificación de rutas de backend con la experiencia de navegación en la app - Configurar el SDK de Navigation para usar una ruta de camiones planificada previamente
- Comprender cómo aparecen las restricciones específicas para camiones al conductor en la IU
Requisitos previos
Antes de comenzar, debes cumplir con los siguientes requisitos.
Configura el proyecto
Tu proyecto de Google Cloud debe aprovisionarse para el enrutamiento de vehículos grandes. Si usas proyectos separados para la API de Routes y el SDK de Navigation, ambos deben aprovisionarse en consecuencia.
Genera un token de ruta
Primero debes generar una ruta siguiendo las instrucciones de la Generate
truck routes & ETAs guide. El resultado de ese proceso, un routeToken, es necesario para completar los pasos de esta guía.
Requisitos mínimos
Tu app debe usar la versión mínima requerida del SDK de Navigation:
- Android: 5.2.0 o versiones posteriores
- iOS: 5.4.0 o versiones posteriores
Además, se aplican todos los requisitos para usar el SDK de Navigation:
Limitaciones
Antes de comenzar, debes tener en cuenta las siguientes limitaciones y requisitos.
- Disponibilidad geográfica: El enrutamiento de vehículos grandes solo está disponible en los 48 estados contiguos de Estados Unidos.
- El enrutamiento de vehículos grandes es una oferta en etapa de versión preliminar. Los conductores no deben depender únicamente de las rutas que muestra esta API para que sean seguras o legales. No se garantiza que las rutas sean adecuadas para el vehículo, y seguirlas puede exponer a los conductores a peligros, como puentes bajos o rutas en las que se prohíben los vehículos grandes.
- Rutas de mejor esfuerzo. En algunos casos, la API no puede encontrar una ruta que cumpla por completo con las restricciones de viaje. En cambio, muestra una ruta de "mejor esfuerzo" que aún puede atravesar áreas restringidas. La respuesta de la API de Routes marca claramente estas rutas en el campo
routeRestrictionsPartiallyIgnored. En estos casos, planifica tu ruta con cuidado, idealmente con otros datos de origen. No uses una ruta marcada como una única fuente de información para la planificación o la navegación. - Funciones no compatibles: Si bien estamos trabajando para agregar más funciones
a esta oferta, el enrutamiento de vehículos grandes no admite lo
siguiente:
- Precios de peaje para camiones
- Límites de velocidad
- Enrutamiento para materiales peligrosos radiactivos
- Límites de uso: Todas las solicitudes están sujetas a los límites estándar de consultas por segundo (QPS).
Muestra la IU específica para camiones
El SDK de Navigation muestra automáticamente advertencias visuales, llamadas llamadas de ruta, en el mapa para advertir a los conductores sobre las próximas restricciones para camiones. Las llamadas se renderizan para las restricciones que forman parte de la ruta planificada, pero no en otras rutas cercanas.
El SDK incluye llamadas para las siguientes restricciones:
| Restricción | Ícono y texto de la llamada | Condiciones para la visualización |
|---|---|---|
| Altura |
Amarillo = advertencia, tu vehículo está cerca de la altura máxima permitida
Rojo = tu vehículo supera la altura máxima permitida |
Aparece una llamada amarilla cuando la altura del vehículo está cerca de la restricción.
Aparece una llamada roja si la ruta no cumple con los requisitos y viola una restricción de altura.
|
| Peso |
|
Aparece una llamada roja cuando el peso del vehículo supera el límite de la ruta.
|
| Camiones prohibidos |
|
Aparece una llamada roja cuando se viaja en un segmento de ruta con una restricción para camiones.
|
| Bienes peligrosos |
|
Aparece una llamada roja cuando se prohíbe la carga de materiales peligrosos del vehículo en un segmento de ruta.
|
Flujo de trabajo del token de ruta
Un routeToken es una instantánea segura y encriptada de una ruta generada por la API de Routes. Contiene todos los detalles de la ruta, incluido el perfil del vehículo que se usó para crearla. El uso de un token garantiza que la sesión de navegación coincida con la ruta que planificaste en tu backend.
Ten en cuenta que, una vez que el conductor comienza a navegar, la ruta que presenta el SDK de Navigation puede cambiar según el tráfico y las condiciones de la ruta. En algunos casos, puede diferir de la ruta especificada por el token de ruta.
En estos casos, así como en el caso en que el conductor se desvíe de la ruta planificada, el uso del token de ruta garantiza que las rutas recién recalculadas respeten los atributos del vehículo según se configuraron en la solicitud original de la API de Routes.
El flujo de trabajo sigue estos pasos:
- Tu backend solicita una ruta de camiones a la API de Routes.
- La API de Routes muestra un
routeToken. - Tu backend envía este token a tu aplicación para dispositivos móviles.
- La app para dispositivos móviles pasa el
routeTokenal SDK de Navigation para iniciar el viaje. - El SDK de Navigation controla todos los aspectos de la experiencia paso a paso, incluido el cambio de ruta si el conductor se desvía de la ruta, mientras se conservan las restricciones originales del vehículo.
Implementación: Inicia un viaje específico para camiones
Para iniciar una sesión de navegación con tu ruta de camiones, pasa el token de ruta al navegador.
Paso 1: Obtén el token de ruta
Tu aplicación recibe la cadena routeToken de tu servidor de backend.
El siguiente código es un token de ejemplo:
CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g
Paso 2: Pasa el token al navegador
Proporciona el routeToken al navegador cuando configures el destino del viaje.
Luego, el SDK de Navigation usa este token para todos los cálculos de ruta del viaje.
Ten en cuenta que el SDK de Navigation tiene una configuración TravelMode, que debe establecerse en
TravelMode.DRIVING. Esto es independiente de la configuración travelMode en la API de Routes, que debe establecerse en TRUCK. La configuración travelMode de la API de Routes está codificada en el routeToken y le indica al SDK de Navigation que muestre la experiencia y la ruta específicas para camiones.
Android
Usa CustomRoutesOptions.builder() para configurar el token y, luego, pásalo a navigator.setDestinations().
// Obtain the routeToken string from your backend
val routeToken = "route token returned by Routes API"
val customRoutesOptions = CustomRoutesOptions.builder()
.setRouteToken(routeToken)
.setTravelMode(TravelMode.DRIVING)
.build()
// Specify the same destination used to create the route token
ArrayList <Waypoint> destinations = Lists.newArrayList();
val destination = Waypoint.builder()
.setLatLng(10.0, 20.0)
.setTitle("title")
.setVehicleStopover(true)
.build()
destinations.add(destination);
navigator.setDestinations(destinations, customRoutesOptions)
iOS
Pasa el token de ruta al SDK de Navigation con el método mapView.navigator
setDestinations y especifica los mismos puntos de referencia de destino que usaste cuando creaste el token de ruta:
// Obtain the routeToken string from your backend
let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([destination], routeToken: routeToken, callback: {...})
Próximos pasos
- Explora los SDKs: SDK de Navigation para Android | SDK de Navigation para iOS
- Personaliza la IU: Obtén información para personalizar la IU del SDK de Navigation