Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


La mejor práctica para calcular la velocidad media de las coordenadas GPS

Tengo aquí un dispositivo que me puede dar coordenadas GPS. El intervalo de tiempo que puedo definir. Quiero usarlo para calcular la velocidad media durante la conducción o el viaje en coche. En realidad usé una fórmula de ortodromo para calcular la distancia entre dos puntos y luego dividirla por el intervalo de tiempo dado. Por la implementación he seguido este término . Por desgracia, sólo pude encontrar un enlace alemán, pero creo que la fórmula debe ser comprensible en cualquier idioma;)

Desafortunadamente, usar esta fórmula y un intervalo de tiempo de 1 segundo da resultados muy poco precisos. La velocidad al caminar es de entre 1 km / h y 20 km / h.

Así que me pregunto si hay una referencia general sobre cómo implementar el cálculo de distancia entre dos coordenadas GPS (he encontrado algo similar en SO) y en particular, ¿cuál es el mejor intervalo de tiempo para actualizar las coordenadas GPS?

  • Cálculo de intersecciones entre segmentos de línea
  • Mostrar una buena fórmula de matemáticas en Android
  • Determinación de números pares / impares (enteros)?
  • Implementar página curl en android?
  • Android Dividir el círculo en N partes iguales y conocer las coordenadas de cada punto de división
  • ¿Qué es una buena biblioteca para analizar expresiones matemáticas en java?
  • Fórmulas matemáticas en textview en android
  • ¿Cómo calcular la posición en un círculo con un cierto ángulo?
  • 3 Solutions collect form web for “La mejor práctica para calcular la velocidad media de las coordenadas GPS”

    Supongo que estás probando esto caminando a una velocidad constante (creo que ~ 5 kph es una velocidad normal de caminar) mientras mide su posición GPS una vez por segundo.

    La variación que está viendo en la velocidad instantánea (la distancia entre cada punto medido dividido por 1 segundo) es debido a una variación aleatoria en la posición GPS medida o bien no está tomando sus medidas exactamente un segundo aparte (o podría Ser ambas cosas).

    Voy a suponer que sus medidas están siendo tomadas con precisión un segundo aparte. Los dispositivos GPS de mano son mucho menos precisos de lo anunciado. Aunque a menudo se afirma que los dispositivos son precisos dentro de 10 pies de la posición verdadera, esto simplemente no es así.

    La mejor manera de medir y reportar la precisión de un dispositivo GPS es dejarlo en un lugar donde pueda ver los satélites y no llover, y grabar un día de datos. A continuación, puede utilizar Google Maps para trazar los puntos – he hecho esto alrededor de mi casa y alrededor de la oficina, que es una buena manera de darle un sentido de la escala.

    Obviamente, si los dispositivos eran perfectamente precisos, verías todos tus puntos medidos en un solo punto. O, si la cosa de exactitud de 10 pies era verdad, usted vería todos los puntos en un pequeño racimo dentro de un círculo de 20 pies de diámetro.

    Lo que ves en su lugar (con todos los dispositivos habilitados para GPS que he probado) es una combinación de dispersión de posición relativamente pequeña (del orden de unas pocas decenas de pies) que ocurre en una escala de unos pocos segundos, ya un largo plazo "Caminata al azar" de la posición media que podría moverse 200 o 300 pies en el transcurso de un día o dos. Cuando se trama sobre su propia casa, por ejemplo, podría parecer que su PDA se acercó a la casa del vecino, luego al otro lado de la calle, luego por la calle dos casas, hacia usted, etc., todo mientras zumbaba alrededor de 5 o 10 pies aquí O allí como él bebió demasiado café.

    GPS puede ser más preciso que esto. Los topógrafos usan dispositivos con conjuntos de receptores mucho más potentes (para obtener una lectura mucho más precisa de las señales de satélite), y los dejan en su lugar durante días a la vez para mediciones sucesivas. Los dispositivos portátiles tienen chips de receptor barato y antenas baratas y tienen que tratar con todo tipo de interferencia de señal de todos modos.

    Su mejor apuesta es hacer un promedio para calcular su velocidad instantánea. En lugar de dividir la distancia entre el punto actual y el punto anterior por 1 segundo, tome las últimas 5 distancias entre puntos y divida por 5 segundos (o cualquier número de segundos que use). Es importante no tomar la diferencia entre el punto actual y el punto hace 5 segundos y dividir esta distancia por 5, ya que perdería cualquier movimiento no lineal.

    Actualización: Me di cuenta en un comentario que estás usando un dispositivo Android. ¿Sabe si tiene un receptor GPS incorporado? Muchos (la mayoría?) De los dispositivos Android no lo hacen, lo que significa que su GPS no es la versión triangulada de los satélites del GPS, sino la adivinar dónde estoy basado en la señal de la -células-versión. Esto es mucho menos preciso posicionalmente, como estoy seguro que podría decir por la snarkiness de mi descripción. 🙂

    Los sistemas GPS pueden producir velocidad instantánea directamente, sin posiciones de interpolación. He leído en alguna parte que la lectura de la velocidad es realmente más exacta que la lectura de la posición. ¿Qué dispositivo / sistema / OS está utilizando?

    En Android, prueba el método android.location.Location.getSpeed() junto con hasSpeed() ) en tu implementación de LocationListener .

    Buscar en google para la exactitud de velocidad GPS, y encontrará informes que indican que la velocidad calculada fuera de la posición-vs-tiempo es diez veces peor que simplemente utilizando el parámetro de velocidad procedente directamente desde el receptor GPS. El parámetro de velocidad no depende de la precisión de posición, sino que se calcula a partir de doppler (velocidad / diferencia de frecuencia) de las señales de satélite.

    Buena suerte

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.