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;
 }