]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/data/Distance.java
Version 1, September 2006
[GpsPrune.git] / tim / prune / data / Distance.java
diff --git a/tim/prune/data/Distance.java b/tim/prune/data/Distance.java
new file mode 100644 (file)
index 0000000..61afdca
--- /dev/null
@@ -0,0 +1,36 @@
+package tim.prune.data;
+
+/**
+ * Class to provide distance constants and functions
+ */
+public abstract class Distance
+{
+       // distance formats
+       public static final int UNITS_KILOMETRES = 1;
+       public static final int UNITS_MILES      = 2;
+
+       // Geographical constants
+       private static final double EARTH_RADIUS_KM = 6372.795;
+       private static final double EARTH_RADIUS_MILES = 3959.8712255;
+       // Conversion constants
+       private static final double CONVERT_KM_TO_MILES = 1.609344;
+       private static final double CONVERT_MILES_TO_KM = 0.621371192;
+
+
+       /**
+        * Convert the given angle in radians into a distance
+        * @param inAngDist angular distance in radians
+        * @param inUnits desired units, miles or km
+        * @return distance in specified format
+        */
+       public static double convertRadians(double inAngDist, int inUnits)
+       {
+               // Multiply by appropriate factor
+               if (inUnits == UNITS_MILES)
+                       return inAngDist * EARTH_RADIUS_MILES;
+               return inAngDist * EARTH_RADIUS_KM;
+       }
+
+
+       
+}