Class VerticalOffset
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
org.apache.sis.internal.referencing.provider.VerticalOffset
- All Implemented Interfaces:
Serializable
,Formattable
,MathTransformProvider
,Deprecable
,LenientComparable
,org.opengis.referencing.IdentifiedObject
,org.opengis.referencing.operation.OperationMethod
The provider for "Vertical Offset" (EPSG:9616).
The Apache SIS implementation of this operation method always perform the vertical offset in metres.
The vertical axis of source and target CRS shall be converted to metres before this operation is applied.
Axis direction
The EPSG guidance note defines this operation as (ignoring unit conversions):
X₂ = m⋅X₁ + offsetwhere m is +1 if source and target axes have the same direction, or -1 if they have opposite direction. Consequently, the offset value is always applied in the direction of the target axis. This is different than the Apache SIS design, which always interpret the parameter in the direction of a normalized coordinate axis (up in this case, regardless the source and target coordinate systems). Consequently, the sign of the "Vertical Offset" parameter value needs to be reversed if the target coordinate system axis is down.
- Since:
- 0.7
- Version:
- 1.3
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final org.opengis.parameter.ParameterDescriptorGroup
The group of all parameters expected by this coordinate operation.private static final long
Serial number for inter-operability with different versions.Fields inherited from class org.apache.sis.internal.referencing.provider.GeodeticOperation
redimensioned
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.opengis.referencing.operation.MathTransform
createMathTransform
(org.opengis.referencing.operation.MathTransformFactory factory, org.opengis.parameter.ParameterValueGroup values) Creates a transform from the specified group of parameter values.static org.opengis.referencing.operation.MathTransform
postCreate
(org.opengis.referencing.operation.MathTransform parameterized, org.opengis.referencing.operation.Matrix after) Invoked byDefaultMathTransformFactory
after the transform has been created but before it is concatenated with operations performing axis changes.Methods inherited from class org.apache.sis.internal.referencing.provider.GeodeticOperation
inverse, redimension, variant3D
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
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerial number for inter-operability with different versions.- See Also:
-
PARAMETERS
private static final org.opengis.parameter.ParameterDescriptorGroup PARAMETERSThe group of all parameters expected by this coordinate operation.
-
-
Constructor Details
-
VerticalOffset
public VerticalOffset()Constructs a provider with default parameters.
-
-
Method Details
-
createMathTransform
public org.opengis.referencing.operation.MathTransform createMathTransform(org.opengis.referencing.operation.MathTransformFactory factory, org.opengis.parameter.ParameterValueGroup values) throws org.opengis.parameter.ParameterNotFoundException Creates a transform from the specified group of parameter values. The parameter value is unconditionally converted to metres.- Parameters:
factory
- ignored (can be null).values
- the group of parameter values.- Returns:
- the created math transform.
- Throws:
org.opengis.parameter.ParameterNotFoundException
- if a required parameter was not found.
-
postCreate
public static org.opengis.referencing.operation.MathTransform postCreate(org.opengis.referencing.operation.MathTransform parameterized, org.opengis.referencing.operation.Matrix after) throws org.opengis.util.FactoryException Invoked byDefaultMathTransformFactory
after the transform has been created but before it is concatenated with operations performing axis changes. This method performs the parameter sign adjustment as documented in the class javadoc if and only if this method detects that the target axis is oriented toward down. This orientation is detected by a negative sign for the m₀₀ coefficient in the given 2×2 affine transform matrix.Implementation note: for now we define this method as a static one because it is the only special case handled byDefaultMathTransformFactory
. But if there is more special cases in a future SIS version, then we should make this method non-static and declare an overrideablepostCreate
method inAbstractProvider
instead.- Parameters:
parameterized
- the transform created bycreateMathTransform(…)
.after
- the matrix for the operation to be concatenated afterparameterized
.- Returns:
- the transform to use instead of
parameterized
. - Throws:
org.opengis.util.FactoryException
- if an error occurred while creating the new transform.
-