Package org.opengis.referencing.cs

package org.opengis.referencing.cs
Coordinate Systems and their axes. A coordinate system (CS) shall be composed of a non-repeating sequence of axes. Each axis can have have a name, an abbreviation, a unit of measure, a direction and a range of values. The number of axes is the dimension of the coordinate space. Axis order is significant.

One CoordinateSystem instance may be used by multiple CoordinateReferenceSystem (CRS) instances. The number of coordinates in a coordinate tuple shall be equal to the number of coordinate axes in the coordinate system. Coordinates in coordinate tuples shall be supplied in the order in which the coordinate system's axes are defined.

Coordinate system types

A coordinate system implies how coordinates are calculated from geometric elements such as distances and angles and vice versa. These rules are not specified in details, but are implied by the coordinate system interface. Certain sub-interfaces of coordinate system shall be used only with specific sub-interfaces of CRS. The restrictions are documented in the javadoc of each CRS subtype.

Coordinate system interfaces should not be confused with coordinate system unions. The latter look similar to CS interfaces, but do not imply a specific set of mathematical rules. A CS union is only an enumeration of the CS interfaces that can be associated to a given CRS interface. Because the Java language has no direct support for unions, the CS unions defined by ISO 19111 are not part of GeoAPI. They are replaced by Javadoc documenting the constraints.

Departure from OGC/ISO standard due to constraint of the Java language The GeodeticCS, EngineeringCS and DerivedProjectedCS unions are omitted because unions are not directly supported in the Java language (they are supported in some other languages such as C/C++). Unions could be simulated, for example, by defining GeodeticCS as a parent interface of org.opengis.referencing.cs.CartesianCS, org.opengis.referencing.cs.SphericalCS and org.opengis.referencing.cs.EllipsoidalCS (the members of the GeodeticCS union). However, it would blur the semantics of subtyping as an “is type of” hierarchy. For example, a CartesianCS can be used in non-geodetic contexts.
Departure from OGC/ISO standard for harmonization between different specifications The OrdinalCS and TemporalCountCS interfaces are omitted because they are about a type of coordinate values (integers) rather than the mathematical rules implied by the coordinate system. The DateTimeTemporalCS interface is omitted for similar reason. The TemporalMeasureCS interface is omitted because it behaves like most other axes, and therefor is adequately covered by the TimeCS parent interface.