001package sec.geo.shape; 002 003import org.gavaghan.geodesy.GlobalPosition; 004 005public class Point { 006 007 private final double longitudeDegrees; 008 private final double latitudeDegrees; 009 private final double altitudeMeters; 010 011 public Point(double longitudeDegrees, double latitudeDegrees) { 012 this(longitudeDegrees, latitudeDegrees, 0); 013 } 014 015 public Point(double longitudeDegrees, double latitudeDegrees, double altitudeMeters) { 016 this.longitudeDegrees = longitudeDegrees; 017 this.latitudeDegrees = latitudeDegrees; 018 this.altitudeMeters = altitudeMeters; 019 } 020 021 public double getLongitude() { 022 return longitudeDegrees; 023 } 024 025 public double getLatitude() { 026 return latitudeDegrees; 027 } 028 029 public double getAltitude() { 030 return altitudeMeters; 031 } 032 033 public GlobalPosition toGlobalPos() { 034 return new GlobalPosition(getLatitude(), getLongitude(), getAltitude()); 035 } 036 037 @Override 038 public boolean equals(Object o) { 039 if (!(o instanceof Point)) { 040 return false; 041 } 042 Point other = (Point) o; 043 return (longitudeDegrees == other.longitudeDegrees) && (latitudeDegrees == other.latitudeDegrees) 044 && (altitudeMeters == other.altitudeMeters); 045 } 046 047 @Override 048 public String toString() { 049 return "[" + longitudeDegrees + "," + latitudeDegrees + "," + altitudeMeters + "]"; 050 } 051}