ugps: Only convert lat and lon to negative after parsing
[project/ugps.git] / nmea.c
diff --git a/nmea.c b/nmea.c
index 275f39f..1a3f94f 100644 (file)
--- a/nmea.c
+++ b/nmea.c
@@ -123,11 +123,6 @@ nmea_rmc_cb(void)
                float lat = strtof(nmea_params[3].str, NULL);
                float lon = strtof(nmea_params[5].str, NULL);
 
-               if (*nmea_params[4].str == 'S')
-                       lat *= -1.0;
-               if (*nmea_params[6].str == 'W')
-                       lon *= -1.0;
-
                degrees = floor(lat / 100.0);
                minutes = lat - (degrees * 100.0);
                lat = degrees + minutes / 60.0;
@@ -136,6 +131,11 @@ nmea_rmc_cb(void)
                minutes = lon - (degrees * 100.0);
                lon = degrees + minutes / 60.0;
 
+               if (*nmea_params[4].str == 'S')
+                       lat *= -1.0;
+               if (*nmea_params[6].str == 'W')
+                       lon *= -1.0;            
+
                snprintf(latitude, sizeof(latitude), "%f", lat);
                snprintf(longitude, sizeof(longitude), "%f", lon);