aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/geopoint
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-01-13 08:15:14 +0100
committerBananeweizen <bananeweizen@gmx.de>2013-01-13 08:15:14 +0100
commit6e66c8f2da1d6893e2d9e100957a966bc3f9e69a (patch)
tree68ebc5a56b37fce66666cba53b0e724d00818733 /main/src/cgeo/geocaching/geopoint
parentf7a00e91647494e6a66d304bbee4862d0b637e3c (diff)
downloadcgeo-6e66c8f2da1d6893e2d9e100957a966bc3f9e69a.zip
cgeo-6e66c8f2da1d6893e2d9e100957a966bc3f9e69a.tar.gz
cgeo-6e66c8f2da1d6893e2d9e100957a966bc3f9e69a.tar.bz2
fix #2389: Parse errors in cgeocoords
Diffstat (limited to 'main/src/cgeo/geocaching/geopoint')
-rw-r--r--main/src/cgeo/geocaching/geopoint/Geopoint.java31
1 files changed, 12 insertions, 19 deletions
diff --git a/main/src/cgeo/geocaching/geopoint/Geopoint.java b/main/src/cgeo/geocaching/geopoint/Geopoint.java
index 7d585ac..00dec7f 100644
--- a/main/src/cgeo/geocaching/geopoint/Geopoint.java
+++ b/main/src/cgeo/geocaching/geopoint/Geopoint.java
@@ -103,10 +103,8 @@ public final class Geopoint implements ICoordinates, Parcelable {
*/
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);
+ this(getLatSign(latDir) + latDeg + "." + addZeros(latDegFrac, 5),
+ getLonSign(lonDir) + lonDeg + "." + addZeros(lonDegFrac, 5));
}
/**
@@ -123,10 +121,8 @@ public final class Geopoint implements ICoordinates, Parcelable {
*/
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));
+ this(latDir + " " + latDeg + " " + latMin + "." + addZeros(latMinFrac, 3),
+ lonDir + " " + lonDeg + " " + lonMin + "." + addZeros(lonMinFrac, 3));
}
/**
@@ -145,10 +141,8 @@ public final class Geopoint implements ICoordinates, Parcelable {
*/
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));
+ this(latDir + " " + latDeg + " " + latMin + " " + latSec + "." + addZeros(latSecFrac, 3),
+ lonDir + " " + lonDeg + " " + lonMin + " " + lonSec + "." + addZeros(lonSecFrac, 3));
}
/**
@@ -586,16 +580,15 @@ public final class Geopoint implements ICoordinates, Parcelable {
return (Math.abs(deg) * 3600) % 60;
}
- private static String addZeros(final int value, final int len) {
- return StringUtils.leftPad(Integer.toString(value), len, '0');
+ private static String addZeros(final String value, final int len) {
+ return StringUtils.leftPad(value.trim(), len, '0');
}
- private static int getLonSign(final String lonDir) {
- return "W".equalsIgnoreCase(lonDir) ? -1 : 1;
+ private static String getLonSign(final String lonDir) {
+ return "W".equalsIgnoreCase(lonDir) ? "-" : "";
}
- private static int getLatSign(final String latDir) {
- return "S".equalsIgnoreCase(latDir) ? -1 : 1;
+ private static String getLatSign(final String latDir) {
+ return "S".equalsIgnoreCase(latDir) ? "-" : "";
}
-
}