public class CoordinateUtil
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static double |
c_wgs84_a |
static double |
c_wgs84_e2 |
static double |
c_wgs84_f |
static char |
CHAR_DEGREE |
static java.text.NumberFormat |
heading3DigitsFormat |
static float |
MINUTE |
static double |
MINUTE_D |
static float |
SECOND |
static double |
SECOND_D |
Constructor and Description |
---|
CoordinateUtil() |
Modifier and Type | Method and Description |
---|---|
static double[] |
addSphericalToCartesianOffsetsAndGetAsCylindrical(double r,
double theta,
double phi,
double x,
double y,
double z) |
static double[] |
bodyFrameToInertialFrame(double x,
double y,
double z,
double phi,
double theta,
double psi)
Changes a 3D point in the vehicle body reference frame to the inertial reference frame.
|
static double[] |
cartesianToCylindricalCoordinates(double x,
double y,
double z)
This metho transforms cartesian coordinates to sherical coordinates
|
static double[] |
cartesianToSphericalCoordinates(double x,
double y,
double z)
This metho transforms cartesian coordinates to sherical coordinates
|
static void |
copyToClipboard(LocationType lt) |
static double[] |
cylindricalToCartesianCoordinates(double r,
double theta,
double h)
This method transforms cylindrical coordinates to cartesian coordinates.
|
static double[] |
cylindricalToShericalCoordinates(double r,
double theta,
double h)
This method transforms cylindrical coordinates to spherical coordinates.
|
static double[] |
decimalDegreesToDM(double decimalDegress) |
static double[] |
decimalDegreesToDMS(double decimalDegress) |
static double |
dmsToDecimalDegrees(double degrees,
double minutes,
double seconds) |
static double[] |
dmsToDm(double degrees,
double minutes,
double seconds) |
static java.lang.String |
dmsToLatString(double[] dms) |
static java.lang.String |
dmsToLatString(double[] dms,
int maxDecimalHouses) |
static java.lang.String |
dmsToLatString(double d,
double m,
double s) |
static java.lang.String |
dmsToLatString(double d,
double m,
double s,
int maxDecimalHouses) |
static java.lang.String |
dmsToLonString(double[] dms) |
static java.lang.String |
dmsToLonString(double[] dms,
int maxDecimalHouses) |
static java.lang.String |
dmsToLonString(double d,
double m,
double s) |
static java.lang.String |
dmsToLonString(double d,
double m,
double s,
int maxDecimalHouses) |
static java.lang.String |
dmToLatString(double[] dm) |
static java.lang.String |
dmToLatString(double[] dm,
int maxDecimalHouses) |
static java.lang.String |
dmToLatString(double d,
double m) |
static java.lang.String |
dmToLatString(double d,
double m,
int maxDecimalHouses) |
static java.lang.String |
dmToLonString(double[] dm) |
static java.lang.String |
dmToLonString(double[] dm,
int maxDecimalHouses) |
static java.lang.String |
dmToLonString(double d,
double m) |
static java.lang.String |
dmToLonString(double d,
double m,
int maxDecimalHouses) |
static LocationType |
getAbsoluteLatLonDepth(LocationType point)
Deprecated.
Use
LocationType.getNewAbsoluteLatLonDepth() that returns a copy of the location but without offsets, or
LocationType.convertToAbsoluteLatLonDepth() that does a similar thing but it changes the location itself to be without offsets
(returning the location itself, not a copy). |
static double[] |
getNEBearingDegreesAndRange(LocationType loc1,
LocationType loc2)
Copied from Dune
Get North-East bearing and range between two latitude/longitude coordinates.
|
static double[] |
inertialFrameToBodyFrame(double x,
double y,
double z,
double phi,
double theta,
double psi)
Changes a 3D point in the inertial reference frame to the vehicle body frame.
|
static java.lang.String |
latitudeAsPrettyString(double latitude,
boolean showSeconds) |
static java.lang.String |
latitudeAsString(double latitude) |
static java.lang.String |
latitudeAsString(double latitude,
boolean minutesOnly) |
static java.lang.String |
latitudeAsString(double latitude,
boolean minutesOnly,
int maxDecimalHouses) |
static double[] |
latLonAddNE2(double lat,
double lon,
double north,
double east)
Add an offset in meters(north, east) to a (lat,lon) in decimal degrees
|
static double[] |
latLonDiff(double lat,
double lon,
double alat,
double alon)
Computes the offset (north, east) in meters from (lat, lon) to (alat, alon) [both of these in decimal degrees].
|
protected double[] |
latLonToUTM(double lat,
double lon)
Gently taken from openmap UTMPoint class
|
static java.lang.String |
longitudeAsPrettyString(double longitude,
boolean showSeconds) |
static java.lang.String |
longitudeAsString(double longitude) |
static java.lang.String |
longitudeAsString(double longitude,
boolean minutesOnly) |
static java.lang.String |
longitudeAsString(double longitude,
boolean minutesOnly,
int maxDecimalHouses) |
static void |
main(java.lang.String[] args) |
protected static double[] |
normalizeOffsetToLocation(double[] nedOffset,
double[] LatLonDepth) |
static java.lang.String[] |
parseCoordToStringArray(java.lang.String coord) |
static double |
parseLatitudeCoordToDoubleValue(java.lang.String coord) |
static java.lang.String[] |
parseLatitudeCoordToStringArray(java.lang.String coord) |
static double[] |
parseLatitudeStringToDMS(java.lang.String latitude) |
static double |
parseLongitudeCoordToDoubleValue(java.lang.String coord) |
static java.lang.String[] |
parseLongitudeCoordToStringArray(java.lang.String coord) |
static double[] |
parseLongitudeStringToDMS(java.lang.String longitude) |
static double[] |
sphericalToCartesianCoordinates(double r,
double theta,
double phi)
This method transforms spherical coordinates to cartesian coordinates.
|
static double[] |
sphericalToCylindricalCoordinates(double r,
double theta,
double phi)
This method transforms spherical coordinates to cylindrical coordinates.
|
static double[] |
WGS84displace(double latDegrees,
double lonDegrees,
double depth,
double n,
double e,
double d)
Copied from Dune
|
static double[] |
WGS84displacement(double latDegrees1,
double lonDegrees1,
double depth1,
double latDegrees2,
double lonDegrees2,
double depth2)
Copied from Dune
|
static double[] |
WGS84displacement(LocationType loc1,
LocationType loc2) |
public static final char CHAR_DEGREE
public static final float MINUTE
public static final double MINUTE_D
public static final float SECOND
public static final double SECOND_D
public static final double c_wgs84_a
public static final double c_wgs84_e2
public static final double c_wgs84_f
public static final java.text.NumberFormat heading3DigitsFormat
public static java.lang.String[] parseCoordToStringArray(java.lang.String coord)
coord
- Is expeted to be in the form of:
"[NSEW]ddd mm' ss.sss''", "ddd[NSEW]mm ss.sss"Examples: "N41 36' 3.333''", "41N36 3.333", "N41 36' 3,333''", "41N36.21"
public static java.lang.String[] parseLatitudeCoordToStringArray(java.lang.String coord)
coord
- parseCoordToStringArray(String)
public static java.lang.String[] parseLongitudeCoordToStringArray(java.lang.String coord)
coord
- parseCoordToStringArray(String)
public static double parseLatitudeCoordToDoubleValue(java.lang.String coord)
coord
- parseCoordToStringArray(String)
public static double parseLongitudeCoordToDoubleValue(java.lang.String coord)
coord
- parseCoordToStringArray(String)
public static double[] parseLatitudeStringToDMS(java.lang.String latitude)
latitude
- public static double[] parseLongitudeStringToDMS(java.lang.String longitude)
latRads
- public static double dmsToDecimalDegrees(double degrees, double minutes, double seconds)
degrees
- minutes
- seconds
- public static double[] dmsToDm(double degrees, double minutes, double seconds)
degrees
- minutes
- seconds
- public static double[] decimalDegreesToDMS(double decimalDegress)
decimalDegress
- public static double[] decimalDegreesToDM(double decimalDegress)
decimalDegress
- public static java.lang.String dmsToLatString(double[] dms)
dms
- public static java.lang.String dmsToLatString(double[] dms, int maxDecimalHouses)
dms
- maxDecimalHouses
- public static java.lang.String dmToLatString(double[] dm)
dm
- public static java.lang.String dmToLatString(double[] dm, int maxDecimalHouses)
dm
- maxDecimalHouses
- public static java.lang.String dmsToLatString(double d, double m, double s)
d
- m
- s
- public static java.lang.String dmsToLatString(double d, double m, double s, int maxDecimalHouses)
d
- m
- s
- maxDecimalHouses
- public static java.lang.String dmToLatString(double d, double m)
d
- m
- public static java.lang.String dmToLatString(double d, double m, int maxDecimalHouses)
d
- m
- maxDecimalHouses
- public static java.lang.String dmsToLonString(double[] dms)
dms
- public static java.lang.String dmsToLonString(double[] dms, int maxDecimalHouses)
dms
- maxDecimalHouses
- public static java.lang.String dmToLonString(double[] dm)
dm
- public static java.lang.String dmToLonString(double[] dm, int maxDecimalHouses)
dm
- maxDecimalHouses
- public static java.lang.String dmsToLonString(double d, double m, double s)
d
- m
- s
- public static java.lang.String dmsToLonString(double d, double m, double s, int maxDecimalHouses)
d
- m
- s
- maxDecimalHouses
- public static java.lang.String dmToLonString(double d, double m)
d
- m
- public static java.lang.String dmToLonString(double d, double m, int maxDecimalHouses)
d
- m
- maxDecimalHouses
- public static double[] latLonAddNE2(double lat, double lon, double north, double east)
public static double[] latLonDiff(double lat, double lon, double alat, double alon)
public static double[] bodyFrameToInertialFrame(double x, double y, double z, double phi, double theta, double psi)
(x,y,z)
- are the point coodinates and (phi[rad],theta[rad],psi[rad]) represent the orientation on each axis from one reference frame to the other.
Examples: If (1,1,1) is the point in one body frame and (0,0,pi/2) is the orientation of the body frame with respect to the the inertial frame,
the same point in the inertial frame becomes (-1,1,1)public static double[] inertialFrameToBodyFrame(double x, double y, double z, double phi, double theta, double psi)
(x,y,z)
- are the point coodinates and (phi,theta,psi) represent the orientation on each axis from one reference frame to the other. Examples: If
(-1,1,1) is the point in one inertial frame and (0,0,pi/2) is the orientation of the body frame with respect to the the body frame, the same point
in the inertial frame becomes (1,1,1)public static double[] sphericalToCartesianCoordinates(double r, double theta, double phi)
r
- Distancetheta
- Azimuth (°)phi
- Zenith (°)public static double[] cylindricalToCartesianCoordinates(double r, double theta, double h)
r
- Distancetheta
- Azimuth (°)h
- Heightpublic static double[] cartesianToSphericalCoordinates(double x, double y, double z)
x
- y
- z
- public static double[] cartesianToCylindricalCoordinates(double x, double y, double z)
x
- y
- z
- public static double[] sphericalToCylindricalCoordinates(double r, double theta, double phi)
r
- Distancetheta
- Azimuth (°)phi
- Zenith (°)public static double[] cylindricalToShericalCoordinates(double r, double theta, double h)
r
- Distancetheta
- Azimuth (°)phi
- Zenith (°)public static double[] addSphericalToCartesianOffsetsAndGetAsCylindrical(double r, double theta, double phi, double x, double y, double z)
r
- Distancetheta
- Azimuth (°)phi
- Zenith (°)x
- y
- z
- protected static double[] normalizeOffsetToLocation(double[] nedOffset, double[] LatLonDepth)
protected double[] latLonToUTM(double lat, double lon)
lat
- A latitude in decimal degreeslon
- A longitude in decimal degreespublic static java.lang.String latitudeAsString(double latitude)
public static java.lang.String longitudeAsString(double longitude)
public static java.lang.String latitudeAsPrettyString(double latitude, boolean showSeconds)
public static java.lang.String longitudeAsPrettyString(double longitude, boolean showSeconds)
public static java.lang.String latitudeAsString(double latitude, boolean minutesOnly)
public static java.lang.String latitudeAsString(double latitude, boolean minutesOnly, int maxDecimalHouses)
public static java.lang.String longitudeAsString(double longitude, boolean minutesOnly)
public static java.lang.String longitudeAsString(double longitude, boolean minutesOnly, int maxDecimalHouses)
public static void copyToClipboard(LocationType lt)
public static double[] WGS84displacement(LocationType loc1, LocationType loc2)
public static double[] WGS84displacement(double latDegrees1, double lonDegrees1, double depth1, double latDegrees2, double lonDegrees2, double depth2)
loc1
- loc2
- public static double[] WGS84displace(double latDegrees, double lonDegrees, double depth, double n, double e, double d)
loc
- n
- e
- d
- public static double[] getNEBearingDegreesAndRange(LocationType loc1, LocationType loc2)
@Deprecated public static LocationType getAbsoluteLatLonDepth(LocationType point)
LocationType.getNewAbsoluteLatLonDepth()
that returns a copy of the location but without offsets, or
LocationType.convertToAbsoluteLatLonDepth()
that does a similar thing but it changes the location itself to be without offsets
(returning the location itself, not a copy).point
- LocationType.getNewAbsoluteLatLonDepth()
.public static void main(java.lang.String[] args)
Copyright © 2004-2014 FEUP-LSTS and Neptus developers. All Rights Reserved.