|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.microedition.location.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 String |
convert(double coordinate,
int outputType)
Converts a double representation of a coordinate with decimal degrees into a string representation. |
|
static double |
convert(String coordinate)
Converts a String representation of a coordinate into the float 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_SS
public static final int DD_MM
Constructor Detail |
---|
public Coordinates(double latitude, double longitude, float altitude)
Constructs a new Coordinates object with the values specified. The latitude and longitude parameters are expressed in degrees using floating point values. The degrees are in decimal values (rather than minutes/seconds).
The coordinate values always apply to the WGS84 datum.
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 WGS84 ellipsoid. Float.NaN can be used to indicate that altitude is not known.
IllegalArgumentException
- if an input parameter is out of the valid rangeMethod Detail |
---|
public double getLatitude()
Returns the latitude component of this coordinate. Positive values indicate northern latitude and negative values southern latitude.
The latitude is given in WGS84 datum.
Coordinates.setLatitude(double)
public double getLongitude()
Returns the longitude component of this coordinate. Positive values indicate eastern longitude and negative values western longitude.
The longitude is given in WGS84 datum.
Coordinates.setLongitude(double)
public float getAltitude()
Returns the altitude component of this coordinate. Altitude is defined to mean height above the WGS84 reference ellipsoid. 0.0 means a location at the ellipsoid surface, negative values mean the location is below the ellipsoid surface, Float.NaN that no altitude is available.
Coordinates.setAltitude(float)
public void setAltitude(float altitude)
Sets the geodetic altitude for this point.
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 no altitude is availableCoordinates.getAltitude()
public void setLatitude(double latitude)
Sets the geodetic latitude for this point. Latitude is given as a double expressing the latitude in degrees in the WGS84 datum.
latitude
- the latitude component of this location in degrees. Valid range: [-90.0, 90.0].
IllegalArgumentException
- if latitude is out of the valid rangeCoordinates.getLatitude()
public void setLongitude(double longitude)
Sets the geodetic longitude for this point. Longitude is given as a double expressing the longitude in degrees in the WGS84 datum.
longitude
- the longitude of the location in degrees. Valid range: [-180.0, 180.0)
IllegalArgumentException
- if longitude is out of the valid rangeCoordinates.getLongitude()
public static double convert(String coordinate)
Converts a String representation of a coordinate into the float representation as used in this API.
There are two string syntaxes supported:
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
IllegalArgumentException
- if the coordinate input parameter does not comply with the defined syntax for the indicated type or if the inputType is not one of the two constant values defined in this class
NullPointerException
- if the coordinate string is nullpublic static String convert(double coordinate, int outputType)
Converts a double representation of a coordinate with decimal degrees into a string representation.
The string syntaxes supported are the same as for the convert(String) method. The implementation shall provide as many significant digits for the decimal fractions as are allowed by the string syntax definition.
coordinate
- a double reprentation 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.
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.NaNCoordinates.convert(String)
public float distance(Coordinates to)
Calculates the geodetic distance between the two points according to the ellipsoid model of WGS84. Altitude is neglected from calculations.
The implementation shall calculate this as exactly as it can. However, it is required that the result is within 0.35% of the correct result.
to
- the Coordinates of the destination
NullPointerException
- if the parameter is nullpublic float azimuthTo(Coordinates to)
to
- the Coordinates of the destination
NullPointerException
- if the parameter is null
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright 1999-2011 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Java is a trademark of Oracle America Inc. in the US and other countries.
Legal