NMEA: GPGGA. De minutos a decimales

Uno de los parámetros mas usados en lectura de GPSs bajo protocola NMEA puede ser el GPGGA

Hoy estoy haciendo una pequeña aplicación para Windows Mobile que usa GPS y pues necesitaba enviar la información a un servidor para luego ser visto usando los APIs de Google Maps. (Y aun me siento bien neófito en esta parte)

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

es el formato qeu usa el GPS para mostrarnos los datos básicos

Donde: 123519 Fix es la hora 12:35:19 UTC

4807.038,N Latitude 48 deg 07.038′ N

01131.000,E Longitude 11 deg 31.000′ E

Algunas aplicaciones como las apis de google de google maps pueden recibir la longitud y latitud en numeros (float), no en grados como se ven acá si pasamos 48.07038 y 11.31000 podemos posicionarnos a muchos km distancia de nuestra situación actual.

Una forma totalmente mejorable pero que me permitió salir del paso fue esta función:

Código en C#

private double ConvertirCoordADouble(double coords)
       {
           double residuo = coords % 1;
           double entero = coords – residuo;
           double conv = 10;
           double conv2 = 6;

double residuofx = conv / conv2 * residuo;

           return entero + residuofx;

       }

Asi la parte del código en mención queda de la siguiente manera:

double latitudeFix =ConvertirCoordADouble( protocol.GPGGA.Latitude) ;
               double longitudFix = ConvertirCoordADouble(protocol.GPGGA.Longitude);

               lblLatitud.Text = protocol.GPGGA.LatitudeHemisphere == Cardinal.North ? latitudeFix.ToString() : (-latitudeFix).ToString();

               lblLongitud.Text = protocol.GPGGA.LongitudeHemisphere == Cardinal.East ? longitudFix.ToString() : (-longitudFix).ToString();

El código base lo tomé de Scott Hanselman aquí.

De esta manera pasamos los minutos y segundos que están en sistema angular a un sistema decimal.

Ojalá les pueda servir.

Espero subir un código de ejemplo pronto.

Nota. Por si no saben como conectar un gps real al emulador del windows mobile no se olvide de este video.

Mas información en http://www.cesarfong.info

Un comentario sobre “NMEA: GPGGA. De minutos a decimales”

Responder a victorleo Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *