diff options
Diffstat (limited to 'main')
| -rw-r--r-- | main/src/cgeo/geocaching/Waypoint.java | 1 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/geopoint/Geopoint.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/geopoint/GeopointParser.java | 8 |
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); } |
