public class DefaultCoordinateOperationFactory extends AbstractFactory implements CoordinateOperationFactory
operation method
, which can be
fetched from a set of predefined methods or
built explicitly.Defined in the sis-referencing
module
Constructor and Description |
---|
DefaultCoordinateOperationFactory()
Constructs a factory with no default properties.
|
DefaultCoordinateOperationFactory(Map<String,?> properties,
MathTransformFactory factory)
Constructs a factory with the given default properties.
|
Modifier and Type | Method and Description |
---|---|
protected Map<String,?> |
complete(Map<String,?> properties)
Returns the union of the given
properties map with the default properties given at
construction time. |
CoordinateOperation |
createConcatenatedOperation(Map<String,?> properties,
CoordinateOperation... operations)
Creates an ordered sequence of two or more single coordinate operations.
|
Conversion |
createDefiningConversion(Map<String,?> properties,
OperationMethod method,
ParameterValueGroup parameters)
Creates a defining conversion from the given operation parameters.
|
CoordinateOperation |
createOperation(CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS)
Finds or creates an operation for conversion or transformation between two coordinate reference systems.
|
CoordinateOperation |
createOperation(CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS,
CoordinateOperationContext context)
Finds or creates an operation for conversion or transformation between two coordinate reference systems.
|
CoordinateOperation |
createOperation(CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS,
OperationMethod method)
|
protected CoordinateOperationFinder |
createOperationFinder(CoordinateOperationAuthorityFactory registry,
CoordinateOperationContext context)
Creates the object which will perform the actual task of finding a coordinate operation path between two CRS.
|
OperationMethod |
createOperationMethod(Map<String,?> properties,
Integer sourceDimensions,
Integer targetDimensions,
ParameterDescriptorGroup parameters)
Creates an operation method from a set of properties and a descriptor group.
|
SingleOperation |
createSingleOperation(Map<String,?> properties,
CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS,
CoordinateReferenceSystem interpolationCRS,
OperationMethod method,
MathTransform transform)
Creates a transformation or conversion from the given properties.
|
OperationMethod |
getOperationMethod(String name)
Returns the operation method of the given name.
|
getVendor
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getVendor
public DefaultCoordinateOperationFactory()
public DefaultCoordinateOperationFactory(Map<String,?> properties, MathTransformFactory factory)
createFoo(Map<String,?>, …)
method.properties
- the default properties, or null
if none.factory
- the factory to use for creating math transforms,
or null
for the default factory.protected Map<String,?> complete(Map<String,?> properties)
properties
map with the default properties given at
construction time.
Entries in the given properties map have precedence, even if their
value is null
(i.e. a null value "erase" the default property value).
Entries with null value after the union will be omitted.
This method is invoked by all createFoo(Map<String,?>, …)
methods for determining
the properties to give to coordinate operation constructor.
properties
- the user-supplied properties.public OperationMethod getOperationMethod(String name) throws FactoryException
"EPSG:9807"
).
The search is case-insensitive and comparisons against method names can be
heuristic.
If more than one method match the given name, then the first (according iteration order) non-deprecated matching method is returned. If all matching methods are deprecated, the first one is returned.
name
- the name of the operation method to fetch.FactoryException
- if the requested operation method can not be fetched.DefaultMathTransformFactory.getOperationMethod(String)
public OperationMethod createOperationMethod(Map<String,?> properties, Integer sourceDimensions, Integer targetDimensions, ParameterDescriptorGroup parameters) throws FactoryException
null
if the method can work
with any number of dimensions (e.g. Affine Transform).
The properties given in argument follow the same rules than for the operation method constructor. The following table is a reminder of main (not all) properties:
Property name | Value type | Returned by |
---|---|---|
"name" | Identifier or String |
AbstractIdentifiedObject.getName() |
"alias" | GenericName or CharSequence (optionally as array) |
AbstractIdentifiedObject.getAlias() |
"identifiers" | Identifier (optionally as array) |
AbstractIdentifiedObject.getIdentifiers() |
"formula" | Formula , Citation or CharSequence |
DefaultOperationMethod.getFormula() |
properties
- set of properties. Shall contain at least "name"
.sourceDimensions
- number of dimensions in the source CRS of this operation method, or null
.targetDimensions
- number of dimensions in the target CRS of this operation method, or null
.parameters
- description of parameters expected by this operation.FactoryException
- if the object creation failed.DefaultOperationMethod.DefaultOperationMethod(Map, Integer, Integer, ParameterDescriptorGroup)
public Conversion createDefiningConversion(Map<String,?> properties, OperationMethod method, ParameterValueGroup parameters) throws FactoryException
The properties given in argument follow the same rules than for the coordinate conversion constructor. The following table is a reminder of main (not all) properties:
Property name | Value type | Returned by |
---|---|---|
"name" | Identifier or String |
AbstractIdentifiedObject.getName() |
"identifiers" | Identifier (optionally as array) |
AbstractIdentifiedObject.getIdentifiers() |
"domainOfValidity" | Extent |
AbstractCoordinateOperation.getDomainOfValidity() |
createDefiningConversion
in interface CoordinateOperationFactory
properties
- the properties to be given to the identified object.method
- the operation method.parameters
- the parameter values.FactoryException
- if the object creation failed.DefaultConversion.DefaultConversion(Map, OperationMethod, MathTransform, ParameterValueGroup)
public SingleOperation createSingleOperation(Map<String,?> properties, CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS, CoordinateReferenceSystem interpolationCRS, OperationMethod method, MathTransform transform) throws FactoryException
Transformation
, a Conversion
or a Projection
sub-type
(CylindricalProjection
, ConicProjection
or PlanarProjection
)
using the information provided by the given method.
The properties given in argument follow the same rules than for the coordinate operation constructor. The following table is a reminder of main (not all) properties:
Property name | Value type | Returned by |
---|---|---|
"name" | Identifier or String |
AbstractIdentifiedObject.getName() |
"identifiers" | Identifier (optionally as array) |
AbstractIdentifiedObject.getIdentifiers() |
"domainOfValidity" | Extent |
AbstractCoordinateOperation.getDomainOfValidity() |
properties
- the properties to be given to the identified object.sourceCRS
- the source CRS.targetCRS
- the target CRS.interpolationCRS
- the CRS of additional coordinates needed for the operation, or null
if none.method
- the coordinate operation method (mandatory in all cases).transform
- transform from positions in the source CRS to positions in the target CRS.FactoryException
- if the object creation failed.DefaultOperationMethod.getOperationType()
,
DefaultTransformation
,
DefaultConversion
public CoordinateOperation createConcatenatedOperation(Map<String,?> properties, CoordinateOperation... operations) throws FactoryException
The properties given in argument follow the same rules than for any other coordinate operation constructor. The following table is a reminder of main (not all) properties:
Property name | Value type | Returned by |
---|---|---|
"name" | Identifier or String |
AbstractIdentifiedObject.getName() |
"identifiers" | Identifier (optionally as array) |
AbstractIdentifiedObject.getIdentifiers() |
createConcatenatedOperation
in interface CoordinateOperationFactory
properties
- the properties to be given to the identified object.operations
- the sequence of operations. Shall contains at least two operations.FactoryException
- if the object creation failed.public CoordinateOperation createOperation(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS) throws OperationNotFoundException, FactoryException
The default implementation delegates to createOperation(sourceCRS, targetCRS, null)}
.
createOperation
in interface CoordinateOperationFactory
sourceCRS
- input coordinate reference system.targetCRS
- output coordinate reference system.sourceCRS
to targetCRS
.OperationNotFoundException
- if no operation path was found from sourceCRS
to targetCRS
.FactoryException
- if the operation creation failed for some other reason.public CoordinateOperation createOperation(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS, CoordinateOperationContext context) throws OperationNotFoundException, FactoryException
The default implementation performs the following steps:
createOperationFinder(CoordinateOperationAuthorityFactory, CoordinateOperationContext)
.CoordinateOperationFinder.createOperation(CoordinateReferenceSystem, CoordinateReferenceSystem)
on the object returned by the previous step.createOperationFinder(…)
if they need more control on
the way coordinate operations are inferred.sourceCRS
- input coordinate reference system.targetCRS
- output coordinate reference system.context
- area of interest and desired accuracy, or null
.sourceCRS
to targetCRS
.OperationNotFoundException
- if no operation path was found from sourceCRS
to targetCRS
.FactoryException
- if the operation creation failed for some other reason.CoordinateOperationFinder
protected CoordinateOperationFinder createOperationFinder(CoordinateOperationAuthorityFactory registry, CoordinateOperationContext context) throws FactoryException
createOperation(…)
when no operation was found in the cache.
The default implementation is straightforward:
return new CoordinateOperationFinder(registry, this, context);Subclasses can override this method is they want to modify the way coordinate operations are inferred.
registry
- the factory to use for creating operations as defined by authority, or null
if none.context
- the area of interest and desired accuracy, or null
if none.FactoryException
- if an error occurred while initializing the CoordinateOperationFinder
.@Deprecated public CoordinateOperation createOperation(CoordinateReferenceSystem sourceCRS, CoordinateReferenceSystem targetCRS, OperationMethod method) throws FactoryException
createOperation(CoordinateReferenceSystem, CoordinateReferenceSystem, CoordinateOperationContext)
.Current implementation ignores the method
argument.
This behavior may change in a future Apache SIS version.
createOperation
in interface CoordinateOperationFactory
sourceCRS
- input coordinate reference system.targetCRS
- output coordinate reference system.method
- the algorithmic method for conversion or transformation.sourceCRS
to targetCRS
.OperationNotFoundException
- if no operation path was found from sourceCRS
to targetCRS
.FactoryException
- if the operation creation failed for some other reason.Copyright © 2010–2017 The Apache Software Foundation. All rights reserved.