Class GeodeticOperation
java.lang.Object
org.apache.sis.io.wkt.FormattableObject
org.apache.sis.referencing.AbstractIdentifiedObject
org.apache.sis.referencing.operation.DefaultOperationMethod
org.apache.sis.internal.referencing.provider.AbstractProvider
org.apache.sis.internal.referencing.provider.GeodeticOperation
- All Implemented Interfaces:
Serializable
,Formattable
,MathTransformProvider
,Deprecable
,LenientComparable
,org.opengis.referencing.IdentifiedObject
,org.opengis.referencing.operation.OperationMethod
- Direct Known Subclasses:
FranceGeocentricInterpolation
,GeocentricAffine
,GeocentricToGeographic
,GeographicOffsets
,GeographicRedimension
,GeographicToGeocentric
,VerticalOffset
Base class for providers that perform an operation on geographic or geocentric coordinates.
In the geographic case, those operations can have two-dimensional and three-dimensional variants
by adding or omitting the ellipsoidal height. Sometimes those variants are explicitly declared
in the EPSG database and are implemented in this package as separated operations. Sometimes those
variants are specific to Apache SIS and can be fetched only by a call to
redimension(int, int)
.- Since:
- 0.7
- Version:
- 1.3
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final GeodeticOperation[]
The providers for all combinations between 2D and 3D cases, ornull
if none.private static final long
For cross-version compatibility.Fields inherited from class org.apache.sis.internal.referencing.provider.AbstractProvider
sourceCSType, sourceOnEllipsoid, targetCSType, targetOnEllipsoid
Fields inherited from class org.apache.sis.referencing.AbstractIdentifiedObject
DEPRECATED_KEY, LOCALE_KEY
Fields inherited from interface org.opengis.referencing.IdentifiedObject
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
Fields inherited from interface org.opengis.referencing.operation.OperationMethod
FORMULA_KEY
-
Constructor Summary
ConstructorsConstructorDescriptionGeodeticOperation
(Class<? extends org.opengis.referencing.operation.SingleOperation> operationType, org.opengis.parameter.ParameterDescriptorGroup parameters, Class<? extends org.opengis.referencing.cs.CoordinateSystem> sourceCSType, int sourceDimensions, boolean sourceOnEllipsoid, Class<? extends org.opengis.referencing.cs.CoordinateSystem> targetCSType, int targetDimensions, boolean targetOnEllipsoid, GeodeticOperation[] redimensioned) Constructs a math transform provider from a set of parameters. -
Method Summary
Modifier and TypeMethodDescriptioninverse()
The inverse ofGeodeticOperation
is usually the same operation with parameter signs inverted.final org.opengis.referencing.operation.OperationMethod
redimension
(int sourceDimensions, int targetDimensions) Deprecated.ISO 19111:2019 removed source/target dimensions attributes.(package private) Class
<? extends GeodeticOperation> Returns the three-dimensional variant of this operation method, ornull
if none.Methods inherited from class org.apache.sis.internal.referencing.provider.AbstractProvider
addIdentifierAndLegacy, addNameAndLegacy, builder, createLatitude, createLongitude, createMandatoryLatitude, createScale, createShift, createZeroConstant, getOperationType, recoverableException, resolveAmbiguity
Methods inherited from class org.apache.sis.referencing.operation.DefaultOperationMethod
castOrCopy, computeHashCode, equals, formatTo, getFormula, getInterface, getParameters, getSourceDimensions, getTargetDimensions, redimension
Methods inherited from class org.apache.sis.referencing.AbstractIdentifiedObject
castOrCopy, equals, formatTo, getAlias, getDescription, getIdentifiers, getName, getRemarks, hashCode, isDeprecated, isHeuristicMatchForName
Methods inherited from class org.apache.sis.io.wkt.FormattableObject
print, toString, toString, toWKT
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.opengis.referencing.IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKT
Methods inherited from interface org.apache.sis.referencing.operation.transform.MathTransformProvider
createMathTransform
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDFor cross-version compatibility.- See Also:
-
redimensioned
The providers for all combinations between 2D and 3D cases, ornull
if none. If non-null, then array length shall be 4. Indices are built with following rules:- Bit 1: dimension of source coordinates (0 for 2D, 1 for 3D).
- Bit 0: dimension of target coordinates (0 for 2D, 1 for 3D).
Historical note: in ISO 19111:2007, theOperationMethod
type had two attributes for the number of source and target dimensions. Those attributes have been removed in ISO 19111:2019 revision because not really needed in practice. However, the EPSG database still distinguishes between 2D and 3D variants for some of those operations, so we still need the capability to switch operation methods according to the number of dimensions.
-
-
Constructor Details
-
GeodeticOperation
GeodeticOperation(Class<? extends org.opengis.referencing.operation.SingleOperation> operationType, org.opengis.parameter.ParameterDescriptorGroup parameters, Class<? extends org.opengis.referencing.cs.CoordinateSystem> sourceCSType, int sourceDimensions, boolean sourceOnEllipsoid, Class<? extends org.opengis.referencing.cs.CoordinateSystem> targetCSType, int targetDimensions, boolean targetOnEllipsoid, GeodeticOperation[] redimensioned) Constructs a math transform provider from a set of parameters. The provider name and identifiers will be the same than the parameter ones. This method expects an array eithernull
or of length 4 with methods of the following dimensions:- 2 → 2 dimensions in
redimensioned[0]
- 2 → 3 dimensions in
redimensioned[1]
- 3 → 2 dimensions in
redimensioned[2]
- 3 → 3 dimensions in
redimensioned[3]
- Parameters:
operationType
- base interface of theCoordinateOperation
instances that use this method.parameters
- description of parameters expected by this operation.sourceCSType
- base interface of the coordinate system of source coordinates.sourceDimensions
- number of dimensions in the source CRS of this operation method.sourceOnEllipsoid
- whether the operation needs source ellipsoid axis lengths.targetCSType
- base interface of the coordinate system of target coordinates.targetDimensions
- number of dimensions in the target CRS of this operation method.targetOnEllipsoid
- whether the operation needs target ellipsoid axis lengths.redimensioned
- providers for all combinations between 2D and 3D cases, ornull
.
- 2 → 2 dimensions in
-
-
Method Details
-
variant3D
Class<? extends GeodeticOperation> variant3D()Returns the three-dimensional variant of this operation method, ornull
if none. This method needs to be overridden only if the three-dimensional variant is an instance of a different class than this instance.This method is not needed on the JDK9 branch.
-
redimension
@Deprecated public final org.opengis.referencing.operation.OperationMethod redimension(int sourceDimensions, int targetDimensions) Deprecated.ISO 19111:2019 removed source/target dimensions attributes.Returns the elements of the given array at an index computed from the given dimensions.- Overrides:
redimension
in classDefaultOperationMethod
- Parameters:
sourceDimensions
- the desired number of input dimensions.targetDimensions
- the desired number of output dimensions.- Returns:
- the redimensioned operation method, or
null
if none.
-
inverse
The inverse ofGeodeticOperation
is usually the same operation with parameter signs inverted.- Overrides:
inverse
in classAbstractProvider
- Returns:
this
for mostGeodeticOperation
instances.- See Also:
-