Preguntas frecuentes

Detalles del producto

Red y conectividad

Datos

Personalización de la IU

Enrutamiento

de Pixel

Workflows

Servicios de movilidad

Detalles del producto

Tu app debe implementar un diálogo con el aviso de las Condiciones del Servicio del SDK de Navigation que cada usuario debe aceptar. Este diálogo le da al usuario la oportunidad de aceptar las Condiciones del Servicio. Con el SDK de Navigation, se proporciona un archivo de texto con las condiciones. Usa el método NavigationApi.showTermsAndConditionsDialog para mostrar el diálogo que contiene las condiciones.
Todos los idiomas que admite Google Maps para dispositivos móviles están disponibles automáticamente para el SDK de Navigation. Un dispositivo tiene un idioma predeterminado del sistema, y una app no puede cambiar ese parámetro de configuración. Sin embargo, la app tiene acceso a más de 70 idiomas.

Sí. Una vez que se inicia, LocationListener sigue ejecutándose en segundo plano. La app sigue ajustando la posición a la ruta y mantiene el rumbo.

Sí. Cuando se crea o cambia una ruta, RouteChangeListener proporciona polilíneas.

No, el SDK de Navigation no requiere que Google Maps para dispositivos móviles esté instalado en el dispositivo.
No, el SDK de Navigation no proporciona esta función en este momento.
Sí. La dirección del tráfico está disponible y se muestra de forma predeterminada.
¿Qué versiones del JDK admite el SDK de Navigation?
El SDK de Navigation admite las versiones de LTS de Java SE que Oracle admite de forma activa. Estas versiones se indican como compatibles con la asistencia Premier en la hoja de ruta de asistencia de Oracle Java SE.

Red y conectividad

¿Cómo controla el SDK de Navigation la conectividad de red deficiente?
El SDK de Navigation almacena previamente en caché la ruta de cada viaje. La información de almacenamiento previo en caché incluye información de planificación de ruta para 15 a 20 minutos y alternativas de ruta en caso de que el usuario se desvíe de la ruta. El SDK de Navigation calcula la posición aproximada con el GPS y los sensores del dispositivo.
¿Cómo controla el SDK de Navigation las señales de GPS deficientes o perdidas?

Después de que se inicia la navegación y el SDK de Navigation recibe una señal de GPS al menos una vez, se mostrará el mensaje "Buscando GPS…" en las siguientes situaciones:

  • Si pasaron más de 10 segundos desde la última vez que recibió una señal de GPS
  • Si la posición de la ruta se movió más de 500 m desde la última vez que recibió una señal de GPS

Si el SDK no recibe una señal de GPS durante un período prolongado, el progreso a lo largo de la ruta, indicado en la app por la posición de la flecha, puede ralentizarse hasta detenerse por completo. En este caso, la flecha en el mapa permanecerá en la ubicación indicada por la última señal de GPS. El SDK no saldrá automáticamente del modo de navegación si no recibe una señal de GPS. Sin embargo, es posible que no pueda proporcionar indicaciones hasta que vuelva a recibir una señal.

¿Hay un modo sin conexión disponible?
No, el SDK de Navigation no ofrece un modo sin conexión en este momento. Sin embargo, el SDK proporciona información almacenada previamente en caché para un viaje.

Datos

¿Puedo recuperar todas las paradas o destinos de un viaje antes de iniciar la ruta?

Sí. Para recuperar las instrucciones sobre cómo llegar de una ruta, llama a Navigator.getRouteSegments().

¿La guía de ruta paso a paso está disponible al comienzo de una ruta?
Sí. El SDK de Navigation proporciona una lista de tramos de ruta. Además, el usuario puede deslizar el dedo por la tarjeta de instrucciones en el encabezado para ver cada maniobra.
¿Cómo se comunica la hora estimada de llegada a los usuarios de la app?

Sigue estos pasos para proporcionar información sobre la hora estimada de llegada a los usuarios de la app:

  1. Recupera el tiempo y la distancia de todos los puntos de referencia con Navigator.getTimeAndDistanceList().
  2. Reenvía esta información a la aplicación cliente, como lo haces con la hora de llegada estimada del conductor.
¿Se puede usar el RoadSnappedLocationProvider para obtener la ubicación ajustada actual del usuario si la navegación no está en primer plano?

Sí. De forma predeterminada, RoadSnappedLocationProvider se ejecuta en segundo plano.

¿El SDK de Navigation admite el geovallado?

No. En el contexto de la navegación, remainingTimeOrdistanceChangeListener tiene una ventaja sobre un geovallado. Es posible que la geovalla no tenga en cuenta la geometría de la ruta y que no esté centrada en el punto exacto al que navega el usuario.

Puedes aproximar esta función con remainingTimeOrdistanceChangeListener.

  1. Establece el umbral para determinar la frecuencia de las devoluciones de llamada.
  2. Verifica la distancia restante hasta el destino.

Por ejemplo, si estableces el umbral en 100 m, recibirás una devolución de llamada cuando la distancia al destino cambie en 100 m. A medida que disminuye la distancia, puedes actualizar este umbral a un valor menor y recibir devoluciones de llamada con más frecuencia. Luego, inspecciona la distancia restante para determinar si estás lo suficientemente cerca de la ubicación de retiro o entrega.

¿Puedo inhabilitar las notificaciones cuando la app de Navigation está en segundo plano?

Sí. Usa Navigator.setHeadsUpNotificationEnabled para controlar las notificaciones. Este método tiene un argumento booleano. FALSE inhabilita las notificaciones; TRUE las habilita.

La grabadora de transacciones hace un seguimiento de los retiros y las entregas con un ID único, que Google registra para realizar análisis de productos. Si eres cliente de Servicios de movilidad, Google te recomienda que implementes la NavigationTransactionRecorder para registrar un historial de tus transacciones.

Personalización de la IU

¿Puedo usar un código de colores para la mejor opción de ruta?
No. En este momento, no se admite la codificación por colores de una opción de ruta específica.
¿Puede el SDK de Navigation mostrar la hora de llegada estimada para el destino final?

Sí. Usa los siguientes métodos:

  1. Recupera el tiempo y la distancia de todos los puntos de referencia con Navigator.getTimeAndDistanceList().
  2. Oculta la hora de llegada estimada del punto de referencia actual con NavigationFragment.setEtaCardEnabled(false).
  3. Renderiza la hora de llegada estimada al destino final.
¿Cómo puedo ocultar las actualizaciones de la hora estimada de llegada?

Para inhabilitar las tarjetas de hora de llegada estimada, llama a navigationView.setEtaCardEnabled(false).

¿Qué personalizaciones de la IU están disponibles para las tarjetas de encabezado y pie de página?

Usa StylingOptions para establecer el estilo del color de fondo. Para ocultar o mostrar el encabezado y el pie de página, usa las funciones de miembro setHeaderEnabled y setFooterEnabled de NavigationFragment.

Enrutamiento

¿Puedo proporcionar una ruta específica a un usuario o quitar rutas alternativas?
No. De forma predeterminada, se proporcionan varias rutas y la más rápida tiene prioridad. Puedes modificar la ruta predeterminada agregando preferencias, como "evitar autopistas y peajes", a tu solicitud. Agregar puntos de referencia también afecta la ruta.
¿Puedo mostrarle al usuario de la app una etiqueta para el destino diferente de la ubicación de destino predeterminada?

Sí. Crea un Marker con un título personalizado para el destino y la latitud/longitud. El SDK de Navigation muestra el título personalizado y las coordenadas en el NavigationMap.

¿Puedo usar el SDK de Navigation para hacer un seguimiento de las desviaciones de una ruta definida?

Sí. Usa Navigator.setRouteChangedListener para recibir notificaciones cuando cambie una ruta o se recomiende una nueva:

  1. Registra un objeto de escucha que verifique la posición del dispositivo en la ruta con el método Navigator.setRouteChangedListener.
  2. Agrega código al controlador de eventos de devolución de llamada, onRouteChanged:
    • Envía un mensaje al usuario de la app con información actualizada sobre la hora de llegada estimada y la distancia.
    • Hacer un seguimiento de la ubicación del dispositivo
    • [opcional] Agrega otras funciones que requiera tu app para controlar cuando el usuario se desvía de la ruta prescrita.
¿Puede el usuario salir de la navegación sin completar la ruta?

Sí. Llama al método Navigator.stopGuidance para detener la navegación.

¿El SDK de Navigation admite la planificación de rutas y la navegación para camiones y vehículos grandes?

Sí. Con la planificación de rutas para vehículos grandes (LVR), puedes pasar tokens de ruta específicos para camiones generados por la API de Routes o la API de Route Optimization al SDK de Navigation. El SDK proporciona navegación paso a paso con leyendas de ruta (restricciones de altura, peso, materiales peligrosos y camiones) y mantiene el perfil físico del vehículo durante el cambio de ruta dinámico. Para obtener más detalles, consulta Cómo navegar por rutas para vehículos grandes.

de Pixel

¿El simulador admite cambios de ruta?

Sí. Llama a simulateLocationsAlongNewRoute para simular un viaje que incluya un cambio de ruta. El método simulateLocationsAlongExistingRoute ignora los cambios en la ruta existente.

Workflows

¿Cómo descarto la notificación después de cerrar una actividad que contiene un fragmento de navegación?

La notificación de navegación permanece visible durante la navegación, cuando se cierra la actividad. Cuando el vehículo llega al destino, la navegación se detiene y la notificación desaparece.

Para controlar los clics en la notificación, usa Navigator.startGuidance(intent resumeIntent). El evento resume intent se activa cuando el usuario de la app hace clic en la notificación. Por lo general, se llama a Navigator.startguidance(getIntent()) desde la actividad principal, que recupera la actividad cuando el usuario de la app hace clic en la notificación.

Servicios de movilidad

¿En qué se diferencia el uso del SDK de Navigation para los clientes de los servicios de movilidad?

Los servicios de movilidad de Google Maps Platform ofrecen una colección de APIs y SDKs para ayudar a satisfacer las necesidades empresariales de las empresas de transporte y logística. En el caso de los clientes de servicios de movilidad, el SDK de Navigation suele usarse junto con servicios relacionados para la optimización de rutas, el despacho, el seguimiento de tareas, el análisis de flotas y mucho más. El SDK de Navigation también se factura de manera diferente para los clientes de Mobility Services. Para obtener más información, consulta la documentación de los servicios de movilidad.

Actualmente, los productos de movilidad solo están disponibles para clientes seleccionados. Comunícate con tu representante de ventas para obtener más información.

¿Cómo puedo saber si soy cliente de Mobility Services?
Si no tienes certeza de si estás implementando el SDK de Navigation como cliente de Mobility Services, busca una llamada a ReportBillableEvent en tu código. Solo los clientes de Mobility Services deben llamar al método ReportBillableEvent.

¿Cómo se factura el SDK de Navigation a los clientes de los servicios de movilidad?
En el caso de los clientes de servicios de movilidad, la facturación y los precios del SDK de Navigation dependen del acuerdo de servicio que tengas con Google Maps Platform. Para obtener información sobre cómo verificar que tu implementación de Mobility Services se facture correctamente, consulta Validación de la facturación. Para obtener más información sobre la facturación de los servicios de movilidad, comunícate con tu representante de ventas.

¿Qué APIs del SDK de Navigation solo deben usar los clientes de Mobility Services?

Hay varias APIs en el SDK de Navigation que solo están diseñadas para que las usen los clientes de Servicios de movilidad, a quienes Google les factura por transacción. Si no eres cliente de los Servicios de movilidad, los siguientes métodos no realizan ninguna operación:

Si soy cliente de Mobility Services, ¿puedo usar también una implementación del SDK de Navigation que no sea de Mobility Services?

Sí, los clientes de los servicios de movilidad pueden usar las implementaciones del SDK de Navigation de los servicios de movilidad y de otros servicios. Sin embargo, solo puedes usar un tipo de implementación en una app a la vez. También debes crear un proyecto de Google Cloud, una cuenta de facturación y una clave de API nuevos, independientes de los que usas con tu implementación de los servicios de movilidad. Para obtener más información, consulta la descripción general de la configuración del SDK de Navigation.

Para obtener más información sobre cómo usar una implementación del SDK de Navigation que no sea de Mobility Services, incluida la migración de una app de un tipo de implementación a otro, comunícate con tu representante de cuenta de Google.

Nota: Si actualmente no eres cliente de los Servicios de movilidad y te interesa obtener más información sobre la colección de APIs y SDKs de los Servicios de movilidad, comunícate con el equipo de ventas de Google Maps Platform.