aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/geopoint/Geopoint.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/geopoint/Geopoint.java')
-rw-r--r--main/src/cgeo/geocaching/geopoint/Geopoint.java55
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;