private static double GetTolerance(GeoComparerPrecision precision) { switch (precision) { case GeoComparerPrecision.Meter: return 0.00001; case GeoComparerPrecision.Decimeter: return 0.000001; case GeoComparerPrecision.Centimeter: return 0.0000001; case GeoComparerPrecision.Millimeter: return 0.00000001; default: throw new ArgumentOutOfRangeException("precision"); } }
public static bool AreEqual(Longitude left, Longitude right, GeoComparerPrecision precision) { double tolerance = GetTolerance(precision); return Math.Abs(left.Value - right.Value) < tolerance; }