|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
ObjectFormattableObject
AbstractIdentifiedObject
AbstractCoordinateOperation
@Immutable public class AbstractCoordinateOperation
Establishes an association between a source and a target coordinate reference system, and provides a transform for transforming coordinates in the source CRS to coordinates in the target CRS. Many but not all coordinate operations (from CRS A to CRS B) also uniquely define the inverse operation (from CRS B to CRS A). In some cases, the operation method algorithm for the inverse operation is the same as for the forward algorithm, but the signs of some operation parameter values must be reversed. In other cases, different algorithms are required for the forward and inverse operations, but the same operation parameter values are used. If (some) entirely different parameter values are needed, a different coordinate operation shall be defined.
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.
| referencing/geotk-referencing (download) | View source code for this class |
| Field Summary | |
|---|---|
protected Extent |
domainOfValidity
Area in which this operation is valid, or null if not available. |
static PositionalAccuracy[] |
EMPTY_ACCURACY_ARRAY
An empty array of positional accuracy. |
protected CoordinateReferenceSystem |
sourceCRS
The source CRS, or null if not available. |
protected CoordinateReferenceSystem |
targetCRS
The target CRS, or null if not available. |
protected MathTransform |
transform
Transform from positions in the source coordinate reference system to positions in the target coordinate reference system. |
| 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 CoordinateOperation |
|---|
COORDINATE_OPERATION_ACCURACY_KEY, DOMAIN_OF_VALIDITY_KEY, OPERATION_VERSION_KEY, SCOPE_KEY |
| Fields inherited from interface IdentifiedObject |
|---|
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY |
| Constructor Summary | |
|---|---|
AbstractCoordinateOperation(Map<String,?> properties,
CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS,
MathTransform transform)
Constructs a coordinate operation from a set of properties. |
|
| Method Summary | |
|---|---|
protected int |
computeHashCode()
Computes a hash value for this identified object. |
boolean |
equals(Object object,
ComparisonMode mode)
Compares this coordinate operation with the specified object for equality. |
String |
formatWKT(Formatter formatter)
Formats this operation as a pseudo-WKT format. |
double |
getAccuracy()
Convenience method returning the accuracy in meters. |
static double |
getAccuracy(CoordinateOperation operation)
Convenience method returning the accuracy in meters for the specified operation. |
Collection<PositionalAccuracy> |
getCoordinateOperationAccuracy()
Estimate(s) of the impact of this operation on point accuracy. |
Extent |
getDomainOfValidity()
Area or region or timeframe in which this coordinate operation is valid. |
MathTransform |
getMathTransform()
Gets the math transform. |
String |
getOperationVersion()
Version of the coordinate transformation (i.e., instantiation due to the stochastic nature of the parameters). |
InternationalString |
getScope()
Description of domain of usage, or limitations of usage, for which this operation is valid. |
CoordinateReferenceSystem |
getSourceCRS()
Returns the source CRS. |
CoordinateReferenceSystem |
getTargetCRS()
Returns the target CRS. |
static Class<? extends CoordinateOperation> |
getType(CoordinateOperation operation)
Returns the most specific CoordinateOperation interface implemented by the
specified operation. |
| 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 IdentifiedObject |
|---|
getAlias, getIdentifiers, getName, getRemarks, toWKT |
| Field Detail |
|---|
public static final PositionalAccuracy[] EMPTY_ACCURACY_ARRAY
getCoordinateOperationAccuracy().toArray(EMPTY_ACCURACY_ARRAY);
getCoordinateOperationAccuracy()protected final CoordinateReferenceSystem sourceCRS
null if not available.
protected final CoordinateReferenceSystem targetCRS
null if not available.
protected final Extent domainOfValidity
null if not available.
protected final MathTransform transform
| Constructor Detail |
|---|
public AbstractCoordinateOperation(Map<String,?> properties,
CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS,
MathTransform transform)
| Property name | Value type | Value given to |
|---|---|---|
| "operationVersion" | String |
getOperationVersion() |
| "coordinateOperationAccuracy" | PositionalAccuracy (singleton or array) |
getCoordinateOperationAccuracy() |
| "domainOfValidity" | Extent |
getDomainOfValidity() |
| "scope" | String or InternationalString |
getScope() |
properties - Set of properties. Should contains at least "name".sourceCRS - The source CRS.targetCRS - The target CRS.transform - Transform from positions in the source CRS
to positions in the target CRS.| Method Detail |
|---|
public CoordinateReferenceSystem getSourceCRS()
getSourceCRS in interface CoordinateOperationpublic CoordinateReferenceSystem getTargetCRS()
getTargetCRS in interface CoordinateOperationpublic String getOperationVersion()
getOperationVersion in interface CoordinateOperationnull in none.public Collection<PositionalAccuracy> getCoordinateOperationAccuracy()
getCoordinateOperationAccuracy in interface CoordinateOperationgetAccuracy()public double getAccuracy()
getAccuracy(this). Subclasses
should override this method if they can provide a more accurate algorithm.
public static double getAccuracy(CoordinateOperation operation)
DATUM_SHIFT_APPLIED and
DATUM_SHIFT_OMITTED metadata.
If a datum shift has been applied, returns 25 meters. If a datum shift should have
been applied but has been omitted, returns 1000 meters. The 1000 meters value is
higher than the highest value (999 meters) found in the EPSG database version 6.7.
The 25 meters value is the next highest value found in the EPSG database for a
significant number of transformations.
operation - The operation to inspect for accuracy.
public Extent getDomainOfValidity()
null if not available.
getDomainOfValidity in interface CoordinateOperationpublic InternationalString getScope()
getScope in interface CoordinateOperationpublic MathTransform getMathTransform()
getMathTransform in interface CoordinateOperationpublic static Class<? extends CoordinateOperation> getType(CoordinateOperation operation)
CoordinateOperation interface implemented by the
specified operation. Special cases:
Transformation interface,
then this method returns Transformation.class. Transformation
has precedence over any other interface implemented by the operation.Conversion interface,
then this method returns the most specific Conversion sub-interface.SingleOperation interface,
then this method returns SingleOperation.class.ConcatenatedOperation interface,
then this method returns ConcatenatedOperation.class.CoordinateOperation.class.
operation - A coordinate operation.
public boolean equals(Object object,
ComparisonMode mode)
mode argument value is STRICT or
BY_CONTRACT, then all available properties are
compared including the domain of validity and
the scope.
equals in interface LenientComparableequals in class AbstractIdentifiedObjectobject - The object to compare to this.mode - STRICT for performing a strict comparison, or
IGNORE_METADATA for comparing only properties
relevant to transformations.
true if both objects are equal.protected int computeHashCode()
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.
computeHashCode in class AbstractIdentifiedObjectpublic String formatWKT(Formatter formatter)
formatWKT in interface FormattableformatWKT in class FormattableObjectformatter - The formatter to use.
FormattableObject.toWKT(),
FormattableObject.toString()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||