aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/cgeocoords.java54
-rw-r--r--main/src/cgeo/geocaching/geopoint/Geopoint.java325
-rw-r--r--main/src/cgeo/geocaching/geopoint/GeopointFormatter.java21
-rw-r--r--main/src/cgeo/geocaching/geopoint/direction/DDD.java47
-rw-r--r--main/src/cgeo/geocaching/geopoint/direction/DMM.java56
-rw-r--r--main/src/cgeo/geocaching/geopoint/direction/DMS.java62
-rw-r--r--main/src/cgeo/geocaching/geopoint/direction/Direction.java29
-rw-r--r--tests/src/cgeo/geocaching/geopoint/GeopointTest.java146
8 files changed, 364 insertions, 376 deletions
diff --git a/main/src/cgeo/geocaching/cgeocoords.java b/main/src/cgeo/geocaching/cgeocoords.java
index f54d97d..1cf9630 100644
--- a/main/src/cgeo/geocaching/cgeocoords.java
+++ b/main/src/cgeo/geocaching/cgeocoords.java
@@ -6,10 +6,6 @@ import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.compatibility.Compatibility;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.geopoint.GeopointFormatter;
-import cgeo.geocaching.geopoint.direction.DDD;
-import cgeo.geocaching.geopoint.direction.DMM;
-import cgeo.geocaching.geopoint.direction.DMS;
-import cgeo.geocaching.geopoint.direction.Direction;
import org.apache.commons.lang3.StringUtils;
@@ -150,9 +146,8 @@ public class cgeocoords extends Dialog {
return;
}
- Direction dir = gp.asDirection();
- bLat.setText(String.valueOf(dir.latDir));
- bLon.setText(String.valueOf(dir.lonDir));
+ bLat.setText(String.valueOf(gp.getLatDir()));
+ bLon.setText(String.valueOf(gp.getLonDir()));
switch (currentFormat) {
case Plain:
@@ -178,11 +173,10 @@ public class cgeocoords extends Dialog {
tLatSep2.setText("°");
tLonSep2.setText("°");
- DDD ddd = gp.asDDD();
- eLatDeg.setText(addZeros(ddd.latDeg, 2));
- eLatMin.setText(addZeros(ddd.latDegFrac, 5));
- eLonDeg.setText(addZeros(ddd.lonDeg, 3));
- eLonMin.setText(addZeros(ddd.lonDegFrac, 5));
+ eLatDeg.setText(addZeros(gp.getLatDeg(), 2));
+ eLatMin.setText(addZeros(gp.getLatDegFrac(), 5));
+ eLonDeg.setText(addZeros(gp.getLonDeg(), 3));
+ eLonMin.setText(addZeros(gp.getLonDegFrac(), 5));
break;
case Min: // DDD° MM.MMM
findViewById(R.id.coordTable).setVisibility(View.VISIBLE);
@@ -202,13 +196,12 @@ public class cgeocoords extends Dialog {
tLatSep3.setText("'");
tLonSep3.setText("'");
- DMM dmm = gp.asDMM();
- eLatDeg.setText(addZeros(dmm.latDeg, 2));
- eLatMin.setText(addZeros(dmm.latMin, 2));
- eLatSec.setText(addZeros(dmm.latMinFrac, 3));
- eLonDeg.setText(addZeros(dmm.lonDeg, 3));
- eLonMin.setText(addZeros(dmm.lonMin, 2));
- eLonSec.setText(addZeros(dmm.lonMinFrac, 3));
+ eLatDeg.setText(addZeros(gp.getLatDeg(), 2));
+ eLatMin.setText(addZeros(gp.getLatMin(), 2));
+ eLatSec.setText(addZeros(gp.getLatMinFrac(), 3));
+ eLonDeg.setText(addZeros(gp.getLonDeg(), 3));
+ eLonMin.setText(addZeros(gp.getLonMin(), 2));
+ eLonSec.setText(addZeros(gp.getLonMinFrac(), 3));
break;
case Sec: // DDD° MM SS.SSS
findViewById(R.id.coordTable).setVisibility(View.VISIBLE);
@@ -228,15 +221,14 @@ public class cgeocoords extends Dialog {
tLatSep3.setText(".");
tLonSep3.setText(".");
- DMS dms = gp.asDMS();
- eLatDeg.setText(addZeros(dms.latDeg, 2));
- eLatMin.setText(addZeros(dms.latMin, 2));
- eLatSec.setText(addZeros(dms.latSec, 2));
- eLatSub.setText(addZeros(dms.latSecFrac, 3));
- eLonDeg.setText(addZeros(dms.lonDeg, 3));
- eLonMin.setText(addZeros(dms.lonMin, 2));
- eLonSec.setText(addZeros(dms.lonSec, 2));
- eLonSub.setText(addZeros(dms.lonSecFrac, 3));
+ eLatDeg.setText(addZeros(gp.getLatDeg(), 2));
+ eLatMin.setText(addZeros(gp.getLatMin(), 2));
+ eLatSec.setText(addZeros(gp.getLatSec(), 2));
+ eLatSub.setText(addZeros(gp.getLatSecFrac(), 3));
+ eLonDeg.setText(addZeros(gp.getLonDeg(), 3));
+ eLonMin.setText(addZeros(gp.getLonMin(), 2));
+ eLonSec.setText(addZeros(gp.getLonSec(), 2));
+ eLonSub.setText(addZeros(gp.getLonSecFrac(), 3));
break;
}
}
@@ -376,13 +368,13 @@ public class cgeocoords extends Dialog {
switch (currentFormat) {
case Deg:
- gp = DDD.createGeopoint(latDir, latDeg, latDegFrac, lonDir, lonDeg, lonDegFrac);
+ gp = new Geopoint(latDir, latDeg, latDegFrac, lonDir, lonDeg, lonDegFrac);
break;
case Min:
- gp = DMM.createGeopoint(latDir, latDeg, latMin, latMinFrac, lonDir, lonDeg, lonMin, lonMinFrac);
+ gp = new Geopoint(latDir, latDeg, latMin, latMinFrac, lonDir, lonDeg, lonMin, lonMinFrac);
break;
case Sec:
- gp = DMS.createGeopoint(latDir, latDeg, latMin, latSec, latSecFrac, lonDir, lonDeg, lonMin, lonSec, lonSecFrac);
+ gp = new Geopoint(latDir, latDeg, latMin, latSec, latSecFrac, lonDir, lonDeg, lonMin, lonSec, lonSecFrac);
break;
case Plain:
// This case has been handled above
diff --git a/main/src/cgeo/geocaching/geopoint/Geopoint.java b/main/src/cgeo/geocaching/geopoint/Geopoint.java
index faec82e..612b6ad 100644
--- a/main/src/cgeo/geocaching/geopoint/Geopoint.java
+++ b/main/src/cgeo/geocaching/geopoint/Geopoint.java
@@ -3,10 +3,6 @@ package cgeo.geocaching.geopoint;
import cgeo.geocaching.ICoordinates;
import cgeo.geocaching.R;
import cgeo.geocaching.geopoint.GeopointFormatter.Format;
-import cgeo.geocaching.geopoint.direction.DDD;
-import cgeo.geocaching.geopoint.direction.DMM;
-import cgeo.geocaching.geopoint.direction.DMS;
-import cgeo.geocaching.geopoint.direction.Direction;
import cgeo.geocaching.network.Network;
import cgeo.geocaching.network.Parameters;
import cgeo.geocaching.utils.Log;
@@ -30,11 +26,6 @@ public final class Geopoint implements ICoordinates, Parcelable {
private final double latitude;
private final double longitude;
- private Direction direction;
- private DDD ddd;
- private DMM dmm;
- private DMS dms;
-
/**
* Creates new Geopoint with given latitude and longitude (both degree).
*
@@ -101,6 +92,66 @@ public final class Geopoint implements ICoordinates, Parcelable {
}
/**
+ * Create new Geopoint from individual textual components.
+ *
+ * @param latDir
+ * @param latDeg
+ * @param latDegFrac
+ * @param lonDir
+ * @param lonDeg
+ * @param lonDegFrac
+ */
+ public Geopoint(final String latDir, final String latDeg, final String latDegFrac,
+ final String lonDir, final String lonDeg, final String lonDegFrac) {
+ latitude = Double.parseDouble(latDeg + "." + addZeros(Integer.parseInt(latDegFrac), 5)) *
+ getLatSign(latDir);
+ longitude = Double.parseDouble(lonDeg + "." + addZeros(Integer.parseInt(lonDegFrac), 5)) *
+ getLonSign(lonDir);
+ }
+
+ /**
+ * Create new Geopoint from individual textual components.
+ *
+ * @param latDir
+ * @param latDeg
+ * @param latMin
+ * @param latMinFrac
+ * @param lonDir
+ * @param lonDeg
+ * @param lonMin
+ * @param lonMinFrac
+ */
+ public Geopoint(final String latDir, final String latDeg, final String latMin, final String latMinFrac,
+ final String lonDir, final String lonDeg, final String lonMin, final String lonMinFrac) {
+ latitude = (Double.parseDouble(latDeg) + Double.parseDouble(latMin + "." + addZeros(Integer.parseInt(latMinFrac), 3)) / 60) *
+ (getLatSign(latDir));
+ longitude = (Double.parseDouble(lonDeg) + Double.parseDouble(lonMin + "." + addZeros(Integer.parseInt(lonMinFrac), 3)) / 60) *
+ (getLonSign(lonDir));
+ }
+
+ /**
+ * Create new Geopoint from individual textual components.
+ *
+ * @param latDir
+ * @param latDeg
+ * @param latMin
+ * @param latSec
+ * @param latSecFrac
+ * @param lonDir
+ * @param lonDeg
+ * @param lonMin
+ * @param lonSec
+ * @param lonSecFrac
+ */
+ public Geopoint(final String latDir, final String latDeg, final String latMin, final String latSec, final String latSecFrac,
+ final String lonDir, final String lonDeg, final String lonMin, final String lonSec, final String lonSecFrac) {
+ latitude = (Double.parseDouble(latDeg) + Double.parseDouble(latMin) / 60 + Double.parseDouble(latSec + "." + addZeros(Integer.parseInt(latSecFrac), 3)) / 3600) *
+ (getLatSign(latDir));
+ longitude = (Double.parseDouble(lonDeg) + Double.parseDouble(lonMin) / 60 + Double.parseDouble(lonSec + "." + addZeros(Integer.parseInt(lonSecFrac), 3)) / 3600) *
+ (getLonSign(lonDir));
+ }
+
+ /**
* Get latitude in degree.
*
* @return latitude
@@ -259,54 +310,6 @@ public final class Geopoint implements ICoordinates, Parcelable {
return format(GeopointFormatter.Format.LAT_LON_DECMINUTE);
}
- /**
- * Converts this geopoint to value type Direction.
- *
- * @return Direction
- */
- public Direction asDirection() {
- if (direction == null) { // because geopoint is immutable we can "cache" the result
- direction = new Direction(latitude, longitude);
- }
- return direction;
- }
-
- /**
- * Converts this geopoint to value type DDD.
- *
- * @return
- */
- public DDD asDDD() {
- if (ddd == null) {
- ddd = new DDD(latitude, longitude);
- }
- return ddd;
- }
-
- /**
- * Converts this geopoint to value type DMM.
- *
- * @return
- */
- public DMM asDMM() {
- if (dmm == null) {
- dmm = new DMM(latitude, longitude);
- }
- return dmm;
- }
-
- /**
- * Converts this geopoint to value type DMS.
- *
- * @return
- */
- public DMS asDMS() {
- if (dms == null) {
- dms = new DMS(latitude, longitude);
- }
- return dms;
- }
-
abstract public static class GeopointException
extends RuntimeException
{
@@ -387,4 +390,212 @@ public final class Geopoint implements ICoordinates, Parcelable {
}
};
+ /**
+ * Get latitude character (N or S).
+ *
+ * @return
+ */
+ public char getLatDir() {
+ return latitude >= 0 ? 'N' : 'S';
+ }
+
+ /**
+ * Get longitude chararcter (E or W).
+ *
+ * @return
+ */
+ public char getLonDir() {
+ return longitude >= 0 ? 'E' : 'W';
+ }
+
+ /**
+ * Get the integral non-negative latitude degrees.
+ *
+ * @return
+ */
+ public int getLatDeg() {
+ return getDeg(latitude);
+ }
+
+ /**
+ * Get the integral non-negative longitude degrees.
+ *
+ * @return
+ */
+ public int getLonDeg() {
+ return getDeg(longitude);
+ }
+
+ private static int getDeg(final double deg) {
+ return (int) Math.abs(deg);
+ }
+
+ /**
+ * Get the fractional part of the latitude degrees scaled up by 10^5.
+ *
+ * @return
+ */
+ public int getLatDegFrac() {
+ return getDegFrac(latitude);
+ }
+
+ /**
+ * Get the fractional part of the longitude degrees scaled up by 10^5.
+ *
+ * @return
+ */
+ public int getLonDegFrac() {
+ return getDegFrac(longitude);
+ }
+
+ private static int getDegFrac(final double deg) {
+ return (int) (Math.round(Math.abs(deg) * 100000) % 100000);
+ }
+
+ /**
+ * Get the integral latitude minutes.
+ *
+ * @return
+ */
+ public int getLatMin() {
+ return getMin(latitude);
+ }
+
+ /**
+ * Get the integral longitude minutes.
+ *
+ * @return
+ */
+ public int getLonMin() {
+ return getMin(longitude);
+ }
+
+ private static int getMin(final double deg) {
+ return ((int) Math.abs(deg * 60)) % 60;
+ }
+
+ /**
+ * Get the fractional part of the latitude minutes scaled up by 1000.
+ *
+ * @return
+ */
+ public int getLatMinFrac() {
+ return getMinFrac(latitude);
+ }
+
+ /**
+ * Get the fractional part of the longitude minutes scaled up by 1000.
+ *
+ * @return
+ */
+ public int getLonMinFrac() {
+ return getMinFrac(longitude);
+ }
+
+ private static int getMinFrac(final double deg) {
+ return (int) (Math.round(Math.abs(deg) * 60000) % 1000);
+ }
+
+ /**
+ * Get the latitude minutes.
+ *
+ * @return
+ */
+ public double getLatMinRaw() {
+ return getMinRaw(latitude);
+ }
+
+ /**
+ * Get the longitude minutes.
+ *
+ * @return
+ */
+ public double getLonMinRaw() {
+ return getMinRaw(longitude);
+ }
+
+ private static double getMinRaw(final double deg) {
+ return (Math.abs(deg) * 60) % 60;
+ }
+
+ /**
+ * Get the integral part of the latitude seconds.
+ *
+ * @return
+ */
+ public int getLatSec() {
+ return getSec(latitude);
+ }
+
+ /**
+ * Get the integral part of the longitude seconds.
+ *
+ * @return
+ */
+ public int getLonSec() {
+ return getSec(longitude);
+ }
+
+ private static int getSec(final double deg) {
+ return ((int) Math.abs(deg * 3600)) % 60;
+ }
+
+ /**
+ * Get the fractional part of the latitude seconds scaled up by 1000.
+ *
+ * @return
+ */
+
+ public int getLatSecFrac() {
+ return getSecFrac(latitude);
+ }
+
+ /**
+ * Get the fractional part of the longitude seconds scaled up by 1000.
+ *
+ * @return
+ */
+
+ public int getLonSecFrac() {
+ return getSecFrac(longitude);
+ }
+
+ private static int getSecFrac(final double deg) {
+ return (int) (Math.round(Math.abs(deg) * 3600000) % 1000);
+ }
+
+ /**
+ * Get the latitude seconds.
+ *
+ * @return
+ */
+ public double getLatSecRaw() {
+ return getSecRaw(latitude);
+ }
+
+ /**
+ * Get the longitude seconds.
+ *
+ * @return
+ */
+ public double getLonSecRaw() {
+ return getSecRaw(longitude);
+ }
+
+ private static double getSecRaw(final double deg) {
+ return (Math.abs(deg) * 3600) % 3600;
+ }
+
+ private static String addZeros(final int value, final int len) {
+ return StringUtils.leftPad(Integer.toString(value), len, '0');
+ }
+
+ private static int getLonSign(final String lonDir) {
+ return "W".equalsIgnoreCase(lonDir) ? -1 : 1;
+ }
+
+ private static int getLatSign(final String latDir) {
+ return "S".equalsIgnoreCase(latDir) ? -1 : 1;
+ }
+
}
diff --git a/main/src/cgeo/geocaching/geopoint/GeopointFormatter.java b/main/src/cgeo/geocaching/geopoint/GeopointFormatter.java
index 43f83a3..0b3df05 100644
--- a/main/src/cgeo/geocaching/geopoint/GeopointFormatter.java
+++ b/main/src/cgeo/geocaching/geopoint/GeopointFormatter.java
@@ -1,8 +1,5 @@
package cgeo.geocaching.geopoint;
-import cgeo.geocaching.geopoint.direction.DMM;
-import cgeo.geocaching.geopoint.direction.DMS;
-
import java.util.Locale;
/**
@@ -62,9 +59,6 @@ public class GeopointFormatter
final double latSigned = gp.getLatitude();
final double lonSigned = gp.getLongitude();
- DMM dmm = gp.asDMM();
- DMS dms = gp.asDMS();
-
switch (format) {
case LAT_LON_DECDEGREE:
return String.format("%.6f %.6f", latSigned, lonSigned);
@@ -74,33 +68,34 @@ public class GeopointFormatter
case LAT_LON_DECMINUTE:
return String.format("%c %02d° %06.3f · %c %03d° %06.3f",
- dmm.latDir, dmm.latDeg, dmm.latMinRaw, dmm.lonDir, dmm.lonDeg, dmm.lonMinRaw);
+ gp.getLatDir(), gp.getLatDeg(), gp.getLatMinRaw(), gp.getLonDir(), gp.getLonDeg(), gp.getLonMinRaw());
case LAT_LON_DECMINUTE_RAW:
return String.format((Locale) null, "%c %02d° %06.3f %c %03d° %06.3f",
- dmm.latDir, dmm.latDeg, dmm.latMinRaw, dmm.lonDir, dmm.lonDeg, dmm.lonMinRaw);
+ gp.getLatDir(), gp.getLatDeg(), gp.getLatMinRaw(), gp.getLonDir(), gp.getLonDeg(), gp.getLonMinRaw());
case LAT_LON_DECSECOND:
return String.format("%c %02d° %02d' %06.3f\" · %c %03d° %02d' %06.3f\"",
- dms.latDir, dms.latDeg, dms.latMin, dms.latSecRaw, dms.lonDir, dms.lonDeg, dms.lonMin, dms.lonSecRaw);
+ gp.getLatDir(), gp.getLatDeg(), gp.getLatMin(), gp.getLatSecRaw(),
+ gp.getLonDir(), gp.getLonDeg(), gp.getLonMin(), gp.getLonSecRaw());
case LAT_DECDEGREE_RAW:
return String.format((Locale) null, "%.6f", latSigned);
case LAT_DECMINUTE:
- return String.format("%c %02d° %06.3f", dmm.latDir, dmm.latDeg, dmm.latMinRaw);
+ return String.format("%c %02d° %06.3f", gp.getLatDir(), gp.getLatDeg(), gp.getLatMinRaw());
case LAT_DECMINUTE_RAW:
- return String.format("%c %02d %06.3f", dmm.latDir, dmm.latDeg, dmm.latMinRaw);
+ return String.format("%c %02d %06.3f", gp.getLatDir(), gp.getLatDeg(), gp.getLatMinRaw());
case LON_DECDEGREE_RAW:
return String.format((Locale) null, "%.6f", lonSigned);
case LON_DECMINUTE:
- return String.format("%c %03d° %06.3f", dmm.lonDir, dmm.lonDeg, dmm.lonMinRaw);
+ return String.format("%c %03d° %06.3f", gp.getLonDir(), gp.getLonDeg(), gp.getLonMinRaw());
case LON_DECMINUTE_RAW:
- return String.format("%c %03d %06.3f", dmm.lonDir, dmm.lonDeg, dmm.lonMinRaw);
+ return String.format("%c %03d %06.3f", gp.getLonDir(), gp.getLonDeg(), gp.getLonMinRaw());
}
// Keep the compiler happy even though it cannot happen
diff --git a/main/src/cgeo/geocaching/geopoint/direction/DDD.java b/main/src/cgeo/geocaching/geopoint/direction/DDD.java
deleted file mode 100644
index 939d6ca..0000000
--- a/main/src/cgeo/geocaching/geopoint/direction/DDD.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package cgeo.geocaching.geopoint.direction;
-
-import cgeo.geocaching.geopoint.Geopoint;
-
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-
-/**
- * Value type for the DDD.DDDDD format.
- */
-public final class DDD extends Direction {
-
- /** latitude degree value */
- public final int latDeg;
- /** fractional part of the latitude degree value */
- public final int latDegFrac;
-
- public final int lonDeg;
- public final int lonDegFrac;
-
- public DDD(final double latSigned, final double lonSigned) {
- super(latSigned, lonSigned);
- BigDecimal bdLat = BigDecimal.valueOf(latSigned).abs();
- latDeg = bdLat.intValue();
- BigDecimal bdLatFrac = bdLat.subtract(BigDecimal.valueOf(latDeg)).multiply(BD_ONEHOUNDREDTHOUSAND);
- latDegFrac = bdLatFrac.setScale(0, RoundingMode.HALF_UP).intValue();
-
- BigDecimal bdlon = BigDecimal.valueOf(lonSigned).abs();
- lonDeg = bdlon.intValue();
- BigDecimal bdLonFrac = bdlon.subtract(BigDecimal.valueOf(lonDeg)).multiply(BD_ONEHOUNDREDTHOUSAND);
- lonDegFrac = bdLonFrac.setScale(0, RoundingMode.HALF_UP).intValue();
- }
-
- public static Geopoint createGeopoint(final String latDir, final String latDeg, final String latDegFrac,
- final String lonDir, final String lonDeg, final String lonDegFrac) {
- double lat = 0.0d;
- double lon = 0.0d;
- try {
- lat = Double.parseDouble(latDeg + "." + addZeros(Integer.parseInt(latDegFrac), 5));
- lon = Double.parseDouble(lonDeg + "." + addZeros(Integer.parseInt(lonDegFrac), 5));
- } catch (NumberFormatException e) {
- }
- lat *= "S".equalsIgnoreCase(latDir) ? -1 : 1;
- lon *= "W".equalsIgnoreCase(lonDir) ? -1 : 1;
- return new Geopoint(lat, lon);
- }
-} \ No newline at end of file
diff --git a/main/src/cgeo/geocaching/geopoint/direction/DMM.java b/main/src/cgeo/geocaching/geopoint/direction/DMM.java
deleted file mode 100644
index 7426f28..0000000
--- a/main/src/cgeo/geocaching/geopoint/direction/DMM.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package cgeo.geocaching.geopoint.direction;
-
-import cgeo.geocaching.geopoint.Geopoint;
-
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-
-public final class DMM extends Direction {
-
- public final int latDeg;
- public final double latMinRaw;
- public final int latMin;
- public final int latMinFrac;
-
- public final int lonDeg;
- public final double lonMinRaw;
- public final int lonMin;
- public final int lonMinFrac;
-
- public DMM(final double latSigned, final double lonSigned) {
- super(latSigned, lonSigned);
- BigDecimal bdLat = BigDecimal.valueOf(latSigned).abs();
- latDeg = bdLat.intValue();
- BigDecimal bdLatMin = bdLat.subtract(BigDecimal.valueOf(latDeg)).multiply(BD_SIXTY);
- // Rounding here ...
- bdLatMin = bdLatMin.setScale(3, RoundingMode.HALF_UP);
- latMinRaw = bdLatMin.doubleValue();
- latMin = bdLatMin.intValue();
- BigDecimal bdLatMinFrac = bdLatMin.subtract(BigDecimal.valueOf(latMin)).multiply(BD_THOUSAND);
- latMinFrac = bdLatMinFrac.setScale(0, RoundingMode.HALF_UP).intValue();
-
- BigDecimal bdlon = BigDecimal.valueOf(lonSigned).abs();
- lonDeg = bdlon.intValue();
- BigDecimal bdLonMin = bdlon.subtract(BigDecimal.valueOf(lonDeg)).multiply(BD_SIXTY);
- // Rounding here ...
- bdLonMin = bdLonMin.setScale(3, RoundingMode.HALF_UP);
- lonMinRaw = bdLonMin.doubleValue();
- lonMin = bdLonMin.intValue();
- BigDecimal bdLonMinFrac = bdLonMin.subtract(BigDecimal.valueOf(lonMin)).multiply(BD_THOUSAND);
- lonMinFrac = bdLonMinFrac.setScale(0, RoundingMode.HALF_UP).intValue();
- }
-
- public static Geopoint createGeopoint(final String latDir, final String latDeg, final String latMin, final String latMinFrac,
- final String lonDir, final String lonDeg, final String lonMin, final String lonMinFrac) {
- double lat = 0.0d;
- double lon = 0.0d;
- try {
- lat = Double.parseDouble(latDeg) + Double.parseDouble(latMin + "." + addZeros(Integer.parseInt(latMinFrac), 3)) / D60;
- lon = Double.parseDouble(lonDeg) + Double.parseDouble(lonMin + "." + addZeros(Integer.parseInt(lonMinFrac), 3)) / D60;
- } catch (NumberFormatException e) {
- }
- lat *= "S".equalsIgnoreCase(latDir) ? -1 : 1;
- lon *= "W".equalsIgnoreCase(lonDir) ? -1 : 1;
- return new Geopoint(lat, lon);
- }
-} \ No newline at end of file
diff --git a/main/src/cgeo/geocaching/geopoint/direction/DMS.java b/main/src/cgeo/geocaching/geopoint/direction/DMS.java
deleted file mode 100644
index 34a9a3d..0000000
--- a/main/src/cgeo/geocaching/geopoint/direction/DMS.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package cgeo.geocaching.geopoint.direction;
-
-import cgeo.geocaching.geopoint.Geopoint;
-
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-
-public final class DMS extends Direction {
-
- public final int latDeg;
- public final int latMin;
- public final double latSecRaw;
- public final int latSec;
- public final int latSecFrac;
-
- public final int lonDeg;
- public final int lonMin;
- public final double lonSecRaw;
- public final int lonSec;
- public final int lonSecFrac;
-
- public DMS(final double latSigned, final double lonSigned) {
- super(latSigned, lonSigned);
- BigDecimal bdLat = BigDecimal.valueOf(latSigned).abs();
- latDeg = bdLat.intValue();
- BigDecimal bdLatMin = bdLat.subtract(BigDecimal.valueOf(latDeg)).multiply(BD_SIXTY);
- latMin = bdLatMin.intValue();
- BigDecimal bdLatSec = bdLatMin.subtract(BigDecimal.valueOf(latMin)).multiply(BD_SIXTY);
- // Rounding here ...
- bdLatSec = bdLatSec.setScale(3, RoundingMode.HALF_UP);
- latSecRaw = bdLatSec.doubleValue();
- latSec = bdLatSec.intValue();
- BigDecimal bdLatSecFrac = bdLatSec.subtract(BigDecimal.valueOf(latSec)).multiply(BD_THOUSAND);
- latSecFrac = bdLatSecFrac.setScale(0, RoundingMode.HALF_UP).intValue();
-
- BigDecimal bdlon = BigDecimal.valueOf(lonSigned).abs();
- lonDeg = bdlon.intValue();
- BigDecimal bdLonMin = bdlon.subtract(BigDecimal.valueOf(lonDeg)).multiply(BD_SIXTY);
- lonMin = bdLonMin.intValue();
- BigDecimal bdLonSec = bdLonMin.subtract(BigDecimal.valueOf(lonMin)).multiply(BD_SIXTY);
- // Rounding here ...
- bdLonSec = bdLonSec.setScale(3, RoundingMode.HALF_UP);
- lonSecRaw = bdLonSec.doubleValue();
- lonSec = bdLonSec.intValue();
- BigDecimal bdLonSecFrac = bdLonSec.subtract(BigDecimal.valueOf(lonSec)).multiply(BD_THOUSAND);
- lonSecFrac = bdLonSecFrac.setScale(0, RoundingMode.HALF_UP).intValue();
- }
-
- public static Geopoint createGeopoint(final String latDir, final String latDeg, final String latMin, final String latSec, final String latSecFrac,
- final String lonDir, final String lonDeg, final String lonMin, final String lonSec, final String lonSecFrac) {
- double lat = 0.0d;
- double lon = 0.0d;
- try {
- lat = Double.parseDouble(latDeg) + Double.parseDouble(latMin) / D60 + Double.parseDouble(latSec + "." + addZeros(Integer.parseInt(latSecFrac), 3)) / D3600;
- lon = Double.parseDouble(lonDeg) + Double.parseDouble(lonMin) / D60 + Double.parseDouble(lonSec + "." + addZeros(Integer.parseInt(lonSecFrac), 3)) / D3600;
- } catch (NumberFormatException e) {
- }
- lat *= "S".equalsIgnoreCase(latDir) ? -1 : 1;
- lon *= "W".equalsIgnoreCase(lonDir) ? -1 : 1;
- return new Geopoint(lat, lon);
- }
-} \ No newline at end of file
diff --git a/main/src/cgeo/geocaching/geopoint/direction/Direction.java b/main/src/cgeo/geocaching/geopoint/direction/Direction.java
deleted file mode 100644
index ad91516..0000000
--- a/main/src/cgeo/geocaching/geopoint/direction/Direction.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cgeo.geocaching.geopoint.direction;
-
-import org.apache.commons.lang3.StringUtils;
-
-import java.math.BigDecimal;
-
-public class Direction {
- /* Constant values needed for calculation */
- static final double D60 = 60.0d;
- private static final double D1000 = 1000.0d;
- static final double D3600 = 3600.0d;
- static final BigDecimal BD_SIXTY = BigDecimal.valueOf(D60);
- static final BigDecimal BD_THOUSAND = BigDecimal.valueOf(D1000);
- static final BigDecimal BD_ONEHOUNDREDTHOUSAND = BigDecimal.valueOf(100000.0d);
-
- /** latitude direction, 'N' or 'S' */
- public final char latDir;
- /** longitude direction, 'E' or 'W' */
- public final char lonDir;
-
- public Direction(final double latSigned, final double lonSigned) {
- latDir = latSigned < 0 ? 'S' : 'N';
- lonDir = lonSigned < 0 ? 'W' : 'E';
- }
-
- protected static String addZeros(final int value, final int len) {
- return StringUtils.leftPad(Integer.toString(value), len, '0');
- }
-} \ No newline at end of file
diff --git a/tests/src/cgeo/geocaching/geopoint/GeopointTest.java b/tests/src/cgeo/geocaching/geopoint/GeopointTest.java
index 76a9496..93b1339 100644
--- a/tests/src/cgeo/geocaching/geopoint/GeopointTest.java
+++ b/tests/src/cgeo/geocaching/geopoint/GeopointTest.java
@@ -1,14 +1,10 @@
package cgeo.geocaching.geopoint;
-import cgeo.geocaching.geopoint.direction.DDD;
-import cgeo.geocaching.geopoint.direction.DMM;
-import cgeo.geocaching.geopoint.direction.DMS;
+import junit.framework.Assert;
import android.os.Bundle;
import android.test.AndroidTestCase;
-import junit.framework.Assert;
-
public class GeopointTest extends AndroidTestCase {
public static void testCreation() {
@@ -73,56 +69,52 @@ public class GeopointTest extends AndroidTestCase {
public static void testDDD() {
// case 1
final Geopoint gp1 = new Geopoint(51.3d, 13.8d);
- DDD ddd1 = gp1.asDDD();
- checkDDD(ddd1, 'N', 51, 30000, 'E', 13, 80000);
+ checkDDD(gp1, 'N', 51, 30000, 'E', 13, 80000);
- Geopoint gp1a = DDD.createGeopoint(String.valueOf(ddd1.latDir), String.valueOf(ddd1.latDeg), String.valueOf(ddd1.latDegFrac),
- String.valueOf(ddd1.lonDir), String.valueOf(ddd1.lonDeg), String.valueOf(ddd1.lonDegFrac));
+ Geopoint gp1a = new Geopoint(String.valueOf(gp1.getLatDir()), String.valueOf(gp1.getLatDeg()), String.valueOf(gp1.getLatDegFrac()),
+ String.valueOf(gp1.getLonDir()), String.valueOf(gp1.getLonDeg()), String.valueOf(gp1.getLonDegFrac()));
Assert.assertTrue(gp1a.equals(gp1));
// case 2
final Geopoint gp2 = new Geopoint(51.34567d, 13.87654d);
- DDD ddd2 = gp2.asDDD();
- checkDDD(ddd2, 'N', 51, 34567, 'E', 13, 87654);
+ checkDDD(gp2, 'N', 51, 34567, 'E', 13, 87654);
- Geopoint gp2a = DDD.createGeopoint(String.valueOf(ddd2.latDir), String.valueOf(ddd2.latDeg), String.valueOf(ddd2.latDegFrac),
- String.valueOf(ddd2.lonDir), String.valueOf(ddd2.lonDeg), String.valueOf(ddd2.lonDegFrac));
+ Geopoint gp2a = new Geopoint(String.valueOf(gp2.getLatDir()), String.valueOf(gp2.getLatDeg()), String.valueOf(gp2.getLatDegFrac()),
+ String.valueOf(gp2.getLonDir()), String.valueOf(gp2.getLonDeg()), String.valueOf(gp2.getLonDegFrac()));
Assert.assertTrue(gp2a.equals(gp2));
// case 3
final Geopoint gp3 = new Geopoint(51.29999833333333d, 13.8d);
- DDD ddd3 = gp3.asDDD();
- checkDDD(ddd3, 'N', 51, 30000, 'E', 13, 80000);
+ checkDDD(gp3, 'N', 51, 30000, 'E', 13, 80000);
- Geopoint gp3a = DDD.createGeopoint(String.valueOf(ddd3.latDir), String.valueOf(ddd3.latDeg), String.valueOf(ddd3.latDegFrac),
- String.valueOf(ddd3.lonDir), String.valueOf(ddd3.lonDeg), String.valueOf(ddd3.lonDegFrac));
+ Geopoint gp3a = new Geopoint(String.valueOf(gp3.getLatDir()), String.valueOf(gp3.getLatDeg()), String.valueOf(gp3.getLatDegFrac()),
+ String.valueOf(gp3.getLonDir()), String.valueOf(gp3.getLonDeg()), String.valueOf(gp3.getLonDegFrac()));
checkTolerance(gp3, gp3a, 5e-5);
// case 4
final Geopoint gp4 = new Geopoint(51.00012d, 13.00089d);
- DDD ddd4 = gp4.asDDD();
- checkDDD(ddd4, 'N', 51, 12, 'E', 13, 89);
+ checkDDD(gp4, 'N', 51, 12, 'E', 13, 89);
- Geopoint gp4a = DDD.createGeopoint(String.valueOf(ddd4.latDir), String.valueOf(ddd4.latDeg), String.valueOf(ddd4.latDegFrac),
- String.valueOf(ddd4.lonDir), String.valueOf(ddd4.lonDeg), String.valueOf(ddd4.lonDegFrac));
+ Geopoint gp4a = new Geopoint(String.valueOf(gp4.getLatDir()), String.valueOf(gp4.getLatDeg()), String.valueOf(gp4.getLatDegFrac()),
+ String.valueOf(gp4.getLonDir()), String.valueOf(gp4.getLonDeg()), String.valueOf(gp4.getLonDegFrac()));
checkTolerance(gp4, gp4a, 5e-5);
}
- private static void checkDDD(DDD ddd, char latDir, int latDeg, int latDegFrac, char lonDir, int lonDeg, int lonDegFrac) {
- Assert.assertEquals(latDir, ddd.latDir);
- Assert.assertEquals(latDeg, ddd.latDeg);
- Assert.assertEquals(latDegFrac, ddd.latDegFrac);
- Assert.assertEquals(lonDir, ddd.lonDir);
- Assert.assertEquals(lonDeg, ddd.lonDeg);
- Assert.assertEquals(lonDegFrac, ddd.lonDegFrac);
+ private static void checkDDD(Geopoint gp, char latDir, int latDeg, int latDegFrac, char lonDir, int lonDeg, int lonDegFrac) {
+ Assert.assertEquals(latDir, gp.getLatDir());
+ Assert.assertEquals(latDeg, gp.getLatDeg());
+ Assert.assertEquals(latDegFrac, gp.getLatDegFrac());
+ Assert.assertEquals(lonDir, gp.getLonDir());
+ Assert.assertEquals(lonDeg, gp.getLonDeg());
+ Assert.assertEquals(lonDegFrac, gp.getLonDegFrac());
}
private static void checkTolerance(Geopoint gp1, Geopoint gp2, double tolerance) {
@@ -133,117 +125,109 @@ public class GeopointTest extends AndroidTestCase {
public static void testDMM() {
// case 1
final Geopoint gp1 = new Geopoint(51.3d, 13.8d);
- DMM dmm1 = gp1.asDMM();
- checkDMM(dmm1, 'N', 51, 18, 0, 'E', 13, 48, 0);
+ checkDMM(gp1, 'N', 51, 18, 0, 'E', 13, 48, 0);
- Geopoint gp1a = DMM.createGeopoint(String.valueOf(dmm1.latDir), String.valueOf(dmm1.latDeg), String.valueOf(dmm1.latMin), String.valueOf(dmm1.latMinFrac),
- String.valueOf(dmm1.lonDir), String.valueOf(dmm1.lonDeg), String.valueOf(dmm1.lonMin), String.valueOf(dmm1.lonMinFrac));
+ Geopoint gp1a = new Geopoint(String.valueOf(gp1.getLatDir()), String.valueOf(gp1.getLatDeg()), String.valueOf(gp1.getLatMin()), String.valueOf(gp1.getLatMinFrac()),
+ String.valueOf(gp1.getLonDir()), String.valueOf(gp1.getLonDeg()), String.valueOf(gp1.getLonMin()), String.valueOf(gp1.getLonMinFrac()));
Assert.assertTrue(gp1a.equals(gp1));
// case 2
final Geopoint gp2 = new Geopoint(51.34567d, 13.87654d);
- DMM dmm2 = gp2.asDMM();
- checkDMM(dmm2, 'N', 51, 20, 740, 'E', 13, 52, 592);
+ checkDMM(gp2, 'N', 51, 20, 740, 'E', 13, 52, 592);
- Geopoint gp2a = DMM.createGeopoint(String.valueOf(dmm2.latDir), String.valueOf(dmm2.latDeg), String.valueOf(dmm2.latMin), String.valueOf(dmm2.latMinFrac),
- String.valueOf(dmm2.lonDir), String.valueOf(dmm2.lonDeg), String.valueOf(dmm2.lonMin), String.valueOf(dmm2.lonMinFrac));
+ Geopoint gp2a = new Geopoint(String.valueOf(gp2.getLatDir()), String.valueOf(gp2.getLatDeg()), String.valueOf(gp2.getLatMin()), String.valueOf(gp2.getLatMinFrac()),
+ String.valueOf(gp2.getLonDir()), String.valueOf(gp2.getLonDeg()), String.valueOf(gp2.getLonMin()), String.valueOf(gp2.getLonMinFrac()));
checkTolerance(gp2, gp2a, 5e-5);
// case 3
- final Geopoint gp3 = new Geopoint(51.29999833333333d, 13.8d);
- DMM dmm3 = gp3.asDMM();
+ final Geopoint gp3 = new Geopoint(51.3d, 13.8d);
- checkDMM(dmm3, 'N', 51, 18, 0, 'E', 13, 48, 0);
+ checkDMM(gp3, 'N', 51, 18, 0, 'E', 13, 48, 0);
- Geopoint gp3a = DMM.createGeopoint(String.valueOf(dmm3.latDir), String.valueOf(dmm3.latDeg), String.valueOf(dmm3.latMin), String.valueOf(dmm3.latMinFrac),
- String.valueOf(dmm3.lonDir), String.valueOf(dmm3.lonDeg), String.valueOf(dmm3.lonMin), String.valueOf(dmm3.lonMinFrac));
+ Geopoint gp3a = new Geopoint(String.valueOf(gp3.getLatDir()), String.valueOf(gp3.getLatDeg()), String.valueOf(gp3.getLatMin()), String.valueOf(gp3.getLatMinFrac()),
+ String.valueOf(gp3.getLonDir()), String.valueOf(gp3.getLonDeg()), String.valueOf(gp3.getLonMin()), String.valueOf(gp3.getLonMinFrac()));
checkTolerance(gp3, gp3a, 5e-5);
// case 4
final Geopoint gp4 = new Geopoint(51.00012d, 13.00089d);
- DMM dmm4 = gp4.asDMM();
- checkDMM(dmm4, 'N', 51, 0, 7, 'E', 13, 0, 53);
+ checkDMM(gp4, 'N', 51, 0, 7, 'E', 13, 0, 53);
- Geopoint gp4a = DMM.createGeopoint(String.valueOf(dmm4.latDir), String.valueOf(dmm4.latDeg), String.valueOf(dmm4.latMin), String.valueOf(dmm4.latMinFrac),
- String.valueOf(dmm4.lonDir), String.valueOf(dmm4.lonDeg), String.valueOf(dmm4.lonMin), String.valueOf(dmm4.lonMinFrac));
+ Geopoint gp4a = new Geopoint(String.valueOf(gp4.getLatDir()), String.valueOf(gp4.getLatDeg()), String.valueOf(gp4.getLatMin()), String.valueOf(gp4.getLatMinFrac()),
+ String.valueOf(gp4.getLonDir()), String.valueOf(gp4.getLonDeg()), String.valueOf(gp4.getLonMin()), String.valueOf(gp4.getLonMinFrac()));
checkTolerance(gp4, gp4a, 5e-5);
}
- private static void checkDMM(DMM dmm, char latDir, int latDeg, int latMin, int latMinFrac, char lonDir, int lonDeg, int lonMin, int lonMinFrac) {
- Assert.assertEquals(latDir, dmm.latDir);
- Assert.assertEquals(latDeg, dmm.latDeg);
- Assert.assertEquals(latMin, dmm.latMin);
- Assert.assertEquals(latMinFrac, dmm.latMinFrac);
- Assert.assertEquals(lonDir, dmm.lonDir);
- Assert.assertEquals(lonDeg, dmm.lonDeg);
- Assert.assertEquals(lonMin, dmm.lonMin);
- Assert.assertEquals(lonMinFrac, dmm.lonMinFrac);
+ private static void checkDMM(Geopoint gp, char latDir, int latDeg, int latMin, int latMinFrac, char lonDir, int lonDeg, int lonMin, int lonMinFrac) {
+ Assert.assertEquals(latDir, gp.getLatDir());
+ Assert.assertEquals(latDeg, gp.getLatDeg());
+ Assert.assertEquals(latMin, gp.getLatMin());
+ Assert.assertEquals(latMinFrac, gp.getLatMinFrac());
+ Assert.assertEquals(lonDir, gp.getLonDir());
+ Assert.assertEquals(lonDeg, gp.getLonDeg());
+ Assert.assertEquals(lonMin, gp.getLonMin());
+ Assert.assertEquals(lonMinFrac, gp.getLonMinFrac());
}
public static void testDMS() {
// case 1
final Geopoint gp1 = new Geopoint(51.3d, 13.8d);
- DMS dms1 = gp1.asDMS();
- checkDMS(dms1, 'N', 51, 18, 0, 0, 'E', 13, 48, 0, 0);
+ checkDMS(gp1, 'N', 51, 18, 0, 0, 'E', 13, 48, 0, 0);
- Geopoint gp1a = DMS.createGeopoint(String.valueOf(dms1.latDir), String.valueOf(dms1.latDeg), String.valueOf(dms1.latMin), String.valueOf(dms1.latSec), String.valueOf(dms1.latSecFrac),
- String.valueOf(dms1.lonDir), String.valueOf(dms1.lonDeg), String.valueOf(dms1.lonMin), String.valueOf(dms1.lonSec), String.valueOf(dms1.lonSecFrac));
+ Geopoint gp1a = new Geopoint(String.valueOf(gp1.getLatDir()), String.valueOf(gp1.getLatDeg()), String.valueOf(gp1.getLatMin()), String.valueOf(gp1.getLatSec()), String.valueOf(gp1.getLatSecFrac()),
+ String.valueOf(gp1.getLonDir()), String.valueOf(gp1.getLonDeg()), String.valueOf(gp1.getLonMin()), String.valueOf(gp1.getLonSec()), String.valueOf(gp1.getLonSecFrac()));
Assert.assertTrue(gp1a.equals(gp1));
// case 2
final Geopoint gp2 = new Geopoint(51.34567d, 13.87654d);
- DMS dms2 = gp2.asDMS();
- checkDMS(dms2, 'N', 51, 20, 44, 412, 'E', 13, 52, 35, 544);
+ checkDMS(gp2, 'N', 51, 20, 44, 412, 'E', 13, 52, 35, 544);
- Geopoint gp2a = DMS.createGeopoint(String.valueOf(dms2.latDir), String.valueOf(dms2.latDeg), String.valueOf(dms2.latMin), String.valueOf(dms2.latSec), String.valueOf(dms2.latSecFrac),
- String.valueOf(dms2.lonDir), String.valueOf(dms2.lonDeg), String.valueOf(dms2.lonMin), String.valueOf(dms2.lonSec), String.valueOf(dms2.lonSecFrac));
+ Geopoint gp2a = new Geopoint(String.valueOf(gp2.getLatDir()), String.valueOf(gp2.getLatDeg()), String.valueOf(gp2.getLatMin()), String.valueOf(gp2.getLatSec()), String.valueOf(gp2.getLatSecFrac()),
+ String.valueOf(gp2.getLonDir()), String.valueOf(gp2.getLonDeg()), String.valueOf(gp2.getLonMin()), String.valueOf(gp2.getLonSec()), String.valueOf(gp2.getLonSecFrac()));
checkTolerance(gp2, gp2a, 5e-6);
// case 3
final Geopoint gp3 = new Geopoint(51.29999833333333d, 13.8d);
- DMS dms3 = gp3.asDMS();
- checkDMS(dms3, 'N', 51, 17, 59, 994, 'E', 13, 48, 0, 0);
+ checkDMS(gp3, 'N', 51, 17, 59, 994, 'E', 13, 48, 0, 0);
- Geopoint gp3a = DMS.createGeopoint(String.valueOf(dms3.latDir), String.valueOf(dms3.latDeg), String.valueOf(dms3.latMin), String.valueOf(dms3.latSec), String.valueOf(dms3.latSecFrac),
- String.valueOf(dms3.lonDir), String.valueOf(dms3.lonDeg), String.valueOf(dms3.lonMin), String.valueOf(dms3.lonSec), String.valueOf(dms3.lonSecFrac));
+ Geopoint gp3a = new Geopoint(String.valueOf(gp3.getLatDir()), String.valueOf(gp3.getLatDeg()), String.valueOf(gp3.getLatMin()), String.valueOf(gp3.getLatSec()), String.valueOf(gp3.getLatSecFrac()),
+ String.valueOf(gp3.getLonDir()), String.valueOf(gp3.getLonDeg()), String.valueOf(gp3.getLonMin()), String.valueOf(gp3.getLonSec()), String.valueOf(gp3.getLonSecFrac()));
checkTolerance(gp3, gp3a, 5e-6);
// case 4
final Geopoint gp4 = new Geopoint(51.00012d, 13.00089d);
- DMS dms4 = gp4.asDMS();
- checkDMS(dms4, 'N', 51, 0, 0, 432, 'E', 13, 0, 3, 204);
+ checkDMS(gp4, 'N', 51, 0, 0, 432, 'E', 13, 0, 3, 204);
- Geopoint gp4a = DMS.createGeopoint(String.valueOf(dms4.latDir), String.valueOf(dms4.latDeg), String.valueOf(dms4.latMin), String.valueOf(dms4.latSec), String.valueOf(dms4.latSecFrac),
- String.valueOf(dms4.lonDir), String.valueOf(dms4.lonDeg), String.valueOf(dms4.lonMin), String.valueOf(dms4.lonSec), String.valueOf(dms4.lonSecFrac));
+ Geopoint gp4a = new Geopoint(String.valueOf(gp4.getLatDir()), String.valueOf(gp4.getLatDeg()), String.valueOf(gp4.getLatMin()), String.valueOf(gp4.getLatSec()), String.valueOf(gp4.getLatSecFrac()),
+ String.valueOf(gp4.getLonDir()), String.valueOf(gp4.getLonDeg()), String.valueOf(gp4.getLonMin()), String.valueOf(gp4.getLonSec()), String.valueOf(gp4.getLonSecFrac()));
checkTolerance(gp4, gp4a, 5e-6);
}
- private static void checkDMS(DMS dms, char latDir, int latDeg, int latMin, int latSec, int latSecFrac, char lonDir, int lonDeg, int lonMin, int lonSec, int lonSecFrac) {
- Assert.assertEquals(latDir, dms.latDir);
- Assert.assertEquals(latDeg, dms.latDeg);
- Assert.assertEquals(latMin, dms.latMin);
- Assert.assertEquals(latSec, dms.latSec);
- Assert.assertEquals(latSecFrac, dms.latSecFrac);
- Assert.assertEquals(lonDir, dms.lonDir);
- Assert.assertEquals(lonDeg, dms.lonDeg);
- Assert.assertEquals(lonMin, dms.lonMin);
- Assert.assertEquals(lonSec, dms.lonSec);
- Assert.assertEquals(lonSecFrac, dms.lonSecFrac);
+ private static void checkDMS(Geopoint gp, char latDir, int latDeg, int latMin, int latSec, int latSecFrac, char lonDir, int lonDeg, int lonMin, int lonSec, int lonSecFrac) {
+ Assert.assertEquals(latDir, gp.getLatDir());
+ Assert.assertEquals(latDeg, gp.getLatDeg());
+ Assert.assertEquals(latMin, gp.getLatMin());
+ Assert.assertEquals(latSec, gp.getLatSec());
+ Assert.assertEquals(latSecFrac, gp.getLatSecFrac());
+ Assert.assertEquals(lonDir, gp.getLonDir());
+ Assert.assertEquals(lonDeg, gp.getLonDeg());
+ Assert.assertEquals(lonMin, gp.getLonMin());
+ Assert.assertEquals(lonSec, gp.getLonSec());
+ Assert.assertEquals(lonSecFrac, gp.getLonSecFrac());
}
public static void testElevation() {