|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.openlapi.Coordinates
public class Coordinates
The Coordinates class represents coordinates as latitude-longitude-altitude values. The latitude and longitude values are expressed in degrees using floating point values. The degrees are in decimal values (rather than minutes/seconds). The coordinates are given using the WGS84 datum.
This class also provides convenience methods for converting between a string coordinate representation and the double representation used in this class.
Field Summary | |
---|---|
static int |
DD_MM
Identifier for string coordinate representation Degrees, Minutes, decimal fractions of a minute |
static int |
DD_MM_SS
Identifier for string coordinate representation Degrees, Minutes, Seconds and decimal fractions of a second |
Constructor Summary | |
---|---|
Coordinates(double latitude,
double longitude,
float altitude)
Constructs a new Coordinates object with the values specified. |
Method Summary | |
---|---|
float |
azimuthTo(Coordinates to)
Calculates the azimuth between the two points according to the ellipsoid model of WGS84. |
static java.lang.String |
convert(double coordinate,
int outputType)
Converts a double representation of a coordinate with decimal degrees into a string representation. |
static double |
convert(java.lang.String coordinate)
Converts a String representation of a coordinate into the double representation as used in this API. |
float |
distance(Coordinates to)
Calculates the geodetic distance between the two points according to the ellipsoid model of WGS84. |
float |
getAltitude()
Returns the altitude component of this coordinate. |
double |
getLatitude()
Returns the latitude component of this coordinate. |
double |
getLongitude()
Returns the longitude component of this coordinate. |
void |
setAltitude(float altitude)
Sets the geodetic altitude for this point. |
void |
setLatitude(double latitude)
Sets the geodetic latitude for this point. |
void |
setLongitude(double longitude)
Sets the geodetic longitude for this point. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int DD_MM
public static final int DD_MM_SS
Constructor Detail |
---|
public Coordinates(double latitude, double longitude, float altitude) throws java.lang.IllegalArgumentException
The Float.NaN value can be used for altitude to indicate that altitude is not known.
latitude
- the latitude of the location. Valid range: [-90.0, 90.0]. Positive
values indicate northern latitude and negative values southern latitude.longitude
- the longitude of the location. Valid range: [-180.0, 180.0). Positive
values indicate eastern longitude and negative values western longitude.altitude
- the altitude of the location in meters, defined as height above the
WGS84 ellipsoid. Float.NaN can be used to indicate that altitude is not
known.
java.lang.IllegalArgumentException
- if an input parameter is out of the valid rangeMethod Detail |
---|
public static java.lang.String convert(double coordinate, int outputType) throws java.lang.IllegalArgumentException
coordinate
- a double representation of a coordinateoutputType
- identifier of the type of the string representation wanted for output
The constant DD_MM_SS
identifies the syntax 1 and the constant
DD_MM
identifies the syntax 2.
java.lang.IllegalArgumentException
- if the outputType is not one of the two costant values defined in this
class or if the coordinate value is not within the range [-180.0,
180.0) or is Double.NaNconvert(String)
public static double convert(java.lang.String coordinate) throws java.lang.IllegalArgumentException, java.lang.NullPointerException
1. Degrees, minutes, seconds and decimal fractions of seconds. This is expressed as a string complying with the following BNF definition where the degrees are within the range [-179, 179] and the minutes and seconds are within the range [0, 59], or the degrees is -180 and the minutes, seconds and decimal fractions are 0:
coordinate = degrees ":" minutes ":" seconds "."
decimalfrac | degrees ":" minutes ":" seconds | degrees
":" minutes
degrees = degreedigits | "-" degreedigits
degreedigits = digit | nonzerodigit digit | "1" digit digit
minutes = minsecfirstdigit digit
seconds = minsecfirstdigit digit
decimalfrac = 1*3digit
digit = "0" | "1" | "2" | "3" |
"4" | "5" | "6" | "7" | "8" |
"9"
nonzerodigit = "1" | "2" | "3" | "4" |
"5" | "6" | "7" | "8" | "9"
minsecfirstdigit = "0" | "1" | "2" | "3" |
"4" | "5"
2. Degrees, minutes and decimal fractions of minutes. This is expressed as a string complying with the following BNF definition where the degrees are within the range [-179, 179] and the minutes are within the range [0, 59], or the degrees is -180 and the minutes and decimal fractions are 0:
coordinate = degrees ":" minutes "." decimalfrac | degrees
":" minutes
degrees = degreedigits | "-" degreedigits
degreedigits = digit | nonzerodigit digit | "1" digit digit
minutes =
minsecfirstdigit digit
decimalfrac = 1*5digit
digit = "0" |
"1" | "2" | "3" | "4" | "5" |
"6" | "7" | "8" | "9"
nonzerodigit =
"1" | "2" | "3" | "4" | "5" |
"6" | "7" | "8" | "9"
minsecfirstdigit = "0" | "1" | "2" | "3" |
"4" | "5"
For example, for the double value of the coordinate 61.51d, the corresponding syntax 1 string is "61:30:36" and the corresponding syntax 2 string is "61:30.6".
coordinate
- a String in either of the two representation specified above
java.lang.IllegalArgumentException
- if the coordinate input parameter does not comply with the defined
syntax for the specified types
java.lang.NullPointerException
- if the coordinate string is null convertpublic float azimuthTo(Coordinates to)
to
- the Coordinates of the destination
java.lang.NullPointerException
- if the parameter is nullpublic float distance(Coordinates to) throws java.lang.NullPointerException
to
- the Coordinates of the destination
java.lang.NullPointerException
- if the parameter is nullpublic float getAltitude()
setAltitude(float)
public double getLatitude()
setLatitude(double)
public double getLongitude()
setLongitude(double)
public void setAltitude(float altitude)
altitude
- the altitude of the location in meters, defined as height above the
WGS84 ellipsoid. 0.0 means a location at the ellipsoid surface, negative
values mean the location is below the ellipsoid surface, Float.NaN that
the altitude is not availablegetAltitude()
public void setLatitude(double latitude) throws java.lang.IllegalArgumentException
latitude
- the latitude component of this location in degrees. Valid range: [-90.0,
90.0]
java.lang.IllegalArgumentException
- if latitude is out of the valid rangegetLatitude()
public void setLongitude(double longitude)
longitude
- the longitude of the location in degrees. Valid range: [-180.0, 180.0)
java.lang.IllegalArgumentException
- if longitude is out of the valid rangegetLongitude()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |