public bool Equals(Latitude other)
 {
     if (other == null) {
         return false;
     }
     return ReferenceEquals(this, other) || GeoComparer.AreEqual(this, other);
 }
 public Datum(DateTime time, Latitude latitude, Longitude longitude, Length altitude = null, Speed speed = null, Heading heading = null)
 {
     _time = time;
     _location = new GeoPosition(latitude, longitude, altitude);
     _speed = speed;
     _heading = heading;
 }
 public static bool AreEqual(Latitude left, Latitude right, GeoComparerPrecision precision)
 {
     double tolerance = GetTolerance(precision);
     return Math.Abs(left.Value - right.Value) < tolerance;
 }
 public static bool AreEqual(Latitude left, Latitude right)
 {
     return AreEqual(left, right, DefaultPrecision);
 }