org.deegree_impl.model.cs
Class DatumType

java.lang.Object
  extended byEnumeratedParameter
      extended byorg.deegree_impl.model.cs.DatumType
Direct Known Subclasses:
DatumType.Horizontal, DatumType.Local, DatumType.Temporal, DatumType.Vertical

public abstract class DatumType
extends EnumeratedParameter

Type of the datum expressed as an enumerated value. The enumeration is split into ranges which indicate the datum's type. The value should be one of the predefined values, or within the range for local types. This will allow OpenGIS Consortium to coordinate the addition of new interoperable codes.

Version:
1.00
Author:
OpenGIS (www.opengis.org), Martin Desruisseaux
See Also:
CS_DatumType, Serialized Form

Nested Class Summary
static class DatumType.Horizontal
          Horizontal datum type.
static class DatumType.Local
          Local datum type.
private static class DatumType.Pool
          Pool of custom DatumType.
static class DatumType.Temporal
          Temporal datum type.
static class DatumType.Vertical
          Vertical datum type.
 
Field Summary
static DatumType.Vertical ALTITUDE_BAROMETRIC
          The vertical datum of altitudes or heights in the atmosphere.
static DatumType.Horizontal CLASSIC
          These datums, such as ED50, NAD27 and NAD83, have been designed to support horizontal positions on the ellipsoid as opposed to positions in 3-D space.
static DatumType.Vertical DEPTH
          This attribute is used to support the set of datums generated for hydrographic engineering projects where depth measurements below sea level are needed.
static DatumType.Vertical ELLIPSOIDAL
          A vertical datum for ellipsoidal heights that are measured along the normal to the ellipsoid used in the definition of horizontal datum.
private static DatumType[] ENUMS
          List of predefined enum types.
static DatumType.Horizontal GEOCENTRIC
          A geocentric datum is a "satellite age" modern geodetic datum mainly of global extent, such as WGS84 (used in GPS), PZ90 (used in GLONASS) and ITRF.
static DatumType.Vertical GEOID_MODEL_DERIVED
          A vertical datum of geoid model derived heights, also called GPS-derived heights.
static DatumType.Temporal GMT
          A temporal datum for Greenwich Mean Time (GMT).
private  int key
          Resource key, used for building localized name.
static DatumType.Vertical NORMAL
          A normal height system.
static DatumType.Vertical ORTHOMETRIC
          A vertical datum for orthometric heights that are measured along the plumb line.
private static WeakHashSet pool
          The pool of local datum.
private static long serialVersionUID
          Serial number for interoperability with different versions.
static DatumType.Temporal UTC
          A temporal datum for Universal Time (UTC).
 
Constructor Summary
DatumType(java.lang.String name, int value, int key)
          Construct a new enum with the specified value.
 
Method Summary
static DatumType getEnum(int value)
          Return the enum for the specified value.
(package private) abstract  int getMaximum()
          Get the maximum value.
(package private) abstract  int getMinimum()
          Get the minimum value.
 java.lang.String getName(java.util.Locale locale)
          Returns this enum's name in the specified locale.
 java.lang.String getType(java.util.Locale locale)
          Return the type name in the specified locale.
(package private) abstract  int getTypeKey()
          Return the type key.
(package private) abstract  boolean isCompatibleOrientation(AxisOrientation orientation)
          Returns true if the specified orientation is compatible with this datum type.
private  java.lang.Object readResolve()
          Use a single instance of DatumType after deserialization.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
Serial number for interoperability with different versions.

See Also:
Constant Field Values

pool

private static WeakHashSet pool
The pool of local datum. This pool will be created only when needed.


CLASSIC

public static final DatumType.Horizontal CLASSIC
These datums, such as ED50, NAD27 and NAD83, have been designed to support horizontal positions on the ellipsoid as opposed to positions in 3-D space. These datums were designed mainly to support a horizontal component of a position in a domain of limited extent, such as a country, a region or a continent.

See Also:
CS_DatumType.CS_HD_Classic

GEOCENTRIC

public static final DatumType.Horizontal GEOCENTRIC
A geocentric datum is a "satellite age" modern geodetic datum mainly of global extent, such as WGS84 (used in GPS), PZ90 (used in GLONASS) and ITRF. These datums were designed to support both a horizontal component of position and a vertical component of position (through ellipsoidal heights). The regional realizations of ITRF, such as ETRF, are also included in this category.

See Also:
CS_DatumType.CS_HD_Geocentric

ORTHOMETRIC

public static final DatumType.Vertical ORTHOMETRIC
A vertical datum for orthometric heights that are measured along the plumb line.

See Also:
CS_DatumType.CS_VD_Orthometric

ELLIPSOIDAL

public static final DatumType.Vertical ELLIPSOIDAL
A vertical datum for ellipsoidal heights that are measured along the normal to the ellipsoid used in the definition of horizontal datum.

See Also:
CS_DatumType.CS_VD_Ellipsoidal

ALTITUDE_BAROMETRIC

public static final DatumType.Vertical ALTITUDE_BAROMETRIC
The vertical datum of altitudes or heights in the atmosphere. These are approximations of orthometric heights obtained with the help of a barometer or a barometric altimeter. These values are usually expressed in one of the following units: meters, feet, millibars (used to measure pressure levels), or theta value (units used to measure geopotential height).

See Also:
CS_DatumType.CS_VD_AltitudeBarometric

NORMAL

public static final DatumType.Vertical NORMAL
A normal height system.

See Also:
CS_DatumType.CS_VD_Normal

GEOID_MODEL_DERIVED

public static final DatumType.Vertical GEOID_MODEL_DERIVED
A vertical datum of geoid model derived heights, also called GPS-derived heights. These heights are approximations of orthometric heights (H), constructed from the ellipsoidal heights (h) by the use of the given geoid undulation model (N) through the equation: H=h-N.

See Also:
CS_DatumType.CS_VD_GeoidModelDerived

DEPTH

public static final DatumType.Vertical DEPTH
This attribute is used to support the set of datums generated for hydrographic engineering projects where depth measurements below sea level are needed. It is often called a hydrographic or a marine datum. Depths are measured in the direction perpendicular (approximately) to the actual equipotential surfaces of the earth's gravity field, using such procedures as echo-sounding.

See Also:
CS_DatumType.CS_VD_Depth

UTC

public static final DatumType.Temporal UTC
A temporal datum for Universal Time (UTC). UTC is based on an atomic clock, while GMT is based on astronomical observations.

Note: This enum is not part of OpenGIS specification. It may change in incompatible way if OpenGIS define an equivalent enum.


GMT

public static final DatumType.Temporal GMT
A temporal datum for Greenwich Mean Time (GMT). GMT is based on astronomical observations, while UTC is based on an atomic clock.

Note: This enum is not part of OpenGIS specification. It may change in incompatible way if OpenGIS define an equivalent enum.


ENUMS

private static final DatumType[] ENUMS
List of predefined enum types.


key

private transient int key
Resource key, used for building localized name. This key doesn't need to be serialized, since readResolve() canonicalize enums according their #value. Furthermore, its value is implementation-dependent (which is an other raison why it should not be serialized).

Constructor Detail

DatumType

public DatumType(java.lang.String name,
                 int value,
                 int key)
Construct a new enum with the specified value.

Method Detail

getEnum

public static DatumType getEnum(int value)
Return the enum for the specified value.

Parameters:
value - The enum value.
Returns:
The enum for the specified value.

isCompatibleOrientation

abstract boolean isCompatibleOrientation(AxisOrientation orientation)
Returns true if the specified orientation is compatible with this datum type. For example, a vertical datum is compatible only with orientations UP and DOWN.


getMinimum

abstract int getMinimum()
Get the minimum value.


getMaximum

abstract int getMaximum()
Get the maximum value.


getTypeKey

abstract int getTypeKey()
Return the type key.


getType

public java.lang.String getType(java.util.Locale locale)
Return the type name in the specified locale. Type may be "Horizontal", "Vertical", "Temporal" or "Local".


getName

public java.lang.String getName(java.util.Locale locale)
Returns this enum's name in the specified locale. If no name is available for the specified locale, a default one will be used.

Parameters:
locale - The locale, or null for the default locale.
Returns:
Enum's name in the specified locale.

readResolve

private java.lang.Object readResolve()
                              throws java.io.ObjectStreamException
Use a single instance of DatumType after deserialization. It allow client code to test enum1==enum2 instead of enum1.equals(enum2).

Returns:
A single instance of this enum.
Throws:
java.io.ObjectStreamException - is deserialization failed.