public class DefaultCoordinateSystemAxis extends AbstractIdentifiedObject implements CoordinateSystemAxis
In some case, the axis name is constrained by ISO 19111 depending on the coordinate reference system type. These constraints are identified in the javadoc by "ISO 19111 name is..." sentences. This constraint works in two directions; for example the names "geodetic latitude" and "geodetic longitude" shall be used to designate the coordinate axis names associated with a geographic coordinate reference system. Conversely, these names shall not be used in any other context.
AbstractCS
,
Unit
,
Serialized FormModifier and Type | Field and Description |
---|---|
static DefaultCoordinateSystemAxis |
ALTITUDE
The default axis for altitude values.
|
static DefaultCoordinateSystemAxis |
COLUMN
A default axis for column indices in a grid coverage.
|
static DefaultCoordinateSystemAxis |
DEPTH
The default axis for depth.
|
static DefaultCoordinateSystemAxis |
DISPLAY_X
A default axis for x values in a display device.
|
static DefaultCoordinateSystemAxis |
DISPLAY_Y
A default axis for y values in a display device.
|
static DefaultCoordinateSystemAxis |
EASTING
Default axis info for Easting values in a projected CRS.
|
static DefaultCoordinateSystemAxis |
ELLIPSOIDAL_HEIGHT
The default axis for height values above the ellipsoid in a geographic CRS.
|
static DefaultCoordinateSystemAxis |
GEOCENTRIC_RADIUS
Default axis info for radius in a geocentric CRS using spherical CS.
|
static DefaultCoordinateSystemAxis |
GEOCENTRIC_X
Default axis info for x values in a geocentric CRS using cartesian CS.
|
static DefaultCoordinateSystemAxis |
GEOCENTRIC_Y
Default axis info for y values in a geocentric CRS using cartesian CS.
|
static DefaultCoordinateSystemAxis |
GEOCENTRIC_Z
Default axis info for z values in a geocentric CRS using cartesian CS.
|
static DefaultCoordinateSystemAxis |
GEODETIC_LATITUDE
Default axis info for geodetic latitudes in a geographic CRS.
|
static DefaultCoordinateSystemAxis |
GEODETIC_LONGITUDE
Default axis info for geodetic longitudes in a geographic CRS.
|
static DefaultCoordinateSystemAxis |
GRAVITY_RELATED_HEIGHT
The default axis for height values measured from gravity.
|
static DefaultCoordinateSystemAxis |
LATITUDE
Default axis info for latitudes.
|
static DefaultCoordinateSystemAxis |
LONGITUDE
Default axis info for longitudes.
|
static DefaultCoordinateSystemAxis |
NORTHING
Default axis info for Northing values in a projected CRS.
|
static DefaultCoordinateSystemAxis |
ROW
A default axis for row indices in a grid
coverage.
|
static DefaultCoordinateSystemAxis |
SOUTHING
Default axis info for Southing values in a projected CRS.
|
static DefaultCoordinateSystemAxis |
SPHERICAL_LATITUDE
Default axis info for latitudes in a geocentric CRS using spherical CS.
|
static DefaultCoordinateSystemAxis |
SPHERICAL_LONGITUDE
Default axis info for longitudes in a geocentric CRS using spherical CS.
|
static DefaultCoordinateSystemAxis |
TIME
A default axis for time values in a time CS.
|
static DefaultCoordinateSystemAxis |
WESTING
Default axis info for Westing values in a projected CRS.
|
static DefaultCoordinateSystemAxis |
X
Default axis info for x values in a cartesian CS.
|
static DefaultCoordinateSystemAxis |
Y
Default axis info for y values in a cartesian CS.
|
static DefaultCoordinateSystemAxis |
Z
Default axis info for z values in a cartesian CS.
|
EMPTY_ALIAS_ARRAY, EMPTY_IDENTIFIER_ARRAY, IDENTIFIER_COMPARATOR, NAME_COMPARATOR, REMARKS_COMPARATOR
SINGLE_LINE
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
Constructor and Description |
---|
DefaultCoordinateSystemAxis(CoordinateSystemAxis axis)
Constructs a new coordinate system axis with the same values than the specified one.
|
DefaultCoordinateSystemAxis(InternationalString name,
String abbreviation,
AxisDirection direction,
Unit<?> unit)
Constructs an axis with a name as an international string
and an abbreviation.
|
DefaultCoordinateSystemAxis(Map<String,?> properties,
String abbreviation,
AxisDirection direction,
Unit<?> unit)
Constructs an unbounded axis from a set of properties.
|
DefaultCoordinateSystemAxis(Map<String,?> properties,
String abbreviation,
AxisDirection direction,
Unit<?> unit,
double minimum,
double maximum,
RangeMeaning rangeMeaning)
Constructs an axis from a set of properties.
|
DefaultCoordinateSystemAxis(String abbreviation,
AxisDirection direction,
Unit<?> unit)
Constructs an axis with the same name as the abbreviation.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(AbstractIdentifiedObject object,
boolean compareMetadata)
Compares the specified object with this axis for equality.
|
protected String |
formatWKT(Formatter formatter)
Format the inner part of a Well
Known Text (WKT) element.
|
String |
getAbbreviation()
The abbreviation used for this coordinate system axes.
|
static double |
getAngle(AxisDirection source,
AxisDirection target)
Returns the arithmetic (counterclockwise) angle from the first direction to the second
direction, in decimal degrees.
|
AxisDirection |
getDirection()
Direction of this coordinate system axis.
|
static AxisDirection |
getDirection(String direction)
Returns an axis direction constants from its name.
|
double |
getMaximumValue()
Returns the maximum value normally allowed for this axis, in the unit of
measure for the axis.
|
double |
getMinimumValue()
Returns the minimum value normally allowed for this axis, in the unit of
measure for the axis.
|
static DefaultCoordinateSystemAxis |
getPredefined(String name,
AxisDirection direction)
Returns one of the predefined axis for the given name and direction, or
null if none. |
RangeMeaning |
getRangeMeaning()
|
Unit<?> |
getUnit()
The unit of measure used for this coordinate system axis.
|
int |
hashCode()
Returns a hash value for this axis.
|
static boolean |
isCompassDirection(AxisDirection direction)
Returns
true if the specified direction is a compass direction. |
boolean |
nameMatches(String name)
|
static boolean |
perpendicular(AxisDirection first,
AxisDirection second)
Returns
true if the specified directions are perpendicular. |
asSet, ensureAngularUnit, ensureLinearUnit, ensureNonNull, ensureNonNull, ensureTimeUnit, equals, equals, equals, equals, getAlias, getIdentifier, getIdentifier, getIdentifiers, getName, getName, getName, getProperties, getProperties, getRemarks, nameMatches, nameMatches
cleanupThreadLocals, toString, toWKT, toWKT, toWKT, toWKT
getAlias, getIdentifiers, getName, getRemarks, toWKT
public static final DefaultCoordinateSystemAxis GEODETIC_LONGITUDE
Increasing ordinates values go East and units are decimal degrees.
The ISO 19111 name is "geodetic longitude" and the abbreviation is "λ" (lambda).
This axis is usually part of a GEODETIC_LONGITUDE
, GEODETIC_LATITUDE
,
ELLIPSOIDAL_HEIGHT
set.
LONGITUDE
,
SPHERICAL_LONGITUDE
,
GEODETIC_LATITUDE
public static final DefaultCoordinateSystemAxis GEODETIC_LATITUDE
Increasing ordinates values go North and units are decimal degrees.
The ISO 19111 name is "geodetic latitude" and the abbreviation is "φ" (phi).
This axis is usually part of a GEODETIC_LONGITUDE
, GEODETIC_LATITUDE
,
ELLIPSOIDAL_HEIGHT
set.
LATITUDE
,
SPHERICAL_LATITUDE
,
GEODETIC_LONGITUDE
public static final DefaultCoordinateSystemAxis LONGITUDE
Increasing ordinates values go East and units are decimal degrees.
The abbreviation is "λ" (lambda).
This axis is usually part of a LONGITUDE
, LATITUDE
, ALTITUDE
set.
GEODETIC_LONGITUDE
,
SPHERICAL_LONGITUDE
,
LATITUDE
public static final DefaultCoordinateSystemAxis LATITUDE
Increasing ordinates values go North and units are decimal degrees.
The abbreviation is "φ" (phi).
This axis is usually part of a LONGITUDE
, LATITUDE
, ALTITUDE
set.
GEODETIC_LATITUDE
,
SPHERICAL_LATITUDE
,
LONGITUDE
public static final DefaultCoordinateSystemAxis ELLIPSOIDAL_HEIGHT
Increasing ordinates values go up and units are metres.
The ISO 19111 name is "ellipsoidal heigt" and the abbreviation is lower case "h".
This axis is usually part of a GEODETIC_LONGITUDE
, GEODETIC_LATITUDE
,
ELLIPSOIDAL_HEIGHT
set.
ALTITUDE
,
GEOCENTRIC_RADIUS
,
GRAVITY_RELATED_HEIGHT
,
DEPTH
public static final DefaultCoordinateSystemAxis GRAVITY_RELATED_HEIGHT
Increasing ordinates values go up and units are metres.
The ISO 19111 name is "gravity-related height" and the abbreviation is lower case "H".
ALTITUDE
,
ELLIPSOIDAL_HEIGHT
,
GEOCENTRIC_RADIUS
,
DEPTH
public static final DefaultCoordinateSystemAxis ALTITUDE
Increasing ordinates values go up and units are metres.
The abbreviation is lower case "h".
This axis is usually part of a LONGITUDE
, LATITUDE
, ALTITUDE
set.
ELLIPSOIDAL_HEIGHT
,
GEOCENTRIC_RADIUS
,
GRAVITY_RELATED_HEIGHT
,
DEPTH
public static final DefaultCoordinateSystemAxis DEPTH
Increasing ordinates values go down and units are metres.
The ISO 19111 name is "depth".
public static final DefaultCoordinateSystemAxis GEOCENTRIC_RADIUS
Increasing ordinates values go up and units are metres.
The ISO 19111 name is "geocentric radius" and the abbreviation is lower case "r".
This axis is usually part of a SPHERICAL_LONGITUDE
, SPHERICAL_LATITUDE
,
GEOCENTRIC_RADIUS
set.
ALTITUDE
,
ELLIPSOIDAL_HEIGHT
,
GRAVITY_RELATED_HEIGHT
,
DEPTH
public static final DefaultCoordinateSystemAxis SPHERICAL_LONGITUDE
Increasing ordinates values go East and units are decimal degrees.
The ISO 19111 name is "spherical longitude" and the abbreviation is "Ω" (omega).
This axis is usually part of a SPHERICAL_LONGITUDE
, SPHERICAL_LATITUDE
,
GEOCENTRIC_RADIUS
set.
LONGITUDE
,
GEODETIC_LONGITUDE
,
SPHERICAL_LATITUDE
public static final DefaultCoordinateSystemAxis SPHERICAL_LATITUDE
Increasing ordinates values go North and units are decimal degrees.
The ISO 19111 name is "spherical latitude" and the abbreviation is "Θ" (theta).
This axis is usually part of a SPHERICAL_LONGITUDE
, SPHERICAL_LATITUDE
,
GEOCENTRIC_RADIUS
set.
LATITUDE
,
GEODETIC_LATITUDE
,
SPHERICAL_LONGITUDE
public static final DefaultCoordinateSystemAxis X
Increasing ordinates values go East and units are metres.
The abbreviation is lower case "x".
EASTING
,
WESTING
,
GEOCENTRIC_X
,
DISPLAY_X
,
COLUMN
public static final DefaultCoordinateSystemAxis Y
Increasing ordinates values go North and units are metres.
The abbreviation is lower case "y".
NORTHING
,
SOUTHING
,
GEOCENTRIC_Y
,
DISPLAY_Y
,
ROW
public static final DefaultCoordinateSystemAxis Z
Increasing ordinates values go up and units are metres.
The abbreviation is lower case "z".
public static final DefaultCoordinateSystemAxis GEOCENTRIC_X
Increasing ordinates values go toward prime meridian and units are metres.
The ISO 19111 name is "geocentric X" and the abbreviation is upper case "X".
This axis is usually part of a GEOCENTRIC_X
, GEOCENTRIC_Y
, GEOCENTRIC_Z
set.
public static final DefaultCoordinateSystemAxis GEOCENTRIC_Y
Increasing ordinates values go East and units are metres.
The ISO 19111 name is "geocentric Y" and the abbreviation is upper case "Y".
This axis is usually part of a GEOCENTRIC_X
, GEOCENTRIC_Y
, GEOCENTRIC_Z
set.
public static final DefaultCoordinateSystemAxis GEOCENTRIC_Z
Increasing ordinates values go North and units are metres.
The ISO 19111 name is "geocentric Z" and the abbreviation is upper case "Z".
This axis is usually part of a GEOCENTRIC_X
, GEOCENTRIC_Y
, GEOCENTRIC_Z
set.
public static final DefaultCoordinateSystemAxis EASTING
Increasing ordinates values go East and units are metres.
The ISO 19111 name is "easting" and the abbreviation is upper case "E".
public static final DefaultCoordinateSystemAxis WESTING
Increasing ordinates values go West and units are metres.
The ISO 19111 name is "westing" and the abbreviation is upper case "W".
public static final DefaultCoordinateSystemAxis NORTHING
Increasing ordinates values go North and units are metres.
The ISO 19111 name is "northing" and the abbreviation is upper case "N".
public static final DefaultCoordinateSystemAxis SOUTHING
Increasing ordinates values go South and units are metres.
The ISO 19111 name is "southing" and the abbreviation is upper case "S".
public static final DefaultCoordinateSystemAxis TIME
public static final DefaultCoordinateSystemAxis COLUMN
The abbreviation is lower case "i".
public static final DefaultCoordinateSystemAxis ROW
The abbreviation is lower case "j".
public static final DefaultCoordinateSystemAxis DISPLAY_X
The abbreviation is lower case "x".
public static final DefaultCoordinateSystemAxis DISPLAY_Y
The abbreviation is lower case "y".
public DefaultCoordinateSystemAxis(CoordinateSystemAxis axis)
axis
- The coordinate system axis to copy.public DefaultCoordinateSystemAxis(Map<String,?> properties, String abbreviation, AxisDirection direction, Unit<?> unit, double minimum, double maximum, RangeMeaning rangeMeaning)
properties
- Set of properties. Should contains at least "name"
.abbreviation
- The abbreviation used for this coordinate
system axes.direction
- The direction of this coordinate system axis.unit
- The unit of measure used for this coordinate system axis.minimum
- The minimum value normally allowed for this axis.maximum
- The maximum value normally allowed for this axis.rangeMeaning
- The meaning of axis value range specified by the minimum and maximum
values.public DefaultCoordinateSystemAxis(Map<String,?> properties, String abbreviation, AxisDirection direction, Unit<?> unit)
properties
- Set of properties. Should contains at least "name"
.abbreviation
- The abbreviation used for this coordinate
system axes.direction
- The direction of this coordinate system axis.unit
- The unit of measure used for this coordinate system axis.public DefaultCoordinateSystemAxis(String abbreviation, AxisDirection direction, Unit<?> unit)
abbreviation
- The abbreviation used for this coordinate
system axes.direction
- The direction of this coordinate system axis.unit
- The unit of measure used for this coordinate system axis.public DefaultCoordinateSystemAxis(InternationalString name, String abbreviation, AxisDirection direction, Unit<?> unit)
name
argument, as given by
name.toString(null)
. The same name
argument is also stored as an alias, which allows fetching
localized versions of the name.name
- The name of this axis. Also stored as an alias for localization purpose.abbreviation
- The abbreviation used for this coordinate
system axis.direction
- The direction of this coordinate system axis.unit
- The unit of measure used for this coordinate system axis.public static DefaultCoordinateSystemAxis getPredefined(String name, AxisDirection direction)
null
if none.
This method searchs only in predefined constants like GEODETIC_LATITUDE
, not in any
custom axis instantiated by a public constructor. The name of those constants match ISO 19111
names or some names commonly found in Well Known Text (WKT) formats.
This method first checks if the specified name matches the abbreviation of a predefined axis. The comparaison is case-sensitive (for example the GEOCENTRIC_X
abbreviation is uppercase "X"
, while the abbreviation for the generic
X
axis is lowercase "x"
).
If the specified name doesn't match any abbreviation, then this method compares the name against predefined axis name in a case-insensitive manner. Examples of valid names are "Geodetic latitude" and "Northing".
The direction argument is optional and can be used in order to resolve ambiguity like
X
and DISPLAY_X
axis. If this argument is null
, then the first axis
with a matching name or abbreviation will be returned.
name
- The axis name or abbreviation.direction
- An optional direction, or null
.null
.public static AxisDirection getDirection(String direction) throws NoSuchElementException
direction
- The direction name (e.g. "north", "east", etc.).NoSuchElementException
- if the given name is not a know axis direction.public AxisDirection getDirection()
Within any set of coordinate system axes, only one of each pair of terms can be used. For earth-fixed coordinate reference systems, this direction is often approximate and intended to provide a human interpretable meaning to the axis. When a geodetic datum is used, the precise directions of the axes may therefore vary slightly from this approximate direction.
Note that an DefaultEngineeringCRS
often requires
specific descriptions of the directions of its coordinate system axes.
getDirection
in interface CoordinateSystemAxis
public String getAbbreviation()
getAbbreviation
in interface CoordinateSystemAxis
public Unit<?> getUnit()
getUnit
in interface CoordinateSystemAxis
public double getMinimumValue()
getMinimumValue
in interface CoordinateSystemAxis
Double.NEGATIVE_INFINITY
if none.public double getMaximumValue()
getMaximumValue
in interface CoordinateSystemAxis
Double.POSITIVE_INFINITY
if none.public RangeMeaning getRangeMeaning()
getRangeMeaning
in interface CoordinateSystemAxis
null
in none.public static boolean isCompassDirection(AxisDirection direction)
true
if the specified direction is a compass direction. Compass directions
include "North", "North-North-East", "North-East",
etc.direction
- The axis direction to test.true
if the given direction is a compass direction.public static double getAngle(AxisDirection source, AxisDirection target)
NaN
if no angle can be computed.
A positive angle denotes a right-handed system, while a negative angle denotes a left-handed system. Example:
source
- The source axis direction.target
- The target axis direction.Double.NaN
if this value can't be computed.public static boolean perpendicular(AxisDirection first, AxisDirection second)
true
if the specified directions are perpendicular.first
- The first axis direction to test.second
- The second axis direction to test.true
if the given axis direction are perpendicular.public boolean nameMatches(String name)
true
if either the primary name or at least one
alias matches the specified string. This method performs all the searh
done by the super-class, with the
addition of special processing for latitudes and longitudes:
"Lat"
, "Latitude"
and "Geodetic latitude"
are considered
equivalent.
"Lon"
, "Longitude"
and "Geodetic longitude"
are considered
equivalent.
The above special cases are needed in order to workaround a conflict in specifications: ISO 19111 explicitly state that the latitude and longitude axis names shall be "Geodetic latitude" and "Geodetic longitude", will legacy OGC 01-009 (where WKT is defined) said that the default values shall be "Lat" and "Lon".
nameMatches
in class AbstractIdentifiedObject
name
- The name to compare.true
if the primary name of at least one alias matches the specified name
.public boolean equals(AbstractIdentifiedObject object, boolean compareMetadata)
equals
in class AbstractIdentifiedObject
object
- The object to compare to this
.compareMetadata
- true
for performing a strict comparaison, or false
for
comparing only properties relevant to transformations.true
if both objects are equal.public int hashCode()
hashCode
in class AbstractIdentifiedObject
protected String formatWKT(Formatter formatter)
toString
method
and looks like AXIS["name",NORTH]
.formatWKT
in class Formattable
formatter
- The formatter to use.Formattable.toWKT()
,
Formattable.toString()
Copyright © 1996–2019 Geotools. All rights reserved.