Coordinate Systems implementation. The
{@link org.geotools.cs.CoordinateSystem} class is the base class for all
coordinate systems. Coordinate systems can have an arbitrary number of
dimensions. Some are two-dimensional (e.g. {@link org.geotools.cs.GeographicCoordinateSystem}
and {@link org.geotools.cs.ProjectedCoordinateSystem}), while some others
are one-dimensional (e.g. {@link org.geotools.cs.VerticalCoordinateSystem}
and {@link org.geotools.cs.TemporalCoordinateSystem}). Those simple coordinate
systems can be used as building blocks for more complex coordinate systems.
For example, it is possible to construct a three-dimensional geographic
coordinate system (latitude, longitude, height
above the ellipsoid) with an aggregation of GeographicCoordinateSystem
and VerticalCoordinateSystem
. Such aggregations are
built with {@link org.geotools.cs.CompoundCoordinateSystem}.
While it is possible to create coordinate systems by
direct instantiation (using their public constructors), the preferred way
is to use methods in the {@link org.geotools.cs.CoordinateSystemFactory}
class. Public constructors are not part of OpenGIS's specification, while
CoordinateSystemFactory
is. Furthermore,
CoordinateSystemFactory
's methods can be overridden,
which is useful for constructing CoordinateSystem
s
backed by some OpenGIS compliant commercial software.