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, ornullif none.private static final longFor cross-version compatibility.Fields inherited from class org.apache.sis.internal.referencing.provider.AbstractProvider
sourceCSType, sourceOnEllipsoid, targetCSType, targetOnEllipsoidFields inherited from class org.apache.sis.referencing.AbstractIdentifiedObject
DEPRECATED_KEY, LOCALE_KEYFields inherited from interface org.opengis.referencing.IdentifiedObject
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEYFields 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 ofGeodeticOperationis usually the same operation with parameter signs inverted.final org.opengis.referencing.operation.OperationMethodredimension(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, ornullif none.Methods inherited from class org.apache.sis.internal.referencing.provider.AbstractProvider
addIdentifierAndLegacy, addNameAndLegacy, builder, createLatitude, createLongitude, createMandatoryLatitude, createScale, createShift, createZeroConstant, getOperationType, recoverableException, resolveAmbiguityMethods inherited from class org.apache.sis.referencing.operation.DefaultOperationMethod
castOrCopy, computeHashCode, equals, formatTo, getFormula, getInterface, getParameters, getSourceDimensions, getTargetDimensions, redimensionMethods inherited from class org.apache.sis.referencing.AbstractIdentifiedObject
castOrCopy, equals, formatTo, getAlias, getDescription, getIdentifiers, getName, getRemarks, hashCode, isDeprecated, isHeuristicMatchForNameMethods inherited from class org.apache.sis.io.wkt.FormattableObject
print, toString, toString, toWKTMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.opengis.referencing.IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKTMethods 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, ornullif 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, theOperationMethodtype 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 eithernullor 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 theCoordinateOperationinstances that use this method.parameters- description of parameters expected by this operation.sourceDimensions- number of dimensions in the source CRS of this operation method.sourceCSType- base interface of the coordinate system of source coordinates.sourceOnEllipsoid- whether the operation needs source ellipsoid axis lengths.targetDimensions- number of dimensions in the target CRS of this operation method.targetCSType- base interface of the coordinate system of target coordinates.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, ornullif 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:
redimensionin classDefaultOperationMethod- Parameters:
sourceDimensions- the desired number of input dimensions.targetDimensions- the desired number of output dimensions.- Returns:
- the redimensioned operation method, or
nullif none.
-
inverse
The inverse ofGeodeticOperationis usually the same operation with parameter signs inverted.- Overrides:
inversein classAbstractProvider- Returns:
thisfor mostGeodeticOperationinstances.- See Also:
-