org.opengis.referencing.operation
Interface CoordinateOperationFactory

All Superinterfaces:
Factory, ObjectFactory

@UML(identifier="CT_CoordinateTransformationFactory",
     specification=OGC_01009)
public interface CoordinateOperationFactory
extends ObjectFactory

Creates coordinate operations. This factory is capable to find coordinate transformations or conversions between two coordinate reference systems.

Since:
1.0

Method Summary
 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.
 
Methods inherited from interface Factory
getVendor
 

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.

Implementations may try to query an authority factory first, and compute the operation next if no operation from source to target code was explicitly defined by the authority.

Parameters:
sourceCRS - Input coordinate reference system.
targetCRS - Output coordinate reference system.
Returns:
A coordinate operation from sourceCRS to targetCRS.
Throws:
OperationNotFoundException - if no operation path was found from sourceCRS to targetCRS.
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.

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 invoking createOperation 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 to targetCRS.
Throws:
OperationNotFoundException - if no operation path was found from sourceCRS to targetCRS.
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
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 constructor:

Property name Value type Value given to
 "operationVersion"   String   CoordinateOperation.getOperationVersion()
 "coordinateOperationAccuracy"   PositionalAccuracy[]   CoordinateOperation.getCoordinateOperationAccuracy()
 "domainOfValidity"   Extent   CoordinateOperation.getDomainOfValidity()
 "scope"   String or InternationalString   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:
2.1
See Also:
CRSFactory.createProjectedCRS(Map, GeographicCRS, Conversion, CartesianCS), CRSFactory.createDerivedCRS(Map, CoordinateReferenceSystem, Conversion, CoordinateSystem)


Copyright © 1994-2011 Open Geospatial Consortium. All Rights Reserved.