## 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:
  GeoAPI 1.0
Version:
  Implementation specification 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)` Deprecated. `CoordinateOperationFactory` is supposed to infers the operation from the CRS. In addition, more than one operation step may be involved in the path from `sourceCRS` to `targetCRS`, but this method has only one `method` argument.

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. 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` 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

    @Extension
    CoordinateOperation createOperation(CoordinateReferenceSystem sourceCRS,
                                                  CoordinateReferenceSystem targetCRS,
                                                  OperationMethod method)
                                        throws OperationNotFoundException,
                                               FactoryException

  Deprecated. `CoordinateOperationFactory` is supposed to infers the operation from the CRS. In addition, more than one operation step may be involved in the path from `sourceCRS` to `targetCRS`, but this method has only one `method` argument.

  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` to `targetCRS`.
  Throws:
    `OperationNotFoundException` - if no operation path was found from `sourceCRS` to `targetCRS`.
    `FactoryException` - if the operation creation failed for some other reason.

### createConcatenatedOperation

    @Extension
    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()`
  "coordinateOperationAccuracy" | `PositionalAccuracy[]` | `CoordinateOperation.getPositionalAccuracy()`
  "domainOfValidity" | `Extent` | `CoordinateOperation.getValidArea()`
  "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:
    GeoAPI 2.1
  See Also:
    `org.opengis.referencing.crs.CRSFactory#createdProjectedCRS`, `org.opengis.referencing.crs.CRSFactory#createdDerivedCRS`

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