aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/cgeocoords.java8
-rw-r--r--main/src/cgeo/geocaching/geopoint/Geopoint.java181
-rw-r--r--main/src/cgeo/geocaching/geopoint/GeopointFormatter.java4
-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.java6
8 files changed, 207 insertions, 186 deletions
diff --git a/main/src/cgeo/geocaching/cgeocoords.java b/main/src/cgeo/geocaching/cgeocoords.java
index fdedfda..060260a 100644
--- a/main/src/cgeo/geocaching/cgeocoords.java
+++ b/main/src/cgeo/geocaching/cgeocoords.java
@@ -5,12 +5,12 @@ import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.compatibility.Compatibility;
import cgeo.geocaching.geopoint.Geopoint;
-import cgeo.geocaching.geopoint.Geopoint.DDD;
-import cgeo.geocaching.geopoint.Geopoint.DMM;
-import cgeo.geocaching.geopoint.Geopoint.DMS;
-import cgeo.geocaching.geopoint.Geopoint.Direction;
import cgeo.geocaching.geopoint.GeopointFormatter;
import cgeo.geocaching.geopoint.GeopointParser.ParseException;
+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;
diff --git a/main/src/cgeo/geocaching/geopoint/Geopoint.java b/main/src/cgeo/geocaching/geopoint/Geopoint.java
index ff97a4c..106e8a9 100644
--- a/main/src/cgeo/geocaching/geopoint/Geopoint.java
+++ b/main/src/cgeo/geocaching/geopoint/Geopoint.java
@@ -2,6 +2,10 @@ package cgeo.geocaching.geopoint;
import cgeo.geocaching.ICoordinates;
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;
@@ -14,9 +18,6 @@ import android.location.Location;
import android.os.Parcel;
import android.os.Parcelable;
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-
/**
* Abstraction of geographic point.
*/
@@ -303,180 +304,6 @@ public final class Geopoint implements ICoordinates, Parcelable {
return dms;
}
- /* Constant values needed for calculation */
- private static final double D60 = 60.0d;
- private static final double D1000 = 1000.0d;
- private static final double D3600 = 3600.0d;
- private static final BigDecimal BD_SIXTY = BigDecimal.valueOf(D60);
- private static final BigDecimal BD_THOUSAND = BigDecimal.valueOf(D1000);
- private static final BigDecimal BD_ONEHOUNDREDTHOUSAND = BigDecimal.valueOf(100000.0d);
-
- /**
- * Value type for the direction.
- */
- public static class Direction {
- /** latitude direction, 'N' or 'S' */
- public final char latDir;
- /** longitude direction, 'E' or 'W' */
- public final char lonDir;
-
- private 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');
- }
- }
-
- /**
- * Value type for the DDD.DDDDD format.
- */
- public static 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;
-
- private 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);
- }
- }
-
- public static 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;
-
- private 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);
- }
- }
-
- public static 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;
-
- private 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);
- }
- }
-
abstract public static class GeopointException
extends RuntimeException
{
diff --git a/main/src/cgeo/geocaching/geopoint/GeopointFormatter.java b/main/src/cgeo/geocaching/geopoint/GeopointFormatter.java
index d0baee9..43f83a3 100644
--- a/main/src/cgeo/geocaching/geopoint/GeopointFormatter.java
+++ b/main/src/cgeo/geocaching/geopoint/GeopointFormatter.java
@@ -1,7 +1,7 @@
package cgeo.geocaching.geopoint;
-import cgeo.geocaching.geopoint.Geopoint.DMM;
-import cgeo.geocaching.geopoint.Geopoint.DMS;
+import cgeo.geocaching.geopoint.direction.DMM;
+import cgeo.geocaching.geopoint.direction.DMS;
import java.util.Locale;
diff --git a/main/src/cgeo/geocaching/geopoint/direction/DDD.java b/main/src/cgeo/geocaching/geopoint/direction/DDD.java
new file mode 100644
index 0000000..939d6ca
--- /dev/null
+++ b/main/src/cgeo/geocaching/geopoint/direction/DDD.java
@@ -0,0 +1,47 @@
+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
new file mode 100644
index 0000000..7426f28
--- /dev/null
+++ b/main/src/cgeo/geocaching/geopoint/direction/DMM.java
@@ -0,0 +1,56 @@
+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
new file mode 100644
index 0000000..34a9a3d
--- /dev/null
+++ b/main/src/cgeo/geocaching/geopoint/direction/DMS.java
@@ -0,0 +1,62 @@
+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
new file mode 100644
index 0000000..ad91516
--- /dev/null
+++ b/main/src/cgeo/geocaching/geopoint/direction/Direction.java
@@ -0,0 +1,29 @@
+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 7990489..76a9496 100644
--- a/tests/src/cgeo/geocaching/geopoint/GeopointTest.java
+++ b/tests/src/cgeo/geocaching/geopoint/GeopointTest.java
@@ -1,8 +1,8 @@
package cgeo.geocaching.geopoint;
-import cgeo.geocaching.geopoint.Geopoint.DDD;
-import cgeo.geocaching.geopoint.Geopoint.DMM;
-import cgeo.geocaching.geopoint.Geopoint.DMS;
+import cgeo.geocaching.geopoint.direction.DDD;
+import cgeo.geocaching.geopoint.direction.DMM;
+import cgeo.geocaching.geopoint.direction.DMS;
import android.os.Bundle;
import android.test.AndroidTestCase;