# Interface VerticalCRS

All Superinterfaces:
  `CoordinateReferenceSystem, IdentifiedObject, ReferenceSystem, SingleCRS`

All Known Implementing Classes:
  `DefaultVerticalCRS`

@UML(identifier="SC_VerticalCRS", specification=ISO_19111) public interface VerticalCRS extends SingleCRS
A 1D coordinate reference system used for recording heights or depths. Vertical CRSs make use of the direction of gravity to define the concept of height or depth, but the relationship with gravity may not be straightforward.

By implication, ellipsoidal heights (h) cannot be captured in a vertical coordinate reference system. Ellipsoidal heights cannot exist independently, but only as inseparable part of a 3D coordinate tuple defined in a geographic 3D coordinate reference system. However GeoAPI does not enforce this rule. Some applications may relax this rule and accept ellipsoidal heights in the following context:

- As a transient state while parsing Well Known Text, or any other format based on legacy specifications where ellipsoidal heights were allowed as an independent axis.

- As short-lived objects to be passed or returned by methods enforcing type safety, for example `VerticalExtent​.getVerticalCRS()`.

- Other cases at implementor convenience. However implementors are encouraged to assemble the full 3D CRS as soon as they can.

Used with CS type(s)
`Vertical`

Since:
  1.0

- ## Field Summary

  ### Fields inherited from interface IdentifiedObject

  `ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY`

  ### Fields inherited from interface ReferenceSystem

  `DOMAIN_OF_VALIDITY_KEY, SCOPE_KEY`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `VerticalCS`
  `getCoordinateSystem()`
  Returns the coordinate system, which must be vertical.
  `VerticalDatum`
  `getDatum()`
  Returns the datum, which must be vertical.

  ### Methods inherited from interface IdentifiedObject

  `getAlias, getIdentifiers, getName, getRemarks, toWKT`

  ### Methods inherited from interface ReferenceSystem

  `getDomainOfValidity, getScope`

- ## Method Details

  - ### getCoordinateSystem

    @UML(identifier="coordinateSystem", obligation=MANDATORY, specification=ISO_19111) VerticalCS getCoordinateSystem()
    Returns the coordinate system, which must be vertical.
    Specified by:
      `getCoordinateSystem` in interface `CoordinateReferenceSystem`
    Specified by:
      `getCoordinateSystem` in interface `SingleCRS`
    Returns:
      The coordinate system.

  - ### getDatum

    @UML(identifier="datum", obligation=MANDATORY, specification=ISO_19111) VerticalDatum getDatum()
    Returns the datum, which must be vertical.
    Specified by:
      `getDatum` in interface `SingleCRS`
    Returns:
      The datum.