|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
ObjectFactory
ReferencingFactory
AbstractCoordinateOperationFactory
DefaultCoordinateOperationFactory
@ThreadSafe public class DefaultCoordinateOperationFactory
Creates coordinate operations. This factory is capable to find
coordinate transformations or conversions
between two coordinate reference systems. It delegates
most of its work to one or many of createOperationStep methods. Subclasses can
override those methods in order to extend the factory capability to some more CRS.
| referencing/geotk-referencing (download) | View source code for this class |
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class Factory |
|---|
Factory.Availability, Factory.Organizer |
| Field Summary |
|---|
| Fields inherited from class AbstractCoordinateOperationFactory |
|---|
AXIS_CHANGES, DATUM_SHIFT, ELLIPSOID_SHIFT, GEOCENTRIC_CONVERSION, IDENTITY, INVERSE_OPERATION |
| Fields inherited from class ReferencingFactory |
|---|
LOGGER |
| Fields inherited from class Factory |
|---|
EMPTY_HINTS, hints |
| Constructor Summary | |
|---|---|
DefaultCoordinateOperationFactory()
Constructs a coordinate operation factory using the default factories. |
|
DefaultCoordinateOperationFactory(Hints userHints)
Constructs a coordinate operation factory using the specified hints. |
|
| Method Summary | |
|---|---|
protected CoordinateOperation |
createFromDatabase(CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS)
If the coordinate operation is explicitly defined in some database (typically EPSG), returns it. |
CoordinateOperation |
createOperation(CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS)
Returns an operation for conversion or transformation between two coordinate reference systems. |
CoordinateOperation |
createOperation(CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS,
OperationMethod method)
Returns an operation using a particular method for conversion or transformation between two coordinate reference systems. |
protected CoordinateOperation |
createOperationStep(CompoundCRS sourceCRS,
CompoundCRS targetCRS)
Creates an operation between two compound coordinate reference systems. |
protected CoordinateOperation |
createOperationStep(CompoundCRS sourceCRS,
SingleCRS targetCRS)
Creates an operation from a compound to a single coordinate reference systems. |
protected CoordinateOperation |
createOperationStep(GeocentricCRS sourceCRS,
GeocentricCRS targetCRS)
Creates an operation between two geocentric coordinate reference systems. |
protected CoordinateOperation |
createOperationStep(GeocentricCRS sourceCRS,
GeographicCRS targetCRS)
Creates an operation from a geocentric to a geographic coordinate reference systems. |
protected CoordinateOperation |
createOperationStep(GeographicCRS sourceCRS,
GeocentricCRS targetCRS)
Creates an operation from a geographic to a geocentric coordinate reference systems. |
protected CoordinateOperation |
createOperationStep(GeographicCRS sourceCRS,
GeographicCRS targetCRS)
Creates an operation between two geographic coordinate reference systems. |
protected CoordinateOperation |
createOperationStep(GeographicCRS sourceCRS,
ProjectedCRS targetCRS)
Creates an operation from a geographic to a projected coordinate reference system. |
protected CoordinateOperation |
createOperationStep(GeographicCRS sourceCRS,
VerticalCRS targetCRS)
Creates an operation between a geographic and a vertical coordinate reference systems. |
protected CoordinateOperation |
createOperationStep(ProjectedCRS sourceCRS,
GeographicCRS targetCRS)
Creates an operation from a projected to a geographic coordinate reference system. |
protected CoordinateOperation |
createOperationStep(ProjectedCRS sourceCRS,
ProjectedCRS targetCRS)
Creates an operation between two projected coordinate reference systems. |
protected CoordinateOperation |
createOperationStep(SingleCRS sourceCRS,
CompoundCRS targetCRS)
Creates an operation from a single to a compound coordinate reference system. |
protected CoordinateOperation |
createOperationStep(TemporalCRS sourceCRS,
TemporalCRS targetCRS)
Creates an operation between two temporal coordinate reference systems. |
protected CoordinateOperation |
createOperationStep(VerticalCRS sourceCRS,
VerticalCRS targetCRS)
Creates an operation between two vertical coordinate reference systems. |
protected void |
setOrdering(Factory.Organizer organizer)
Invoked by FactoryRegistry in order to set the ordering relative
to other factories. |
| Methods inherited from class ReferencingFactory |
|---|
ensureNonNull, getVendor |
| Methods inherited from class Factory |
|---|
availability, dispose, equals, hasCompatibleHints, hashCode, toString |
| Methods inherited from class Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface Factory |
|---|
getVendor |
| Constructor Detail |
|---|
public DefaultCoordinateOperationFactory()
public DefaultCoordinateOperationFactory(Hints userHints)
CRS, CS,
DATUM and MATH_TRANSFORM
FACTORY hints.
userHints - The hints, or null if none.| Method Detail |
|---|
protected void setOrdering(Factory.Organizer organizer)
FactoryRegistry in order to set the ordering relative
to other factories. The current implementation specifies that this factory should defer to
CachingCoordinateOperationFactory.
setOrdering in class Factory
public CoordinateOperation createOperation(CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS)
throws OperationNotFoundException,
FactoryException
The default implementation inspects the CRS and delegates the work to one or
many createOperationStep(...) methods. This method fails if no path
between the CRS is found.
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
OperationNotFoundException - if no operation path was found from sourceCRS
to targetCRS.
FactoryException - if the operation creation failed for some other reason.
public CoordinateOperation createOperation(CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS,
OperationMethod method)
throws OperationNotFoundException,
FactoryException
Current implementation ignores the method argument.
This behavior may change in a future Geotk version.
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.method - the algorithmic method for conversion or transformation.
OperationNotFoundException - if no operation path was found from sourceCRS
to targetCRS.
FactoryException - if the operation creation failed for some other reason.
protected CoordinateOperation createOperationStep(TemporalCRS sourceCRS,
TemporalCRS targetCRS)
throws FactoryException
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createOperationStep(VerticalCRS sourceCRS,
VerticalCRS targetCRS)
throws FactoryException
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createOperationStep(GeographicCRS sourceCRS,
VerticalCRS targetCRS)
throws FactoryException
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createOperationStep(GeographicCRS sourceCRS,
GeographicCRS targetCRS)
throws FactoryException
(NORTH,WEST) to (EAST,NORTH)), performs units conversion
and apply datum shifts if needed.
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createOperationStep(ProjectedCRS sourceCRS,
ProjectedCRS targetCRS)
throws FactoryException
sourceCRS to its base
geographic CRS.targetCRS.
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createOperationStep(GeographicCRS sourceCRS,
ProjectedCRS targetCRS)
throws FactoryException
sourceCRS → baseCRS → targetCRS
where the conversion from baseCRS to targetCRS is obtained from
targetCRS.getConversionFromBase().
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createOperationStep(ProjectedCRS sourceCRS,
GeographicCRS targetCRS)
throws FactoryException
sourceCRS → baseCRS → targetCRS
where the conversion from sourceCRS to baseCRS is obtained from the inverse of
sourceCRS.getConversionFromBase().
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createOperationStep(GeocentricCRS sourceCRS,
GeocentricCRS targetCRS)
throws FactoryException
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createOperationStep(GeographicCRS sourceCRS,
GeocentricCRS targetCRS)
throws FactoryException
"Ellipsoid_To_Geocentric" math transform.
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createOperationStep(GeocentricCRS sourceCRS,
GeographicCRS targetCRS)
throws FactoryException
"Geocentric_To_Ellipsoid" math transform.
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createOperationStep(CompoundCRS sourceCRS,
SingleCRS targetCRS)
throws FactoryException
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.sourceCRS uses a non-ellipsoidal height. We should replace
the non-ellipsoidal height by an ellipsoidal one, create a transformation step
for that (to be concatenated), and then try again this operation step.sourceCRS contains some extra axis, like a temporal CRS.
We should revisit this code in other to lets supplemental ordinates to be
pass through or removed.
protected CoordinateOperation createOperationStep(SingleCRS sourceCRS,
CompoundCRS targetCRS)
throws FactoryException
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createOperationStep(CompoundCRS sourceCRS,
CompoundCRS targetCRS)
throws FactoryException
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS.
FactoryException - If the operation can't be constructed.
protected CoordinateOperation createFromDatabase(CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS)
sourceCRS to targetCRS, or if this method
failed to create an operation from the database), returns null.
The default implementation always returns null, since there is no database
connected to a DefaultCoordinateOperationFactory instance. In other words,
the default implementation is "standalone": it tries to figure out transformation
paths by itself. Subclasses should override this method if they can fetch a more
accurate operation from some database. The mean subclass doing so is
AuthorityBackedFactory.
This method is invoked by createOperation(sourceCRS,
targetCRS) before to try to figure out a transformation path by itself. It is also
invoked by various createOperationStep(...) methods when an intermediate CRS was
obtained by GeneralDerivedCRS.getBaseCRS() (this case occurs especially during
geographic from/to projected CRS
operations). This method is not invoked for synthetic CRS generated by
createOperationStep(...), since those temporary CRS are not expected to exist
in a database.
sourceCRS - Input coordinate reference system.targetCRS - Output coordinate reference system.
sourceCRS to targetCRS if and only if
one is explicitly defined in some underlying database, or null otherwise.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||