X-Git-Url: https://gitweb.fperrin.net/?p=GpsPrune.git;a=blobdiff_plain;f=tim%2Fprune%2Fdata%2FCoordinate.java;h=8a81850cba90e7c429696a3062dc3e5f96681a66;hp=6d8de61197bec7ae945658662c1060c4dd0e7663;hb=5625a1abadb5f2ca5f017fe7dbda1d5141cb637b;hpb=23959e65a6a0d581e657b07186d18b7a1ac5afeb diff --git a/tim/prune/data/Coordinate.java b/tim/prune/data/Coordinate.java index 6d8de61..8a81850 100644 --- a/tim/prune/data/Coordinate.java +++ b/tim/prune/data/Coordinate.java @@ -15,6 +15,9 @@ public abstract class Coordinate public static final int FORMAT_DEG_MIN = 11; public static final int FORMAT_DEG = 12; public static final int FORMAT_DEG_WITHOUT_CARDINAL = 13; + public static final int FORMAT_DEG_WHOLE_MIN = 14; + public static final int FORMAT_DEG_MIN_SEC_WITH_SPACES = 15; + public static final int FORMAT_CARDINAL = 16; public static final int FORMAT_NONE = 19; // Instance variables @@ -134,8 +137,8 @@ public abstract class Coordinate { _asDouble = inValue; // Calculate degrees, minutes, seconds - _degrees = (int) inValue; - double numMins = (Math.abs(_asDouble)-Math.abs(_degrees)) * 60.0; + _degrees = (int) Math.abs(inValue); + double numMins = (Math.abs(_asDouble)-_degrees) * 60.0; _minutes = (int) numMins; double numSecs = (numMins - _minutes) * 60.0; _seconds = (int) numSecs; @@ -204,18 +207,37 @@ public abstract class Coordinate .append(twoDigitString(_minutes)).append('\'') .append(twoDigitString(_seconds)).append('.') .append(_fracs); - answer = buffer.toString(); break; + answer = buffer.toString(); + break; } case FORMAT_DEG_MIN: { answer = "" + PRINTABLE_CARDINALS[_cardinal] + threeDigitString(_degrees) + "°" - + (_minutes + _seconds / 60.0 + _fracs / 600.0); break; + + (_minutes + _seconds / 60.0 + _fracs / 600.0) + "'"; + break; + } + case FORMAT_DEG_WHOLE_MIN: + { + answer = "" + PRINTABLE_CARDINALS[_cardinal] + threeDigitString(_degrees) + "°" + + (int) Math.floor(_minutes + _seconds / 60.0 + _fracs / 600.0 + 0.5) + "'"; + break; } case FORMAT_DEG: case FORMAT_DEG_WITHOUT_CARDINAL: { answer = (_asDouble<0.0?"-":"") - + (_degrees + _minutes / 60.0 + _seconds / 3600.0 + _fracs / 36000.0); break; + + (_degrees + _minutes / 60.0 + _seconds / 3600.0 + _fracs / 36000.0); + break; + } + case FORMAT_DEG_MIN_SEC_WITH_SPACES: + { + answer = "" + _degrees + " " + _minutes + " " + _seconds + "." + _fracs; + break; + } + case FORMAT_CARDINAL: + { + answer = "" + PRINTABLE_CARDINALS[_cardinal]; + break; } } }