X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosGreatCircle.java;h=8fd380a100ada00c645698460426dbd56223adc4;hb=1b5ea911049a8afae6af475a4a2bf62a6e3aa57b;hp=4f9345179ab3ae77adfd42427532768cefdd3754;hpb=b313a5a3d5aba89330c0e20eeac00cc571828953;p=fw%2Faltos diff --git a/altoslib/AltosGreatCircle.java b/altoslib/AltosGreatCircle.java index 4f934517..8fd380a1 100644 --- a/altoslib/AltosGreatCircle.java +++ b/altoslib/AltosGreatCircle.java @@ -15,12 +15,12 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_7; +package org.altusmetrum.altoslib_11; import java.lang.Math; import java.io.*; -public class AltosGreatCircle implements Cloneable, Serializable { +public class AltosGreatCircle implements Cloneable, AltosHashable, AltosJsonable { public double distance; public double bearing; public double range; @@ -103,4 +103,58 @@ public class AltosGreatCircle implements Cloneable, Serializable { range = 0; elevation = 0; } + + public AltosHashSet hashSet() { + AltosHashSet h = new AltosHashSet(); + + h.putDouble("distance", distance); + h.putDouble("bearing", bearing); + h.putDouble("range", range); + h.putDouble("elevation", elevation); + + return h; + } + + 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(AltosHashSet h) { + this(); + + distance = h.getDouble("distance", distance); + bearing = h.getDouble("bearing", bearing); + range = h.getDouble("range", range); + elevation = h.getDouble("elevation", elevation); + } + + public static AltosGreatCircle fromHashSet(AltosHashSet h, AltosGreatCircle def) { + if (h == null) + return def; + + return new AltosGreatCircle(h); + } + + 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); + } }