diff --git a/src/NmeaParser/Nmea/Dtm.cs b/src/NmeaParser/Nmea/Dtm.cs index 2924d6c..35516fc 100644 --- a/src/NmeaParser/Nmea/Dtm.cs +++ b/src/NmeaParser/Nmea/Dtm.cs @@ -43,15 +43,15 @@ namespace NmeaParser.Messages /// The NMEA message values. public Dtm (string type, string[] message) : base(type, message) { - if (message == null || message.Length < 6) + if (message == null || message.Length < 8) throw new ArgumentException("Invalid DTM", "message"); LocalDatumCode = message[0]; if (message[1].Length > 0) LocalDatumSubdivisionCode = message[1][0]; - LatitudeOffset = NmeaMessage.StringToDouble(message[2]); - LongitudeOffset = NmeaMessage.StringToDouble(message[3]); - AltitudeOffset = NmeaMessage.StringToDouble(message[4]); - ReferenceDatumCode = message[5]; + LatitudeOffset = NmeaMessage.StringToDouble(message[2]) * (message[3]=="S" ? -1 : 1); + LongitudeOffset = NmeaMessage.StringToDouble(message[4]) * (message[5] == "W" ? -1 : 1); + AltitudeOffset = NmeaMessage.StringToDouble(message[6]); + ReferenceDatumCode = message[7]; } ///