1 package tim.prune.data;
4 * Class to provide distance constants and functions
6 public abstract class Distance
9 public static final int UNITS_KILOMETRES = 1;
10 public static final int UNITS_MILES = 2;
11 public static final int UNITS_METRES = 3;
13 // Geographical constants
14 private static final double EARTH_RADIUS_KM = 6372.795;
15 // Conversion constants
16 private static final double CONVERT_KM_TO_MILES = 0.621371192;
20 * Convert the given angle in radians into a distance
21 * @param inAngDist angular distance in radians
22 * @param inUnits desired units, eg miles or km
23 * @return distance in specified format
25 public static double convertRadiansToDistance(double inAngDist, int inUnits)
27 // Multiply by appropriate factor
28 if (inUnits == UNITS_MILES)
29 return inAngDist * EARTH_RADIUS_KM * CONVERT_KM_TO_MILES;
30 else if (inUnits == UNITS_METRES)
31 return inAngDist * EARTH_RADIUS_KM * 1000;
33 return inAngDist * EARTH_RADIUS_KM;
37 * Convert the given distance into an angle in radians
38 * @param inDist distance to convert
39 * @param inUnits units, eg miles or km
40 * @return angular distance in radians
42 public static double convertDistanceToRadians(double inDist, int inUnits)
44 // Divide by appropriate factor
45 if (inUnits == UNITS_MILES)
46 return inDist / EARTH_RADIUS_KM / CONVERT_KM_TO_MILES;
47 else if (inUnits == UNITS_METRES)
48 return inDist / EARTH_RADIUS_KM / 1000;
50 return inDist / EARTH_RADIUS_KM;