aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/geopoint/direction/DMS.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/geopoint/direction/DMS.java')
-rw-r--r--main/src/cgeo/geocaching/geopoint/direction/DMS.java62
1 files changed, 0 insertions, 62 deletions
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