Preguntas frecuentes
Detalles del producto
- ¿Cómo se debe mostrar el aviso de las Condiciones del Servicio del SDK de Navigation?
- ¿Qué idiomas admite la guía de voz?
- ¿Se mantiene el rumbo cuando el usuario sale del modo de navegación?
- ¿Los polilíneas están disponibles cuando se inicia o se cambia una ruta?
- ¿Los usuarios de la app deben tener instalado Google Maps para dispositivos móviles?
- ¿El SDK de Navigation puede identificar estacionamientos cerca de restaurantes y otros destinos?
- ¿El SDK de Navigation muestra la dirección del tráfico en los carriles cuando se acerca a un punto de giro?
- ¿Qué versiones del JDK admite el SDK de Navigation?
Red y conectividad
- ¿Cómo controla el SDK de Navigation la conectividad de red deficiente?
- ¿Cómo controla el SDK de Navigation las señales de GPS débiles o perdidas?
- ¿Está disponible un modo sin conexión?
Datos
- ¿Puedo recuperar todas las paradas o destinos de un viaje antes de iniciar la ruta?
- ¿La guía de ruta paso a paso está disponible al comienzo de una ruta?
- ¿Cómo se comunica la hora de llegada estimada (ETA) a los usuarios de la app?
- ¿Se puede usar
RoadSnappedLocationProvider
para obtener la ubicación fija actual del usuario si la navegación no está en primer plano? - ¿El SDK de Navigation es compatible con el geovallado?
- ¿Puedo inhabilitar las notificaciones cuando la app de Navigation está en segundo plano?
- ¿Cómo puedo ver el registro de transacciones que mantiene Google?
Personalización de la IU
- ¿Puedo codificar por colores la mejor opción de ruta?
- ¿El SDK de Navigation puede mostrar la hora de llegada estimada al destino final?
- ¿Cómo puedo ocultar las actualizaciones de la hora de llegada estimada?
- ¿Qué personalizaciones de la IU están disponibles para las tarjetas de encabezado y pie de página?
Enrutamiento
- ¿Puedo proporcionar una ruta específica a un usuario o quitar rutas alternativas?
- ¿Puedo mostrarle al usuario una etiqueta diferente para el destino que la ubicación de destino predeterminada?
- ¿Puedo usar el SDK de Navigation para hacer un seguimiento de las desviaciones de una ruta definida?
- ¿El usuario puede salir de la navegación sin completar la ruta?
Simulador
Workflows
Servicios de movilidad
- ¿En qué se diferencia el uso del SDK de Navigation para los clientes de los servicios de movilidad?
- ¿Cómo puedo saber si soy cliente de los Servicios de movilidad?
- ¿Cómo se factura el SDK de Navigation para los clientes de los Servicios de movilidad?
- ¿Qué APIs del SDK de Navigation solo deben usar los clientes de Mobility Services?
- Si soy cliente de los Servicios de movilidad, ¿también puedo usar una implementación del SDK de Navigation que no sea de los 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 brinda al usuario la oportunidad de aceptar las Condiciones del Servicio. Se proporciona un archivo de texto de los
términos con el SDK de Navigation.
Usa el método
NavigationApi.showTermsAndConditionsDialog
para mostrar el diálogo que contiene los términos. - Todos los idiomas compatibles con Google Maps para dispositivos móviles están disponibles automáticamente para el SDK de Navigation. Un dispositivo tiene un idioma del sistema predeterminado, 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 iniciado,
LocationListener
sigue ejecutándose en segundo plano. Tu 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 versiones LTS de Java SE que Oracle admite de forma activa. Estas versiones se indican como 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 en caché la ruta de cada viaje de forma previa. La información almacenada en caché previamente 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 aproxima la posición con el GPS y los sensores del dispositivo.
- ¿Cómo maneja el SDK de Navigation las señales de GPS débiles 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, mostrará el mensaje "Buscando GPS…" en las siguientes situaciones:
- Si transcurrieron más de 10 segundos desde la última vez que recibió una señal de GPS.
- Si la posición de planificación de 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 del chevron, puede disminuir hasta detenerse por completo. En este caso, el signo de intercalación en el mapa permanecerá en la ubicación que indique la última señal de GPS. El SDK no saldrá automáticamente del modo de navegación debido a que no recibe una señal de GPS. Sin embargo, es posible que no pueda brindar orientación hasta que vuelva a recibir una señal.
- ¿Está disponible un modo sin conexión?
- No, el SDK de Navigation no ofrece un modo sin conexión en este momento. Sin embargo, el SDK proporciona información almacenada en caché previamente para un viaje.
Datos
- ¿Puedo recuperar todas las paradas o destinos de un viaje antes de comenzar la ruta?
-
Sí. Para recuperar las instrucciones sobre cómo llegar a 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 segmentos de ruta. Además, el usuario puede deslizar la tarjeta de instrucciones en el encabezado para ver cada maniobra.
- ¿Cómo se comunica la hora de llegada estimada a los usuarios de la app?
-
Sigue estos pasos para proporcionar información de ETA a los usuarios de la app:
- Recupera el tiempo y la distancia de todos los puntos de referencia con
Navigator.getTimeAndDistanceList()
. - Reenvía esta información a la aplicación cliente como lo haces con la hora de llegada estimada del conductor.
- Recupera el tiempo y la distancia de todos los puntos de referencia con
-
¿Se puede usar
RoadSnappedLocationProvider
para obtener la ubicación fija actual del usuario si la navegación no está en primer plano? -
Sí. El
RoadSnappedLocationProvider
se ejecuta en segundo plano de forma predeterminada. - ¿El SDK de Navigation admite el geovallado?
-
No. En el contexto de la navegación,
remainingTimeOrdistanceChangeListener
tiene una ventaja sobre una geovalla. Es posible que el geovallado no tenga en cuenta la geometría de la ruta ni esté centrado en el punto exacto al que navega el usuario.Puedes aproximar esta función con
remainingTimeOrdistanceChangeListener
.- Establece el umbral para determinar la frecuencia de las devoluciones de llamada.
- 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 más pequeño 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 partida o destino.
- ¿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. -
El registrador de transacciones realiza un seguimiento de las ubicaciones de partida y destino con un ID único, que Google registra para fines de estadísticas de productos. Si eres cliente de Servicios de movilidad, Google recomienda que implementes
NavigationTransactionRecorder
para registrar un registro de tus transacciones.
Personalización de la IU
- ¿Puedo asignar un código de color a la mejor opción de ruta?
- No. Por el momento, no se admite la codificación por colores de una opción de ruta específica.
- ¿El SDK de Navigation puede mostrar la hora de llegada estimada al destino final?
-
Sí. Usa los siguientes métodos:
- Recupera el tiempo y la distancia de todos los puntos de referencia con
Navigator.getTimeAndDistanceList()
. - Oculta la hora de llegada estimada del punto de referencia actual con
NavigationFragment.setEtaCardEnabled(false)
. - Renderiza la hora de llegada estimada al destino final.
- Recupera el tiempo y la distancia de todos los puntos de referencia con
- ¿Cómo puedo ocultar las actualizaciones de la hora de llegada estimada?
-
Para inhabilitar las tarjetas de ETA, llama a
navigationView.setEtaCardEnabled(false)
. -
Usa
StylingOptions
para establecer el diseño del color de fondo. Para ocultar o mostrar el encabezado y el pie de página, usa las funciones miembrosetHeaderEnabled
ysetFooterEnabled
deNavigationFragment
.
Enrutamiento
- ¿Puedo proporcionar una ruta específica a un usuario o quitar las rutas alternativas?
- No. De forma predeterminada, se proporcionan varias rutas, y la más rápida tiene prioridad. Para afectar la ruta predeterminada, agrega preferencias, como "evitar autopistas y peajes", a tu solicitud. La adición de puntos de referencia también afecta la ruta.
- ¿Puedo mostrarle al usuario de la app una etiqueta diferente para el destino que 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 enNavigationMap
. - ¿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:- Registra un objeto de escucha que verifique la posición del dispositivo a lo largo de la ruta con el método
Navigator.setRouteChangedListener
. - Agrega código al controlador de eventos de devolución de llamada,
onRouteChanged
:- Envía un mensaje al usuario de la app con la hora de llegada estimada y la información de distancia actualizada.
- Hacer un seguimiento de la ubicación del dispositivo
- [Opcional] Agrega otras funciones que requiera tu app para controlar cuando el usuario salga de la ruta prescrita.
- Registra un objeto de escucha que verifique la posición del dispositivo a lo largo de la ruta con el método
-
Sí. Llama al método
Navigator.stopGuidance()
para detener la navegación.
Simulador
- ¿El simulador admite cambios de ruta?
-
Sí. Llama a
simulateLocationsAlongNewRoute
para simulating un viaje que incluya un cambio de ruta. El métodosimulateLocationsAlongExistingRoute
ignora los cambios en la ruta existente.
Workflows
- ¿Cómo rechazo 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)
.resume intent
se activa cuando el usuario de la app hace clic en la notificación. Por lo general, se llama aNavigator.startguidance(getIntent())
desde la actividad principal, que recuerda la actividad cuando el usuario de la app hace clic en la notificación.
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 los servicios de movilidad, el SDK de Navigation suele usarse junto con servicios relacionados para la optimización de rutas, el envío, el seguimiento de tareas, las estadísticas de flotas y mucho más. El SDK de Navigation también se factura de manera diferente para los clientes de los servicios de movilidad. Para obtener más información, consulta la documentación de 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.
ReportBillableEvent
en tu código. Solo los clientes de los servicios de movilidad deben llamar al método ReportBillableEvent
.
Existen varias APIs en el SDK de Navigation que solo están destinadas a los clientes de Servicios de movilidad, a los que Google les factura por transacción. Si no eres cliente de los Servicios de movilidad, los siguientes métodos no son operativos:
Sí, los clientes de los servicios de movilidad pueden usar implementaciones del SDK de Navigation tanto de los servicios de movilidad como de otros. Sin embargo, solo puedes usar un tipo de implementación en una app a la vez. También debes crear un proyecto, una cuenta de facturación y una clave de API de Google Cloud nuevos, independientes de los que usas con tu implementación de 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 el uso de una implementación del SDK de Navigation que no sea de Servicios de movilidad, 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.