org.geotoolkit.referencing.crs
Class AbstractCRS

Object
  extended by FormattableObject
      extended by AbstractIdentifiedObject
          extended by AbstractReferenceSystem
              extended by AbstractCRS
All Implemented Interfaces:
Serializable, Formattable, LenientComparable, CoordinateReferenceSystem, IdentifiedObject, ReferenceSystem
Direct Known Subclasses:
AbstractSingleCRS, DefaultCompoundCRS

@Immutable
public abstract class AbstractCRS
extends AbstractReferenceSystem
implements CoordinateReferenceSystem

Abstract coordinate reference system, usually defined by a coordinate system and a datum.

Since:
1.2
Version:
3.18
Author:
Martin Desruisseaux (IRD, Geomatys)
See Also:
AbstractCS, AbstractDatum, Serialized Form
Module:
referencing/geotk-referencing (download)    View source code for this class

Field Summary
 
Fields inherited from class AbstractIdentifiedObject
EMPTY_ALIAS_ARRAY, EMPTY_IDENTIFIER_ARRAY, IDENTIFIER_COMPARATOR, NAME_COMPARATOR, REMARKS_COMPARATOR
 
Fields inherited from class FormattableObject
EPSG, GEOTIFF, INTERNAL, OGC, SINGLE_LINE
 
Fields inherited from interface ReferenceSystem
DOMAIN_OF_VALIDITY_KEY, SCOPE_KEY
 
Fields inherited from interface IdentifiedObject
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
 
Constructor Summary
AbstractCRS(CoordinateReferenceSystem crs)
          Constructs a new coordinate reference system with the same values than the specified one.
AbstractCRS(Map<String,?> properties, CoordinateSystem cs)
          Constructs a coordinate reference system from a set of properties.
 
Method Summary
protected  int computeHashCode()
          Computes a hash value for this identified object.
 Measure distance(double[] coord1, double[] coord2)
          Computes the distance between two points.
 boolean equals(Object object, ComparisonMode mode)
          Compares this coordinate reference system with the specified object for equality.
 String formatWKT(Formatter formatter)
          Formats the inner part of a Well Known Text (WKT) element.
 CoordinateSystem getCoordinateSystem()
          Returns the coordinate system.
 
Methods inherited from class AbstractReferenceSystem
getDomainOfValidity, getScope
 
Methods inherited from class AbstractIdentifiedObject
equals, equals, equals, equals, getAlias, getIdentifier, getIdentifier, getIdentifiers, getName, getName, getName, getProperties, getProperties, getRemarks, hashCode, nameMatches, nameMatches, nameMatches
 
Methods inherited from class FormattableObject
getDefaultIndentation, print, setDefaultIndentation, toString, toWKT, toWKT, toWKT
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ReferenceSystem
getDomainOfValidity, getScope
 
Methods inherited from interface IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKT
 

Constructor Detail

AbstractCRS

public AbstractCRS(CoordinateReferenceSystem 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 Geotk 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

AbstractCRS

public AbstractCRS(Map<String,?> properties,
                   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".
cs - The coordinate system.
Method Detail

getCoordinateSystem

public CoordinateSystem getCoordinateSystem()
Returns the coordinate system.

Specified by:
getCoordinateSystem in interface CoordinateReferenceSystem

distance

public Measure distance(double[] coord1,
                        double[] coord2)
                 throws UnsupportedOperationException,
                        MismatchedDimensionException
Computes the distance between two points. This convenience method delegates the work to the underlyling coordinate system, if possible.

Parameters:
coord1 - Coordinates of the first point.
coord2 - Coordinates of the second point.
Returns:
The distance between coord1 and coord2.
Throws:
UnsupportedOperationException - if this coordinate reference system can't compute distances.
MismatchedDimensionException - if a coordinate doesn't have the expected dimension.

equals

public boolean equals(Object object,
                      ComparisonMode mode)
Compares this coordinate reference system with the specified object for equality. If the mode argument value is STRICT or BY_CONTRACT, then all available properties are compared including the domain of validity and the scope.

Specified by:
equals in interface LenientComparable
Overrides:
equals in class AbstractReferenceSystem
Parameters:
object - The object to compare to this.
mode - STRICT for performing a strict comparison, or IGNORE_METADATA for comparing only properties relevant to transformations.
Returns:
true if both objects are equal.

computeHashCode

protected int computeHashCode()
Computes a hash value for this identified object. This method is invoked by AbstractIdentifiedObject.hashCode() when first needed.

Implementation specific feature
In the Geotk implementation, the name, identifiers and remarks are not used for hash code computation. Consequently two identified objects will return the same hash value if they are equal in the sense of equals(…, ComparisonMode.IGNORE_METADATA). This feature allows users to implement metadata-insensitive HashMap.

Overrides:
computeHashCode in class AbstractIdentifiedObject
Returns:
The hash code value. This value may change between different execution of the Geotk library.

formatWKT

public String formatWKT(Formatter formatter)
Formats the inner part of a Well Known Text (WKT) element. The default implementation writes the following elements:

Specified by:
formatWKT in interface Formattable
Overrides:
formatWKT in class FormattableObject
Parameters:
formatter - The formatter to use.
Returns:
The name of the WKT element type (e.g. "GEOGCS").
See Also:
FormattableObject.toWKT(), FormattableObject.toString()


Copyright © 2009-2011 Geotoolkit.org. All Rights Reserved.