# Interface Position

All Known Subinterfaces:
  `DirectPosition`

All Known Implementing Classes:
  `AbstractDirectPosition, DirectPosition1D, DirectPosition2D, GeneralDirectPosition, ImmutableDirectPosition`

@UML(identifier="GM_Position", specification=ISO_19107) public interface Position
A type consisting of either a direct position or of a point from which a direct position shall be obtained. The use of this data type allows the identification of a position either directly as a coordinate (variant direct) or indirectly as a point (variant indirect).

Since:
  1.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `DirectPosition`
  `getDirectPosition()`
  Returns the direct position.

- ## Method Details

  - ### getDirectPosition

    @UML(identifier="direct", obligation=CONDITIONAL, specification=ISO_19107) DirectPosition getDirectPosition()
    Returns the direct position. This method shall never returns `null`, but may returns `this` if invoked on an object which is already a `DirectPosition` instance.
    Returns:
      The direct position (may be `this`).
    Since:
      2.2