# Interface CoordinateSystem

All Superinterfaces:
  `IdentifiedObject`

All Known Subinterfaces:
  `AffineCS, CartesianCS, CylindricalCS, EllipsoidalCS, LinearCS, PolarCS, SphericalCS, TimeCS, UserDefinedCS, VerticalCS`

All Known Implementing Classes:
  `AbstractCS, DefaultAffineCS, DefaultCartesianCS, DefaultCompoundCS, DefaultCylindricalCS, DefaultEllipsoidalCS, DefaultLinearCS, DefaultParametricCS, DefaultPolarCS, DefaultSphericalCS, DefaultTimeCS, DefaultVerticalCS`

@UML(identifier="CS_CoordinateSystem", specification=ISO_19111) public interface CoordinateSystem extends IdentifiedObject
The set of coordinate system axes that spans a given coordinate space. A coordinate system (CS) is derived from a set of (mathematical) rules for specifying how coordinates in a given space are to be assigned to points. The coordinate values in a coordinate tuple shall be recorded in the order in which the coordinate system axes associations are recorded, whenever those coordinates use a coordinate reference system that uses this coordinate system.

Since:
  1.0
See Also:
  - `CoordinateSystemAxis`
  - `Unit`
  - `Datum`
  - `CoordinateReferenceSystem`

- ## Field Summary

  ### Fields inherited from interface IdentifiedObject

  `ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CoordinateSystemAxis`
  `getAxis(int dimension)`
  Returns the axis for this coordinate system at the specified dimension.
  `int`
  `getDimension()`
  Returns the dimension of the coordinate system.

  ### Methods inherited from interface IdentifiedObject

  `getAlias, getIdentifiers, getName, getRemarks, toWKT`

- ## Method Details

  - ### getDimension

    int getDimension()
    Returns the dimension of the coordinate system.
    Returns:
      The dimension of the coordinate system.

  - ### getAxis

    @UML(identifier="axis", obligation=MANDATORY, specification=ISO_19111) CoordinateSystemAxis getAxis(int dimension) throws IndexOutOfBoundsException
    Returns the axis for this coordinate system at the specified dimension. Each coordinate system must have at least one axis.
    Parameters:
      `dimension` - The zero based index of axis.
    Returns:
      The axis at the specified dimension.
    Throws:
      `IndexOutOfBoundsException` - if `dimension` is out of bounds.