X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosGreatCircle.java;h=8fd380a100ada00c645698460426dbd56223adc4;hb=1b5ea911049a8afae6af475a4a2bf62a6e3aa57b;hp=9ec808a5ca74e0c3b9e93d6a4a489d224d550448;hpb=1de8b6c340cec0b5a327392686c5a4e00f201e98;p=fw%2Faltos diff --git a/altoslib/AltosGreatCircle.java b/altoslib/AltosGreatCircle.java index 9ec808a5..8fd380a1 100644 --- a/altoslib/AltosGreatCircle.java +++ b/altoslib/AltosGreatCircle.java @@ -20,7 +20,7 @@ package org.altusmetrum.altoslib_11; import java.lang.Math; import java.io.*; -public class AltosGreatCircle implements Cloneable, AltosHashable { +public class AltosGreatCircle implements Cloneable, AltosHashable, AltosJsonable { public double distance; public double bearing; public double range; @@ -115,6 +115,17 @@ public class AltosGreatCircle implements Cloneable, AltosHashable { 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(); @@ -130,4 +141,20 @@ public class AltosGreatCircle implements Cloneable, AltosHashable { 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); + } }