Uso del GPS para capturar velocidad
Posible duplicado:
Detectar una velocidad en android
Estoy entrando en el desarrollo de Android y me gustaría empezar a jugar con el GPS y la captura de velocidades. ¿Hay una manera que puedo capturar fácilmente la velocidad usando los gps y mostrar esa velocidad en la pantalla? Cualquier marco simple o construido en funciones que podría utilizar?
- ¿Por qué usar Enums en lugar de Constantes?
- ¿Cómo detectar móviles (iOS y Android) utilizando JSP / Java?
- Obteniendo 1 byte extra en el módulo RSA Key ya veces para exponentes también
- No se puede instanciar receptor: class no tiene cero argumento
- No pasar nada a un AsyncTask en Android
- ¿Los campos estáticos de las clases de actividad están garantizados para sobrevivir a un ciclo de creación / destrucción?
- Voltear la imagen almacenada como una matriz de bytes
- Cómo parar toast & alertDialog perder el foco en mi filtro EditText
- ¿Qué tamaño debe tener el icono en un alerta?
- JAVA_HOME se establece en un directorio no válido mientras se ejecuta ./gradlew en OSX
- Xy La actividad no es un mensaje de error de clase concreto en el manifiesto
- Cómo cambiar el ancho de trazo de una forma de programación en Android?
- Error de Androidplot: No se puede resolver getGraphWidget y otro método
Usted tendrá que utilizar LocationManager que se utiliza para obtener la ubicación del usuario a través de GPS, los datos GPS que devuelve incluye la velocidad. Deberá utilizar la función onLocationChanged(Location location)
del LocationListener .
Para obtener la velocidad que necesitará hacer esto:
int speed = location.getSpeed();
Que está en m / s, si necesita convertirlo a km / h use esto:
int speed=(int) ((location.getSpeed()*3600)/1000);
Si necesita convertirlo a mph use esto:
int speed=(int) (location.getSpeed()*2.2369);
Creo que hay dos maneras de lograr esto:
En primer lugar, si se refiere a la clase Location en android, puede averiguar que tiene un método llamado getSpeed
. Dice:
Returns the speed of the device over ground in meters/second. If hasSpeed() is false, 0.0f is returned.
Así, puedes escribir, algo como esto
if (locationObj.hasSpeed()) { float speed = locationObj.getSpeed(); // process data } else { // Speed information not available. }
En segundo lugar, puede realizar un seguimiento de las actualizaciones de ubicación de los gps, para que almacene la ubicación y la hora anteriores en las que se produce dicha actualización. Ahora, cada vez que una nueva actualización llega, puede encontrar la distancia recorrida usando el método distanceTo
de la clase Location
. Por lo tanto, para conocer la velocidad actual, puede utilizar la fórmula, distance travelled / time difference between the updates
- Elemento de crecimiento de RecyclerView de derecha a izquierda
- Android autoLink causa error de procesamiento