Interface CoordinateOperationFactory
-
- All Superinterfaces:
Factory
,ObjectFactory
@UML(identifier="CT_CoordinateTransformationFactory", specification=OGC_01009) public interface CoordinateOperationFactory extends ObjectFactory
Creates coordinate operations from parameter values, or infers operations from source and target CRS. This factory provides two groups of methods:- Finding instances provided by the implementation:
- Creating new instances from user-supplied parameters:
- Since:
- 1.0
-
-
Method Summary
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)
Creates 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.OperationMethod
createOperationMethod(Map<String,?> properties, Integer sourceDimension, Integer targetDimension, ParameterDescriptorGroup parameters)
Creates an operation method from a set of properties and a descriptor group.OperationMethod
getOperationMethod(String name)
Returns the build-in operation method of the given name.
-
-
-
Method Detail
-
createOperation
@UML(identifier="createFromCoordinateSystems", specification=OGC_01009) 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.
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.
createOperation(…)
without operation method, this factory may select by default the transformation specified by the authority. 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.
Departure from OGC/ISO specification:
This method has been added at user request, in order to specify the desired transformation path when many are available.
-
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.
Departure from OGC/ISO specification:
This method has been added because OGC 01-009 does not define a factory method for creating such object.
-
createDefiningConversion
Conversion createDefiningConversion(Map<String,?> properties, OperationMethod method, ParameterValueGroup parameters) throws FactoryException
Creates 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 constructor:
Keys for additional standard properties Property name Value type Returned by "domainOfValidity" Extent
CoordinateOperation.getDomainOfValidity()
"scope" String
orInternationalString
CoordinateOperation.getScope()
- Parameters:
properties
- set of properties. Shall contains at least"name"
.method
- the operation method. A value can be obtained bygetOperationMethod(String)
.parameters
- the parameter values. A default set of parameters can be obtained bymethod.getParameters().createValue()
and modified before to be given to this constructor.- Returns:
- the defining conversion.
- Throws:
FactoryException
- if the object creation failed.- See Also:
CRSFactory.createProjectedCRS(Map, GeographicCRS, Conversion, CartesianCS)
,CRSFactory.createDerivedCRS(Map, CoordinateReferenceSystem, Conversion, CoordinateSystem)
Departure from OGC/ISO specification:
The defining conversion concept appears in ISO 19111:2007 textual specification without formalization in UML diagrams. This concept has been formalized in GeoAPI in order to allow the creation ofProjectedCRS
instances.
-
createOperationMethod
OperationMethod createOperationMethod(Map<String,?> properties, Integer sourceDimension, Integer targetDimension, ParameterDescriptorGroup parameters) throws FactoryException
Creates an operation method from a set of properties and a descriptor group. This factory method allows the creation of arbitraryOperationMethod
instances. However some implementations may have a collection of build-in operation methods. For obtaining such build-in instance, seegetOperationMethod(String)
instead.Some available properties are listed there. Additionally, the following properties are understood by this constructor:
Keys for additional standard properties Property name Value type Returned by "formula" Formula
OperationMethod.getFormula()
- Parameters:
properties
- set of properties. Shall contains at least"name"
.sourceDimension
- number of dimensions in the source CRS of the operation method, ornull
.targetDimension
- number of dimensions in the target CRS of the operation method, ornull
.parameters
- a description of the parameters for the operation method.- Returns:
- the operation method.
- Throws:
FactoryException
- if the object creation failed.- Since:
- 3.1
Departure from OGC/ISO specification:
This method has been added because OGC 01-009 does not define a factory method for creating such object.
-
getOperationMethod
OperationMethod getOperationMethod(String name) throws NoSuchIdentifierException, FactoryException
Returns the build-in operation method of the given name. This is a helper method for usage of the following methods:createOperation(CoordinateReferenceSystem, CoordinateReferenceSystem, OperationMethod)
createDefiningConversion(Map, OperationMethod, ParameterValueGroup)
Example of operation method names OGC name EPSG name Mercator_1SP Mercator (variant A) Mercator_2SP Mercator (variant B) Transverse_Mercator Transverse Mercator Lambert_Conformal_Conic_1SP Lambert Conic Conformal (1SP) Lambert_Conformal_Conic_2SP Lambert Conic Conformal (2SP) Lambert_Azimuthal_Equal_Area Lambert Azimuthal Equal Area Albers_Conic_Equal_Area Albers Equal Area Cassini_Soldner Cassini-Soldner Orthographic Orthographic MathTransformFactory
, or delegate to theirCoordinateOperationAuthorityFactory
, or get the operation method in some other way at implementor choice.- Parameters:
name
- the name of the operation method to fetch.- Returns:
- the operation method of the given name.
- Throws:
NoSuchIdentifierException
- if no operation method of the given name is known to this factory.FactoryException
- if the method failed for some other reason.- Since:
- 3.1
- See Also:
MathTransformFactory.getAvailableMethods(Class)
,CoordinateOperationAuthorityFactory.createOperationMethod(String)
Departure from OGC/ISO specification:
This method has been added in order to free the user from choosing whether he should get the operation method fromCoordinateOperationAuthorityFactory
, or fromMathTransformFactory
, or creating it himself.
-
-