X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosGreatCircle.java;h=a2f128074c89ebe29b446f7af027683762acf9b4;hb=1dce20f7eee56166ac61798ca26eeb323dc8f012;hp=22a8e0e53149de59db01ae11633df35730eac57b;hpb=60edcfe410e7fa848813d6c1ed8dc9808887d041;p=fw%2Faltos diff --git a/altoslib/AltosGreatCircle.java b/altoslib/AltosGreatCircle.java index 22a8e0e5..a2f12807 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_5; +package org.altusmetrum.altoslib_11; import java.lang.Math; import java.io.*; -public class AltosGreatCircle implements Cloneable, Serializable { +public class AltosGreatCircle implements Cloneable { public double distance; public double bearing; public double range; @@ -28,8 +28,8 @@ public class AltosGreatCircle implements Cloneable, Serializable { 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; @@ -71,7 +71,10 @@ public class AltosGreatCircle implements Cloneable, Serializable { course = 2 * Math.PI-course; } distance = d * earth_radius; - bearing = course * 180/Math.PI; + if (Double.isNaN(course) || Double.isInfinite(course)) + bearing = 0; + else + bearing = course * 180/Math.PI; double height_diff = end_alt - start_alt; range = Math.sqrt(distance * distance + height_diff * height_diff);