* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-package org.altusmetrum.altoslib_5;
+package org.altusmetrum.altoslib_11;
import java.lang.Math;
+import java.io.*;
-public class AltosGreatCircle implements Cloneable {
+public class AltosGreatCircle implements Cloneable, AltosJsonable {
public double distance;
public double bearing;
public double range;
double sqr(double a) { return a * a; }
- static final double rad = Math.PI / 180;
- static final double earth_radius = 6371.2 * 1000; /* in meters */
+ public static final double rad = Math.PI / 180;
+ public static final double earth_radius = 6371.2 * 1000; /* in meters */
public static final int BEARING_LONG = AltosConvert.BEARING_LONG;
public static final int BEARING_SHORT = AltosConvert.BEARING_SHORT;
range = 0;
elevation = 0;
}
+
+ public AltosJson json() {
+ AltosJson j = new AltosJson();
+
+ j.put("distance", distance);
+ j.put("bearing", bearing);
+ j.put("range", range);
+ j.put("elevation", elevation);
+
+ return j;
+ }
+
+ public AltosGreatCircle(AltosJson j) {
+ this();
+
+ distance = j.get_double("distance", distance);
+ bearing = j.get_double("bearing", bearing);
+ range = j.get_double("range", range);
+ elevation = j.get_double("elevation", elevation);
+ }
+
+ public static AltosGreatCircle fromJson(AltosJson j, AltosGreatCircle def) {
+ if (j == null)
+ return def;
+
+ return new AltosGreatCircle(j);
+ }
}