org.geotools.referencing.crs
Class AbstractDerivedCRS

Object
  extended by Formattable
      extended by AbstractIdentifiedObject
          extended by AbstractReferenceSystem
              extended by AbstractCRS
                  extended by AbstractSingleCRS
                      extended by AbstractDerivedCRS
All Implemented Interfaces:
Serializable, CoordinateReferenceSystem, GeneralDerivedCRS, SingleCRS, IdentifiedObject, ReferenceSystem
Direct Known Subclasses:
DefaultDerivedCRS, DefaultProjectedCRS

public class AbstractDerivedCRS
extends AbstractSingleCRS
implements GeneralDerivedCRS

A coordinate reference system that is defined by its coordinate conversion from another coordinate reference system (not by a datum).

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:
Serialized Form
Module:
modules/library/referencing (gt-referencing.jar)

Field Summary
static ThreadLocal<Boolean> _COMPARING
          A lock for avoiding never-ending recursivity in the equals method.
protected  CoordinateReferenceSystem baseCRS
          The base coordinate reference system.
static String CONVERSION_TYPE_KEY
          Key for the "conversionType" property to be given to the constructor.
protected  Conversion conversionFromBase
          The conversion from the base CRS to this CRS.
 
Fields inherited from class AbstractSingleCRS
datum
 
Fields inherited from class AbstractCRS
coordinateSystem
 
Fields inherited from class AbstractIdentifiedObject
EMPTY_ALIAS_ARRAY, EMPTY_IDENTIFIER_ARRAY, IDENTIFIER_COMPARATOR, NAME_COMPARATOR, REMARKS_COMPARATOR
 
Fields inherited from class Formattable
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
protected AbstractDerivedCRS(GeneralDerivedCRS crs)
          Constructs a new derived CRS with the same values than the specified one.
protected AbstractDerivedCRS(Map<String,?> properties, Conversion conversionFromBase, CoordinateReferenceSystem base, MathTransform baseToDerived, CoordinateSystem derivedCS)
          Constructs a derived CRS from a defining conversion.
protected AbstractDerivedCRS(Map<String,?> properties, CoordinateReferenceSystem base, MathTransform baseToDerived, CoordinateSystem derivedCS)
          Constructs a derived CRS from a set of properties.
 
Method Summary
 boolean equals(AbstractIdentifiedObject object, boolean compareMetadata)
          Compare this coordinate reference system with the specified object for equality.
protected  String formatWKT(Formatter formatter)
          Format the inner part of a Well Known Text (WKT) element.
 CoordinateReferenceSystem getBaseCRS()
          Returns the base coordinate reference system.
 Conversion getConversionFromBase()
          Returns the conversion from the base CRS to this CRS.
 int hashCode()
          Returns a hash value for this derived CRS.
 
Methods inherited from class AbstractSingleCRS
getAxis, getDatum, getDimension
 
Methods inherited from class AbstractCRS
distance, getCoordinateSystem
 
Methods inherited from class AbstractReferenceSystem
getDomainOfValidity, getScope, getValidArea
 
Methods inherited from class AbstractIdentifiedObject
asSet, ensureAngularUnit, ensureLinearUnit, ensureNonNull, ensureNonNull, ensureTimeUnit, equals, equals, equals, equals, getAlias, getIdentifier, getIdentifier, getIdentifiers, getName, getName, getName, getProperties, getProperties, getRemarks, nameMatches, nameMatches, nameMatches
 
Methods inherited from class Formattable
toString, toWKT, toWKT, toWKT
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface SingleCRS
getCoordinateSystem, getDatum
 
Methods inherited from interface ReferenceSystem
getDomainOfValidity, getScope
 
Methods inherited from interface IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKT
 

Field Detail

CONVERSION_TYPE_KEY

public static final String CONVERSION_TYPE_KEY
Key for the "conversionType" property to be given to the constructor. The value should be one of PlanarProjection.class, CylindricalProjection.class or ConicProjection.class.

This is a Geotools specific property used as a hint for creating a projection of proper type from a defining conversion. In many cases, this hint is not needed since Geotools is often capable to infer it. This hint is used mostly by advanced factories like the EPSG backed one.

Since:
2.4
See Also:
DefaultConversion.create(org.opengis.referencing.operation.Conversion, org.opengis.referencing.crs.CoordinateReferenceSystem, org.opengis.referencing.crs.CoordinateReferenceSystem, org.opengis.referencing.operation.MathTransform, java.lang.Class), Constant Field Values

_COMPARING

public static final ThreadLocal<Boolean> _COMPARING
A lock for avoiding never-ending recursivity in the equals method. This field contains a boolean flag set to true when a comparaison is in progress. This lock is necessary because AbstractDerivedCRS objects contain a conversionFromBase field, which contains a AbstractCoordinateOperation.targetCRS field set to this AbstractDerivedCRS object.

DO NOT USE THIS FIELD. It is strictly for internal use by equals(org.geotools.referencing.AbstractIdentifiedObject, boolean) and AbstractCoordinateOperation.equals(org.geotools.referencing.AbstractIdentifiedObject, boolean) methods.


baseCRS

protected final CoordinateReferenceSystem baseCRS
The base coordinate reference system.


conversionFromBase

protected final Conversion conversionFromBase
The conversion from the base CRS to this CRS.

Constructor Detail

AbstractDerivedCRS

protected AbstractDerivedCRS(GeneralDerivedCRS crs)
Constructs a new derived CRS 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

AbstractDerivedCRS

protected AbstractDerivedCRS(Map<String,?> properties,
                             Conversion conversionFromBase,
                             CoordinateReferenceSystem base,
                             MathTransform baseToDerived,
                             CoordinateSystem derivedCS)
                      throws MismatchedDimensionException
Constructs a derived CRS from a defining conversion. The properties are given unchanged to the super-class constructor.

Parameters:
properties - Name and other properties to give to the new derived CRS object.
conversionFromBase - The defining conversion.
base - Coordinate reference system to base the derived CRS on.
baseToDerived - The transform from the base CRS to returned CRS.
derivedCS - The coordinate system for the derived CRS. The number of axes must match the target dimension of the transform baseToDerived.
Throws:
MismatchedDimensionException - if the source and target dimension of baseToDerived don't match the dimension of base and derivedCS respectively.

AbstractDerivedCRS

protected AbstractDerivedCRS(Map<String,?> properties,
                             CoordinateReferenceSystem base,
                             MathTransform baseToDerived,
                             CoordinateSystem derivedCS)
                      throws MismatchedDimensionException
Constructs a derived CRS from a set of properties. A default operation method is inferred from the math transform. This is a convenience constructor that is not garanteed to work reliably for non-GeoTools implementations. Use the constructor expecting a defining conversion for more determinist result.

The properties are given unchanged to the super-class constructor. The following optional properties are also understood:

Property name Value type Value given to
 "conversion.name"   String   getConversionFromBase().getName()

Additional properties for the DefaultConversion object to be created can be specified with the "conversion." prefix added in front of property names (example: "conversion.remarks"). The same applies for operation method, using the "method." prefix.

Parameters:
properties - Name and other properties to give to the new derived CRS object and to the underlying conversion.
base - Coordinate reference system to base the derived CRS on.
baseToDerived - The transform from the base CRS to returned CRS.
derivedCS - The coordinate system for the derived CRS. The number of axes must match the target dimension of the transform baseToDerived.
Throws:
MismatchedDimensionException - if the source and target dimension of baseToDerived don't match the dimension of base and derivedCS respectively.
Since:
2.5
Method Detail

getBaseCRS

public CoordinateReferenceSystem getBaseCRS()
Returns the base coordinate reference system.

Specified by:
getBaseCRS in interface GeneralDerivedCRS
Returns:
The base coordinate reference system.

getConversionFromBase

public Conversion getConversionFromBase()
Returns the conversion from the base CRS to this CRS.

Specified by:
getConversionFromBase in interface GeneralDerivedCRS
Returns:
The conversion to this CRS.

equals

public boolean equals(AbstractIdentifiedObject object,
                      boolean compareMetadata)
Compare this coordinate reference system with the specified object for equality.

Overrides:
equals in class AbstractSingleCRS
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 derived CRS.

Overrides:
hashCode in class AbstractSingleCRS
Returns:
The hash code value. This value doesn't need to be the same in past or future versions of this class.

formatWKT

protected String formatWKT(Formatter formatter)
Format the inner part of a Well Known Text (WKT) element.

Overrides:
formatWKT in class AbstractCRS
Parameters:
formatter - The formatter to use.
Returns:
The name of the WKT element type, which is "FITTED_CS".
See Also:
Formattable.toWKT(), Formattable.toString()


Copyright © 1996-2009 Geotools. All Rights Reserved.