Class AbstractSingleCRS

  • All Implemented Interfaces:
    Serializable, CoordinateReferenceSystem, SingleCRS, IdentifiedObject, ReferenceSystem
    Direct Known Subclasses:
    AbstractDerivedCRS, DefaultEngineeringCRS, DefaultGeocentricCRS, DefaultGeographicCRS, DefaultImageCRS, DefaultTemporalCRS, DefaultVerticalCRS

    public class AbstractSingleCRS
    extends AbstractCRS
    implements SingleCRS
    Abstract coordinate reference system, consisting of a single coordinate system and a single datum (as opposed to compound CRS).

    A coordinate reference system consists of an ordered sequence of coordinate system axes that are related to the earth through a datum. A coordinate reference system is defined by one datum and by one coordinate system. Most coordinate reference system do not move relative to the earth, except for engineering coordinate reference systems defined on moving platforms such as cars, ships, aircraft, and spacecraft.

    Coordinate reference systems are commonly divided into sub-types. The common classification criterion for sub-typing of coordinate reference systems is the way in which they deal with earth curvature. This has a direct effect on the portion of the earth's surface that can be covered by that type of CRS with an acceptable degree of error. The exception to the rule is the subtype "Temporal" which has been added by analogy.

    This class is conceptually abstract, even if it is technically possible to instantiate it. Typical applications should create instances of the most specific subclass with Default prefix instead. An exception to this rule may occurs when it is not possible to identify the exact type.

    Since:
    2.1
    Author:
    Martin Desruisseaux (IRD)
    See Also:
    AbstractCS, AbstractDatum, Serialized Form
    • Field Detail

      • datum

        protected final Datum datum
        The datum.
    • Constructor Detail

      • AbstractSingleCRS

        public AbstractSingleCRS​(SingleCRS crs)
        Constructs a new coordinate reference system with the same values than the specified one. This copy constructor provides a way to wrap an arbitrary implementation into a Geotools one or a user-defined one (as a subclass), usually in order to leverage some implementation-specific API. This constructor performs a shallow copy, i.e. the properties are not cloned.
        Parameters:
        crs - The coordinate reference system to copy.
        Since:
        2.2
      • AbstractSingleCRS

        public AbstractSingleCRS​(Map<String,​?> properties,
                                 Datum datum,
                                 CoordinateSystem cs)
        Constructs a coordinate reference system from a set of properties. The properties are given unchanged to the super-class constructor.
        Parameters:
        properties - Set of properties. Should contains at least "name".
        datum - The datum.
        cs - The coordinate system.
    • Method Detail

      • getDatum

        public Datum getDatum()
        Returns the datum.
        Specified by:
        getDatum in interface SingleCRS
        Returns:
        The datum.
      • getAxis

        public CoordinateSystemAxis getAxis​(int dimension)
                                     throws IndexOutOfBoundsException
        Returns the axis for the underlying coordinate system at the specified dimension. This is equivalent to AbstractCRS.coordinateSystem.getAxis(dimension) .
        Parameters:
        dimension - The zero based index of axis.
        Returns:
        The axis at the specified dimension.
        Throws:
        IndexOutOfBoundsException - if dimension is out of bounds.
      • equals

        public boolean equals​(AbstractIdentifiedObject object,
                              boolean compareMetadata)
        Compare this coordinate reference system with the specified object for equality. If compareMetadata is true, then all available properties are compared including AbstractReferenceSystem.getDomainOfValidity() valid area} and scope.
        Overrides:
        equals in class AbstractCRS
        Parameters:
        object - The object to compare to this.
        compareMetadata - true for performing a strict comparaison, or false for comparing only properties relevant to transformations.
        Returns:
        true if both objects are equal.
      • hashCode

        public int hashCode()
        Returns a hash value for this CRS. Name, identifiers and remarks are not taken in account. In other words, two CRS objects will return the same hash value if they are equal in the sense of equals(AbstractIdentifiedObject, false).
        Overrides:
        hashCode in class AbstractCRS
        Returns:
        The hash code value. This value doesn't need to be the same in past or future versions of this class.