Interface CoordinateOperationFactory
-
- All Superinterfaces:
Factory
,ObjectFactory
- All Known Implementing Classes:
AbstractCoordinateOperationFactory
,AuthorityBackedFactory
,BufferedCoordinateOperationFactory
,DefaultCoordinateOperationFactory
public interface CoordinateOperationFactory extends ObjectFactory
Creates coordinate operations. This factory is capable to find coordinate transformations or conversions between two coordinate reference systems.- Since:
- GeoAPI 1.0
- Author:
- Martin Desruisseaux (IRD)
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description CoordinateOperation
createConcatenatedOperation(Map<String,?> properties, CoordinateOperation... operations)
Creates a concatenated operation from a sequence of operations.Conversion
createDefiningConversion(Map<String,?> properties, OperationMethod method, ParameterValueGroup parameters)
Constructs a defining conversion from a set of properties.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.Set<CoordinateOperation>
findOperations(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS)
Returns all the available operations for conversion or transformation between two coordinate reference systems.
-
-
-
Method Detail
-
createOperation
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.
Implementations may try to query an authority factory first, and compute the operation next if no operation from
source
totarget
code was explicitly defined by the authority.- 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.
-
createOperation
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.
Example: A transformation between two geographic CRS using different datum requires a datum shift. Many methods exist for this purpose, including interpolations in a grid, a scale/rotation/translation in geocentric coordinates or the Molodenski approximation. When invoking
createOperation
without operation method, this factory may select by default the most accurate transformation (typically interpolation in a grid). When invokingcreateOperation
with an operation method, user can force usage of Molodenski approximation for instance.- 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.
-
createConcatenatedOperation
CoordinateOperation createConcatenatedOperation(Map<String,?> properties, CoordinateOperation... operations) throws FactoryException
Creates a concatenated operation from a sequence of operations.- Parameters:
properties
- Name and other properties to give to the new object. Available properties are listed there.operations
- The sequence of operations.- Returns:
- The concatenated operation.
- Throws:
FactoryException
- if the object creation failed.
-
createDefiningConversion
Conversion createDefiningConversion(Map<String,?> properties, OperationMethod method, ParameterValueGroup parameters) throws FactoryException
Constructs a defining conversion from a set of properties. Defining conversions have no source and target CRS, and do not need to have a math transform. Their sole purpose is to be given as an argument to derived CRS and projected CRS constructors.Some available properties are listed there. Additionally, the following properties are understood by this construtor:
Property name Value type Value given to "operationVersion" String
CoordinateOperation.getOperationVersion()
PositionalAccuracy[]
CoordinateOperation#getPositionalAccuracy
Extent
CoordinateOperation#getValidArea
"scope" String
orInternationalString
CoordinateOperation.getScope()
- Parameters:
properties
- Set of properties. Should contains at least"name"
.method
- The operation method.parameters
- The parameter values.- Returns:
- The defining conversion.
- Throws:
FactoryException
- if the object creation failed.- Since:
- GeoAPI 2.1
- See Also:
CRSFactory.createProjectedCRS(java.util.Map<java.lang.String, ?>, org.geotools.api.referencing.crs.GeographicCRS, org.geotools.api.referencing.operation.Conversion, org.geotools.api.referencing.cs.CartesianCS)
,CRSFactory.createDerivedCRS(java.util.Map<java.lang.String, ?>, org.geotools.api.referencing.crs.CoordinateReferenceSystem, org.geotools.api.referencing.operation.Conversion, org.geotools.api.referencing.cs.CoordinateSystem)
-
findOperations
Set<CoordinateOperation> findOperations(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS) throws FactoryException
Returns all the available operations for conversion or transformation between two coordinate reference systems. An empty set is returned if no operation exists.- Parameters:
sourceCRS
- Input coordinate reference system.targetCRS
- Output coordinate reference system.- Returns:
- A set of coordinate operations from
sourceCRS
totargetCRS
. - Throws:
FactoryException
- if there was a failure retrieving or creating the operations.
-
-