diff options
Diffstat (limited to 'main/src/cgeo/geocaching/geopoint/Geopoint.java')
| -rw-r--r-- | main/src/cgeo/geocaching/geopoint/Geopoint.java | 55 |
1 files changed, 20 insertions, 35 deletions
diff --git a/main/src/cgeo/geocaching/geopoint/Geopoint.java b/main/src/cgeo/geocaching/geopoint/Geopoint.java index 00dec7f..c03a2bc 100644 --- a/main/src/cgeo/geocaching/geopoint/Geopoint.java +++ b/main/src/cgeo/geocaching/geopoint/Geopoint.java @@ -23,6 +23,8 @@ public final class Geopoint implements ICoordinates, Parcelable { public static final double rad2deg = 180 / Math.PI; public static final float erad = 6371.0f; + public static final Geopoint ZERO = new Geopoint(0.0, 0.0); + private final double latitude; private final double longitude; @@ -34,8 +36,7 @@ public final class Geopoint implements ICoordinates, Parcelable { * @param lon * longitude */ - public Geopoint(final double lat, final double lon) - { + public Geopoint(final double lat, final double lon) { latitude = lat; longitude = lon; } @@ -140,7 +141,7 @@ public final class Geopoint implements ICoordinates, Parcelable { * @param lonSecFrac */ 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) { + final String lonDir, final String lonDeg, final String lonMin, final String lonSec, final String lonSecFrac) { this(latDir + " " + latDeg + " " + latMin + " " + latSec + "." + addZeros(latSecFrac, 3), lonDir + " " + lonDeg + " " + lonMin + " " + lonSec + "." + addZeros(lonSecFrac, 3)); } @@ -150,8 +151,7 @@ public final class Geopoint implements ICoordinates, Parcelable { * * @return latitude */ - public double getLatitude() - { + public double getLatitude() { return latitude; } @@ -160,8 +160,7 @@ public final class Geopoint implements ICoordinates, Parcelable { * * @return latitude */ - public int getLatitudeE6() - { + public int getLatitudeE6() { return (int) Math.round(latitude * 1E6); } @@ -170,8 +169,7 @@ public final class Geopoint implements ICoordinates, Parcelable { * * @return longitude */ - public double getLongitude() - { + public double getLongitude() { return longitude; } @@ -180,8 +178,7 @@ public final class Geopoint implements ICoordinates, Parcelable { * * @return longitude */ - public int getLongitudeE6() - { + public int getLongitudeE6() { return (int) Math.round(longitude * 1E6); } @@ -207,8 +204,7 @@ public final class Geopoint implements ICoordinates, Parcelable { * @throws GeopointException * if there is an error in distance calculation */ - public float distanceTo(final ICoordinates point) - { + public float distanceTo(final ICoordinates point) { return pathTo(point.getCoords())[0] / 1000; } @@ -219,8 +215,7 @@ public final class Geopoint implements ICoordinates, Parcelable { * target * @return bearing in degree, in the [0,360[ range */ - public float bearingTo(final ICoordinates point) - { + public float bearingTo(final ICoordinates point) { // Android library returns a bearing in the [-180;180] range final float bearing = pathTo(point.getCoords())[1]; return bearing < 0 ? bearing + 360 : bearing; @@ -235,8 +230,7 @@ public final class Geopoint implements ICoordinates, Parcelable { * distance in km * @return the projected geopoint */ - public Geopoint project(final double bearing, final double distance) - { + public Geopoint project(final double bearing, final double distance) { final double rlat1 = latitude * deg2rad; final double rlon1 = longitude * deg2rad; final double rbearing = bearing * deg2rad; @@ -253,7 +247,7 @@ public final class Geopoint implements ICoordinates, Parcelable { if (this == obj) { return true; } - if (obj == null || !(obj instanceof Geopoint)) { + if (!(obj instanceof Geopoint)) { return false; } final Geopoint gp = (Geopoint) obj; @@ -274,8 +268,7 @@ public final class Geopoint implements ICoordinates, Parcelable { * tolerance in km * @return true if similar, false otherwise */ - public boolean isEqualTo(Geopoint gp, double tolerance) - { + public boolean isEqualTo(Geopoint gp, double tolerance) { return null != gp && distanceTo(gp) <= tolerance; } @@ -287,8 +280,7 @@ public final class Geopoint implements ICoordinates, Parcelable { * @see GeopointFormatter * @return formatted coordinates */ - public String format(GeopointFormatter.Format format) - { + public String format(GeopointFormatter.Format format) { return GeopointFormatter.format(format, this); } @@ -299,30 +291,23 @@ public final class Geopoint implements ICoordinates, Parcelable { * @return formatted coordinates */ @Override - public String toString() - { + public String toString() { return format(GeopointFormatter.Format.LAT_LON_DECMINUTE); } - abstract public static class GeopointException - extends RuntimeException - { + abstract public static class GeopointException extends NumberFormatException { private static final long serialVersionUID = 1L; - public GeopointException(String msg) - { + protected GeopointException(String msg) { super(msg); } } - public static class ParseException - extends GeopointException - { + public static class ParseException extends GeopointException { private static final long serialVersionUID = 1L; public final int resource; - public ParseException(final String msg, final GeopointParser.LatLon faulty) - { + public ParseException(final String msg, final GeopointParser.LatLon faulty) { super(msg); resource = faulty == GeopointParser.LatLon.LAT ? R.string.err_parse_lat : R.string.err_parse_lon; } @@ -350,7 +335,7 @@ public final class Geopoint implements ICoordinates, Parcelable { return result.getDouble("elevation"); } } catch (Exception e) { - Log.w("cgBase.getElevation: " + e.toString()); + Log.w("cgBase.getElevation", e); } return null; |
