aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/src/cgeo/geocaching/Waypoint.java1
-rw-r--r--main/src/cgeo/geocaching/geopoint/Geopoint.java4
-rw-r--r--main/src/cgeo/geocaching/geopoint/GeopointParser.java8
3 files changed, 9 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/Waypoint.java b/main/src/cgeo/geocaching/Waypoint.java
index 6626c4d..efedff5 100644
--- a/main/src/cgeo/geocaching/Waypoint.java
+++ b/main/src/cgeo/geocaching/Waypoint.java
@@ -3,7 +3,6 @@ package cgeo.geocaching;
import cgeo.geocaching.enumerations.LoadFlags;
import cgeo.geocaching.enumerations.WaypointType;
import cgeo.geocaching.geopoint.Geopoint;
-import cgeo.geocaching.utils.Log;
import cgeo.geocaching.utils.MatcherWrapper;
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 f21df01..3d69bd4 100644
--- a/main/src/cgeo/geocaching/geopoint/Geopoint.java
+++ b/main/src/cgeo/geocaching/geopoint/Geopoint.java
@@ -51,8 +51,8 @@ public final class Geopoint implements ICoordinates, Parcelable {
*/
public Geopoint(final String text) {
final Geopoint parsed = GeopointParser.parse(text);
- this.latitude = parsed.latitude;
- this.longitude = parsed.longitude;
+ latitude = parsed.latitude;
+ longitude = parsed.longitude;
}
/**
diff --git a/main/src/cgeo/geocaching/geopoint/GeopointParser.java b/main/src/cgeo/geocaching/geopoint/GeopointParser.java
index c043d6f..e59cd23 100644
--- a/main/src/cgeo/geocaching/geopoint/GeopointParser.java
+++ b/main/src/cgeo/geocaching/geopoint/GeopointParser.java
@@ -57,7 +57,6 @@ class GeopointParser {
*/
public static Geopoint parse(final String text) {
final ResultWrapper latitudeWrapper = parseHelper(text, LatLon.LAT);
- final double lat = latitudeWrapper.result;
// cut away the latitude part when parsing the longitude
final ResultWrapper longitudeWrapper = parseHelper(text.substring(latitudeWrapper.matcherPos + latitudeWrapper.matcherLength), LatLon.LON);
@@ -65,7 +64,14 @@ class GeopointParser {
throw new Geopoint.ParseException("Distance between latitude and longitude text is to large.", LatLon.LON);
}
+ final double lat = latitudeWrapper.result;
final double lon = longitudeWrapper.result;
+ if (lat > 90 || lat < -90) {
+ throw new Geopoint.ParseException(text, LatLon.LAT);
+ }
+ if (lon > 180 || lon < -180) {
+ throw new Geopoint.ParseException(text, LatLon.LON);
+ }
return new Geopoint(lat, lon);
}