Class DefaultCoordinateOperationFactory
- Object
-
- AbstractFactory
-
- ReferencingFactory
-
- AbstractCoordinateOperationFactory
-
- DefaultCoordinateOperationFactory
-
- All Implemented Interfaces:
Factory
,ObjectFactory
,CoordinateOperationFactory
,Factory
,RegistrableFactory
- Direct Known Subclasses:
AuthorityBackedFactory
public class DefaultCoordinateOperationFactory extends AbstractCoordinateOperationFactory
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 ofcreateOperationStep
methods. Subclasses can override those methods in order to extend the factory capability to some more CRS.- Since:
- 2.1
- Author:
- Martin Desruisseaux (IRD)
-
-
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 AbstractFactory
hints, MAXIMUM_PRIORITY, MINIMUM_PRIORITY, NORMAL_PRIORITY, priority
-
-
Constructor Summary
Constructors Constructor Description DefaultCoordinateOperationFactory()
Constructs a coordinate operation factory using the default factories.DefaultCoordinateOperationFactory(Hints userHints)
Constructs a coordinate operation factory using the specified hints.DefaultCoordinateOperationFactory(Hints userHints, int priority)
Constructs a coordinate operation factory using the specified hints and priority.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 Set<CoordinateOperation>
findFromDatabase(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS, int limit)
Returns a list of available coordinate operations explicitly defined in some database (typically EPSG), for the provided CRS pair.Set<CoordinateOperation>
findOperations(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS)
Returns all the available operations for conversion or transformation between two coordinate reference systems.protected Set<CoordinateOperation>
findOperations(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS, int limit)
Returns all the available operations for conversion or transformation between two coordinate reference systems.protected Set<CoordinateOperation>
findOperationSteps(CompoundCRS sourceCRS, CompoundCRS targetCRS, int limit)
Returns all available operations between two compound coordinate reference systems.protected Set<CoordinateOperation>
findOperationSteps(CompoundCRS sourceCRS, SingleCRS targetCRS, int limit)
Returns all available operations from a compound to a single coordinate reference system.protected Set<CoordinateOperation>
findOperationSteps(GeographicCRS sourceCRS, ProjectedCRS targetCRS, int limit)
Returns all available operations from a geographic to a projected coordinate reference system.protected Set<CoordinateOperation>
findOperationSteps(ProjectedCRS sourceCRS, GeographicCRS targetCRS, int limit)
Returns all available operations from a projected to a geographic coordinate reference system.protected Set<CoordinateOperation>
findOperationSteps(ProjectedCRS sourceCRS, ProjectedCRS targetCRS, int limit)
Returns all available operations between two projected coordinate reference systems.protected Set<CoordinateOperation>
findOperationSteps(SingleCRS sourceCRS, CompoundCRS targetCRS, int limit)
Returns all available operations from a single to a compound coordinate reference system.-
Methods inherited from class AbstractCoordinateOperationFactory
concatenate, concatenate, concatenate, concatenate, createConcatenatedOperation, createDefiningConversion, createFromAffineTransform, createFromMathTransform, createFromMathTransform, createFromParameters, ensureNonNull, getErrorMessage, getImplementationHints, getMathTransformFactory, inverse, swapAndScaleAxis
-
Methods inherited from class ReferencingFactory
getVendor
-
Methods inherited from class AbstractFactory
addImplementationHints, equals, getPriority, hashCode, onDeregistration, onRegistration, toString
-
-
-
-
Constructor Detail
-
DefaultCoordinateOperationFactory
public DefaultCoordinateOperationFactory()
Constructs a coordinate operation factory using the default factories.
-
DefaultCoordinateOperationFactory
public DefaultCoordinateOperationFactory(Hints userHints)
Constructs a coordinate operation factory using the specified hints. This constructor recognizes theCRS
,CS
,DATUM
andMATH_TRANSFORM
FACTORY
hints.- Parameters:
userHints
- The hints, ornull
if none.
-
DefaultCoordinateOperationFactory
public DefaultCoordinateOperationFactory(Hints userHints, int priority)
Constructs a coordinate operation factory using the specified hints and priority. This constructor recognizes theCRS
,CS
,DATUM
andMATH_TRANSFORM
FACTORY
hints.- Parameters:
userHints
- The hints, ornull
if none.priority
- The priority for this factory, as a number betweenMINIMUM_PRIORITY
andMAXIMUM_PRIORITY
inclusive.- Since:
- 2.2
-
-
Method Detail
-
createOperation
public CoordinateOperation createOperation(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS) throws OperationNotFoundException, FactoryException
Returns an operation for conversion or transformation between two coordinate reference systems. If an operation exists, it is returned. If more than one operation exists, the default is returned. If no operation exists, then the exception is thrown.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.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
OperationNotFoundException
- if no operation path was found fromsourceCRS
totargetCRS
.FactoryException
- if the operation creation failed for some other reason.
-
findOperations
public Set<CoordinateOperation> findOperations(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS) throws FactoryException
Returns all the available operations for conversion or transformation between two coordinate reference systems. If no operation exists, then an empty set is returned.The default implementation inspects the CRS and delegates the work to one or many
createOperationStep(...)
methods. This method fails if no path between the CRSs is found.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A
Set
of coordinate operations fromsourceCRS
totargetCRS
. - Throws:
FactoryException
- if the operation creation failed for some other reason.
-
findOperations
protected Set<CoordinateOperation> findOperations(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS, int limit) throws FactoryException
Returns all the available operations for conversion or transformation between two coordinate reference systems. If no operation exists, then an empty set is returned.The default implementation inspects the CRS and delegates the work to one or many
createOperationStep(...)
methods. This method fails if no path between the CRSs is found.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.limit
- The maximum number of operations to be returned. Use -1 to return all the available operations. Use 1 to return just one operations. Currently, the behavior for other values oflimit
is undefined.- Returns:
- A
Set
of coordinate operations fromsourceCRS
totargetCRS
. - Throws:
FactoryException
- if the operation creation failed for some other reason.
-
createOperation
public CoordinateOperation createOperation(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS, OperationMethod method) throws OperationNotFoundException, FactoryException
Returns an operation using a particular method for conversion or transformation between two coordinate reference systems. If the operation exists on the implementation, then it is returned. If the operation does not exist on the implementation, then the implementation has the option of inferring the operation from the argument objects. If for whatever reason the specified operation will not be returned, then the exception is thrown.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.method
- the algorithmic method for conversion or transformation- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
OperationNotFoundException
- if no operation path was found fromsourceCRS
totargetCRS
.FactoryException
- if the operation creation failed for some other reason.
-
createOperationStep
protected CoordinateOperation createOperationStep(TemporalCRS sourceCRS, TemporalCRS targetCRS) throws FactoryException
Creates an operation between two temporal coordinate reference systems. The default implementation checks if both CRS use the same datum, and then adjusts for axis direction, units and epoch.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createOperationStep
protected CoordinateOperation createOperationStep(VerticalCRS sourceCRS, VerticalCRS targetCRS) throws FactoryException
Creates an operation between two vertical coordinate reference systems. The default implementation checks if both CRS use the same datum, and then adjusts for axis direction and units.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createOperationStep
protected CoordinateOperation createOperationStep(GeographicCRS sourceCRS, VerticalCRS targetCRS) throws FactoryException
Creates an operation between a geographic and a vertical coordinate reference systems. The default implementation accepts the conversion only if the geographic CRS is a tri dimensional one and the vertical CRS is for height above the ellipsoid. More elaborated operation, like transformation from ellipsoidal to geoidal height, should be implemented here.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createOperationStep
protected CoordinateOperation createOperationStep(GeographicCRS sourceCRS, GeographicCRS targetCRS) throws FactoryException
Creates an operation between two geographic coordinate reference systems. The default implementation can adjust axis order and orientation (e.g. transforming from(NORTH,WEST)
to(EAST,NORTH)
), performs units conversion and apply datum shifts if needed.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createOperationStep
protected CoordinateOperation createOperationStep(ProjectedCRS sourceCRS, ProjectedCRS targetCRS) throws FactoryException
Creates an operation between two projected coordinate reference systems. The default implementation can adjust axis order and orientation. It also performs units conversion if it is the only extra change needed. Otherwise, it performs three steps:- Unproject from
sourceCRS
to its base geographic CRS. - Convert the source to target base geographic CRS.
- Project from the base geographic CRS to the
targetCRS
.
- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
- Unproject from
-
findOperationSteps
protected Set<CoordinateOperation> findOperationSteps(ProjectedCRS sourceCRS, ProjectedCRS targetCRS, int limit) throws FactoryException
Returns all available operations between two projected coordinate reference systems. The default implementation can adjust axis order and orientation. It also performs units conversion if it is the only extra change needed. Otherwise, it performs three steps:- Unproject from
sourceCRS
to its base geographic CRS. - Convert the source to target base geographic CRS.
- Project from the base geographic CRS to the
targetCRS
.
- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.limit
- The maximum number of operations to be returned. Use -1 to return all the available operations. Use 1 to return just one operation. Currently, the behavior for other values oflimit
is undefined.- Returns:
- A
Set
of coordinate operations fromsourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
- Unproject from
-
createOperationStep
protected CoordinateOperation createOperationStep(GeographicCRS sourceCRS, ProjectedCRS targetCRS) throws FactoryException
Creates an operation from a geographic to a projected coordinate reference system. The default implementation constructs the following operation chain:sourceCRS → baseCRS → targetCRS
baseCRS
totargetCRS
is obtained fromtargetCRS.getConversionFromBase()
.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
findOperationSteps
protected Set<CoordinateOperation> findOperationSteps(GeographicCRS sourceCRS, ProjectedCRS targetCRS, int limit) throws FactoryException
Returns all available operations from a geographic to a projected coordinate reference system. The default implementation constructs the following operation chain:sourceCRS → baseCRS → targetCRS
baseCRS
totargetCRS
is obtained fromtargetCRS.getConversionFromBase()
.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.limit
- The maximum number of operations to be returned. Use -1 to return all the available operations. Use 1 to return just one operations. Currently, the behavior for other values oflimit
is undefined.- Returns:
- A
Set
of coordinate operations fromsourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createOperationStep
protected CoordinateOperation createOperationStep(ProjectedCRS sourceCRS, GeographicCRS targetCRS) throws FactoryException
Creates an operation from a projected to a geographic coordinate reference system. The default implementation constructs the following operation chain:sourceCRS → baseCRS → targetCRS
sourceCRS
tobaseCRS
is obtained from the inverse ofsourceCRS.getConversionFromBase()
.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
findOperationSteps
protected Set<CoordinateOperation> findOperationSteps(ProjectedCRS sourceCRS, GeographicCRS targetCRS, int limit) throws FactoryException
Returns all available operations from a projected to a geographic coordinate reference system. The default implementation constructs the following operation chain:sourceCRS → baseCRS → targetCRS
sourceCRS
tobaseCRS
is obtained from the inverse ofsourceCRS.getConversionFromBase()
.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.limit
- The maximum number of operations to be returned. Use -1 to return all the available operations. Use 1 to return just one operations. Currently, the behavior for other values oflimit
is undefined.- Returns:
- A
Set
of coordinate operations fromsourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createOperationStep
protected CoordinateOperation createOperationStep(GeocentricCRS sourceCRS, GeocentricCRS targetCRS) throws FactoryException
Creates an operation between two geocentric coordinate reference systems. The default implementation can adjust for axis order and orientation, performs units conversion and apply Bursa Wolf transformation if needed.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createOperationStep
protected CoordinateOperation createOperationStep(GeographicCRS sourceCRS, GeocentricCRS targetCRS) throws FactoryException
Creates an operation from a geographic to a geocentric coordinate reference systems. If the source CRS doesn't have a vertical axis, height above the ellipsoid will be assumed equals to zero everywhere. The default implementation uses the"Ellipsoid_To_Geocentric"
math transform.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createOperationStep
protected CoordinateOperation createOperationStep(GeocentricCRS sourceCRS, GeographicCRS targetCRS) throws FactoryException
Creates an operation from a geocentric to a geographic coordinate reference systems. The default implementation use the"Geocentric_To_Ellipsoid"
math transform.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createOperationStep
protected CoordinateOperation createOperationStep(CompoundCRS sourceCRS, SingleCRS targetCRS) throws FactoryException
Creates an operation from a compound to a single coordinate reference systems.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
findOperationSteps
protected Set<CoordinateOperation> findOperationSteps(CompoundCRS sourceCRS, SingleCRS targetCRS, int limit) throws FactoryException
Returns all available operations from a compound to a single coordinate reference system.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.limit
- The maximum number of operations to be returned. Use -1 to return all the available operations. Use 1 to return just one operations. Currently, the behavior for other values oflimit
is undefined.- Returns:
- A
Set
of coordinate operations fromsourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createOperationStep
protected CoordinateOperation createOperationStep(SingleCRS sourceCRS, CompoundCRS targetCRS) throws FactoryException
Creates an operation from a single to a compound coordinate reference system.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
findOperationSteps
protected Set<CoordinateOperation> findOperationSteps(SingleCRS sourceCRS, CompoundCRS targetCRS, int limit) throws FactoryException
Returns all available operations from a single to a compound coordinate reference system.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.limit
- The maximum number of operations to be returned. Use -1 to return all the available operations. Use 1 to return just one operations. Currently, the behavior for other values oflimit
is undefined.- Returns:
- A
Set
of coordinate operations fromsourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createOperationStep
protected CoordinateOperation createOperationStep(CompoundCRS sourceCRS, CompoundCRS targetCRS) throws FactoryException
Creates an operation between two compound coordinate reference systems.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
findOperationSteps
protected Set<CoordinateOperation> findOperationSteps(CompoundCRS sourceCRS, CompoundCRS targetCRS, int limit) throws FactoryException
Returns all available operations between two compound coordinate reference systems.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.limit
- The maximum number of operations to be returned. Use -1 to return all the available operations. Use 1 to return just one operations. Currently, the behavior for other values oflimit
is undefined.- Returns:
- A
Set
of coordinate operations fromsourceCRS
totargetCRS
. - Throws:
FactoryException
- If the operation can't be constructed.
-
createFromDatabase
protected CoordinateOperation createFromDatabase(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS)
If the coordinate operation is explicitly defined in some database (typically EPSG), returns it. Otherwise (if there is no database, or if the database doesn't contains an explicit operation fromsourceCRS
totargetCRS
, or if this method failed to create an operation from the database), returnsnull
.The default implementation always returns
null
, since there is no database connected to aDefaultCoordinateOperationFactory
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 isAuthorityBackedFactory
.This method is invoked by
createOperation(sourceCRS, targetCRS)
before to try to figure out a transformation path by itself. It is also invoked by variouscreateOperationStep(...)
methods when an intermediate CRS was obtained byGeneralDerivedCRS.getBaseCRS()
(this case occurs especially during geographic from/to projected CRS operations). This method is not invoked for synthetic CRS generated bycreateOperationStep(...)
, since those temporary CRS are not expected to exist in a database.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A coordinate operation from
sourceCRS
totargetCRS
if and only if one is explicitly defined in some underlying database, ornull
otherwise. - Since:
- 2.3
-
findFromDatabase
protected Set<CoordinateOperation> findFromDatabase(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS, int limit)
Returns a list of available coordinate operations explicitly defined in some database (typically EPSG), for the provided CRS pair. Otherwise (if there is no database, or if the database doesn't contains any explicit operation fromsourceCRS
totargetCRS
, or if this method failed to create the operations from the database), returns an emptySet
.The default implementation always returns an empty
Set
, since there is no database connected to aDefaultCoordinateOperationFactory
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 isAuthorityBackedFactory
.This method is invoked by
findOperations(sourceCRS, targetCRS)
before to try to figure out a transformation path by itself. It is also invoked by variousfindOperationSteps(...)
methods when an intermediate CRS was obtained byGeneralDerivedCRS.getBaseCRS()
(this case occurs especially during geographic from/to projected CRS operations). This method is not invoked for synthetic CRS generated bycreateOperationStep(...)
, since those temporary CRS are not expected to exist in a database.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.limit
- The maximum number of operations to be returned. Use -1 to return all the available operations. Use 1 to return just one operations. Currently, the behavior for other values oflimit
is undefined.- Returns:
- A set of coordinate operations from
sourceCRS
totargetCRS
if and only if one is explicitly defined in some underlying database, or an emptySet
otherwise. - Since:
- 2.3
-
-