Refactor lat/long parsing

This commit is contained in:
mort5161 2014-07-25 14:21:26 -07:00
parent 189b10d376
commit 9663da9cf2
3 changed files with 28 additions and 12 deletions

View file

@ -45,12 +45,8 @@ namespace NmeaParser.Nmea.Gps
protected override void LoadMessage(string[] message)
{
var time = message[0];
Latitude = int.Parse(message[1].Substring(0, 2), CultureInfo.InvariantCulture) + double.Parse(message[1].Substring(2), CultureInfo.InvariantCulture) / 60;
if (message[2] == "S")
Latitude *= -1;
Longitude = int.Parse(message[3].Substring(0, 3), CultureInfo.InvariantCulture) + double.Parse(message[3].Substring(3), CultureInfo.InvariantCulture) / 60;
if (message[4] == "W")
Longitude *= -1;
Latitude = NmeaMessage.StringToLatitude(message[1], message[2]);
Longitude = NmeaMessage.StringToLongitude(message[3], message[4]);
Quality = (FixQuality)int.Parse(message[5], CultureInfo.InvariantCulture);
NumberOfSatellites = int.Parse(message[6], CultureInfo.InvariantCulture);
Hdop = double.Parse(message[7], CultureInfo.InvariantCulture);

View file

@ -38,12 +38,8 @@ namespace NmeaParser.Nmea.Gps
int.Parse(message[0].Substring(2, 2)),
int.Parse(message[0].Substring(4, 2)), DateTimeKind.Utc);
Active = (message[1] == "A");
Latitude = int.Parse(message[2].Substring(0, 2), CultureInfo.InvariantCulture) + double.Parse(message[2].Substring(2), CultureInfo.InvariantCulture) / 60;
if (message[3] == "S")
Latitude *= -1;
Longitude = int.Parse(message[4].Substring(0, 3), CultureInfo.InvariantCulture) + double.Parse(message[4].Substring(3), CultureInfo.InvariantCulture) / 60;
if (message[5] == "W")
Longitude *= -1;
Latitude = NmeaMessage.StringToLatitude(message[2], message[3]);
Longitude = NmeaMessage.StringToLongitude(message[4], message[5]);
Speed = double.Parse(message[6], CultureInfo.InvariantCulture);
Course = double.Parse(message[7], CultureInfo.InvariantCulture);
MagneticVariation = double.Parse(message[9], CultureInfo.InvariantCulture);