* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_1;
+package org.altusmetrum.altoslib_5;
import java.lang.Math;
-public class AltosGreatCircle {
+public class AltosGreatCircle implements Cloneable {
public double distance;
public double bearing;
public double range;
static final double rad = Math.PI / 180;
static final double earth_radius = 6371.2 * 1000; /* in meters */
- public static final int BEARING_LONG = 0;
- public static final int BEARING_SHORT = 1;
- public static final int BEARING_VOICE = 2;
+ public static final int BEARING_LONG = AltosConvert.BEARING_LONG;
+ public static final int BEARING_SHORT = AltosConvert.BEARING_SHORT;
+ public static final int BEARING_VOICE = AltosConvert.BEARING_VOICE;
public String bearing_words(int length) {
- String [][] bearing_string = {
- {
- "North", "North North East", "North East", "East North East",
- "East", "East South East", "South East", "South South East",
- "South", "South South West", "South West", "West South West",
- "West", "West North West", "North West", "North North West"
- }, {
- "N", "NNE", "NE", "ENE",
- "E", "ESE", "SE", "SSE",
- "S", "SSW", "SW", "WSW",
- "W", "WNW", "NW", "NNW"
- }, {
- "north", "nor nor east", "north east", "east nor east",
- "east", "east sow east", "south east", "sow sow east",
- "south", "sow sow west", "south west", "west sow west",
- "west", "west nor west", "north west", "nor nor west "
- }
- };
- return bearing_string[length][(int)((bearing / 90 * 8 + 1) / 2)%16];
+ return AltosConvert.bearing_to_words(length, bearing);
}
public AltosGreatCircle (double start_lat, double start_lon, double start_alt,
elevation = Math.atan2(height_diff, distance) * 180 / Math.PI;
}
+ public AltosGreatCircle clone() {
+ AltosGreatCircle n = new AltosGreatCircle();
+
+ n.distance = distance;
+ n.bearing = bearing;
+ n.range = range;
+ n.elevation = elevation;
+ return n;
+ }
+
public AltosGreatCircle (double start_lat, double start_lon,
double end_lat, double end_lon) {
this(start_lat, start_lon, 0, end_lat, end_lon, 0);