Package org.geotools.referencing.cs
Class DefaultEllipsoidalCS
- Object
-
- Formattable
-
- AbstractIdentifiedObject
-
- AbstractCS
-
- DefaultEllipsoidalCS
-
- All Implemented Interfaces:
Serializable,CoordinateSystem,EllipsoidalCS,IdentifiedObject
public class DefaultEllipsoidalCS extends AbstractCS implements EllipsoidalCS
A two- or three-dimensional coordinate system in which position is specified by geodetic latitude, geodetic longitude, and (in the three-dimensional case) ellipsoidal height. AnEllipsoidalCSshall have two or three axis.Used with CRS type(s) Geographic,Engineering- Since:
- 2.1
- Author:
- Martin Desruisseaux (IRD)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static DefaultEllipsoidalCSGEODETIC_2DA two-dimensional ellipsoidal CS with geodetic longitude, geodetic latitude axis in decimal degrees.static DefaultEllipsoidalCSGEODETIC_3DA three-dimensional ellipsoidal CS with geodetic longitude, geodetic latitude, ellipsoidal height axis.-
Fields inherited from class AbstractIdentifiedObject
EMPTY_ALIAS_ARRAY, EMPTY_IDENTIFIER_ARRAY, IDENTIFIER_COMPARATOR, NAME_COMPARATOR, REMARKS_COMPARATOR
-
Fields inherited from class Formattable
SINGLE_LINE
-
Fields inherited from interface IdentifiedObject
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
-
-
Constructor Summary
Constructors Constructor Description DefaultEllipsoidalCS(String name, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1)Constructs a two-dimensional coordinate system from a name.DefaultEllipsoidalCS(String name, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)Constructs a three-dimensional coordinate system from a name.DefaultEllipsoidalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1)Constructs a two-dimensional coordinate system from a set of properties.DefaultEllipsoidalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)Constructs a three-dimensional coordinate system from a set of properties.DefaultEllipsoidalCS(EllipsoidalCS cs)Constructs a new coordinate system with the same values than the specified one.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doublegetHeight(double[] coordinates)Returns the height found in the specified coordinate point, always in meters.doublegetLatitude(double[] coordinates)Returns the latitude found in the specified coordinate point, always in decimal degrees.doublegetLongitude(double[] coordinates)Returns the longitude found in the specified coordinate point, always in decimal degrees.protected booleanisCompatibleDirection(AxisDirection direction)Returnstrueif the specified axis direction is allowed for this coordinate system.protected booleanisCompatibleUnit(AxisDirection direction, Unit<?> unit)Returnstrueif the specified unit is compatible with decimal degrees (or meters in the special case of height).DefaultEllipsoidalCSusingUnit(Unit<?> unit)Returns a new coordinate system with the same properties than the current one except for axis units.-
Methods inherited from class AbstractCS
distance, equals, formatWKT, getAxis, getDimension, hashCode, standard, swapAndScaleAxis
-
Methods inherited from class AbstractIdentifiedObject
asSet, ensureAngularUnit, ensureLinearUnit, ensureNonNull, ensureNonNull, ensureTimeUnit, equals, equals, equals, equals, getAlias, getIdentifier, getIdentifier, getIdentifiers, getName, getName, getName, getProperties, getProperties, getRemarks, nameMatches, nameMatches, nameMatches
-
Methods inherited from class Formattable
cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKT
-
Methods inherited from interface CoordinateSystem
getAxis, getDimension
-
Methods inherited from interface IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKT
-
-
-
-
Field Detail
-
GEODETIC_2D
public static DefaultEllipsoidalCS GEODETIC_2D
A two-dimensional ellipsoidal CS with geodetic longitude, geodetic latitude axis in decimal degrees.
-
GEODETIC_3D
public static DefaultEllipsoidalCS GEODETIC_3D
A three-dimensional ellipsoidal CS with geodetic longitude, geodetic latitude, ellipsoidal height axis.
-
-
Constructor Detail
-
DefaultEllipsoidalCS
public DefaultEllipsoidalCS(EllipsoidalCS cs)
Constructs a new coordinate system with the same values than the specified one. This copy constructor provides a way to wrap an arbitrary implementation into a Geotools one or a user-defined one (as a subclass), usually in order to leverage some implementation-specific API. This constructor performs a shallow copy, i.e. the properties are not cloned.- Parameters:
cs- The coordinate system to copy.- Since:
- 2.2
-
DefaultEllipsoidalCS
public DefaultEllipsoidalCS(String name, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1)
Constructs a two-dimensional coordinate system from a name.- Parameters:
name- The coordinate system name.axis0- The first axis.axis1- The second axis.
-
DefaultEllipsoidalCS
public DefaultEllipsoidalCS(String name, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)
Constructs a three-dimensional coordinate system from a name.- Parameters:
name- The coordinate system name.axis0- The first axis.axis1- The second axis.axis2- The third axis.
-
DefaultEllipsoidalCS
public DefaultEllipsoidalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1)
Constructs a two-dimensional coordinate system from a set of properties. The properties map is given unchanged to the super-class constructor.- Parameters:
properties- Set of properties. Should contains at least"name".axis0- The first axis.axis1- The second axis.
-
DefaultEllipsoidalCS
public DefaultEllipsoidalCS(Map<String,?> properties, CoordinateSystemAxis axis0, CoordinateSystemAxis axis1, CoordinateSystemAxis axis2)
Constructs a three-dimensional coordinate system from a set of properties. The properties map is given unchanged to the super-class constructor.- Parameters:
properties- Set of properties. Should contains at least"name".axis0- The first axis.axis1- The second axis.axis2- The third axis.
-
-
Method Detail
-
isCompatibleDirection
protected boolean isCompatibleDirection(AxisDirection direction)
Returnstrueif the specified axis direction is allowed for this coordinate system. The default implementation accepts only the following directions:NORTH,SOUTH,EAST,WEST,UPandDOWN.- Overrides:
isCompatibleDirectionin classAbstractCS- Parameters:
direction- The direction to test for compatibility.- Returns:
trueif the given direction is compatible with this coordinate system.
-
isCompatibleUnit
protected boolean isCompatibleUnit(AxisDirection direction, Unit<?> unit)
Returnstrueif the specified unit is compatible with decimal degrees (or meters in the special case of height). This method is invoked at construction time for checking units compatibility.- Overrides:
isCompatibleUnitin classAbstractCS- Parameters:
direction- The direction of the axis having the given unit.unit- The unit to test for compatibility.- Returns:
trueif the given unit is compatible with this coordinate system.- Since:
- 2.2
-
getLongitude
public double getLongitude(double[] coordinates) throws MismatchedDimensionExceptionReturns the longitude found in the specified coordinate point, always in decimal degrees.- Parameters:
coordinates- The coordinate point expressed in this coordinate system.- Returns:
- The longitude in the specified array, in decimal degrees.
- Throws:
MismatchedDimensionException- is the coordinate point doesn't have the expected dimension.
-
getLatitude
public double getLatitude(double[] coordinates) throws MismatchedDimensionExceptionReturns the latitude found in the specified coordinate point, always in decimal degrees.- Parameters:
coordinates- The coordinate point expressed in this coordinate system.- Returns:
- The latitude in the specified array, in decimal degrees.
- Throws:
MismatchedDimensionException- is the coordinate point doesn't have the expected dimension.
-
getHeight
public double getHeight(double[] coordinates) throws MismatchedDimensionExceptionReturns the height found in the specified coordinate point, always in meters.- Parameters:
coordinates- The coordinate point expressed in this coordinate system.- Returns:
- The height in the specified array, in meters.
- Throws:
MismatchedDimensionException- is the coordinate point doesn't have the expected dimension.
-
usingUnit
public DefaultEllipsoidalCS usingUnit(Unit<?> unit) throws IllegalArgumentException
Returns a new coordinate system with the same properties than the current one except for axis units.- Parameters:
unit- The unit for the new axis.- Returns:
- A coordinate system with axis using the specified units.
- Throws:
IllegalArgumentException- If the specified unit is incompatible with the expected one.- Since:
- 2.2
-
-