Class VerticalOffset

All Implemented Interfaces:
Serializable, Formattable, MathTransformProvider, Deprecable, LenientComparable, org.opengis.referencing.IdentifiedObject, org.opengis.referencing.operation.OperationMethod

public final class VerticalOffset extends GeodeticOperation
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₁ + offset
where 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 Details

    • serialVersionUID

      private static final long serialVersionUID
      Serial number for inter-operability with different versions.
      See Also:
    • PARAMETERS

      private static final org.opengis.parameter.ParameterDescriptorGroup PARAMETERS
      The 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 by DefaultMathTransformFactory 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 by DefaultMathTransformFactory. But if there is more special cases in a future SIS version, then we should make this method non-static and declare an overrideable postCreate method in AbstractProvider instead.
      Parameters:
      parameterized - the transform created by createMathTransform(…).
      after - the matrix for the operation to be concatenated after parameterized.
      Returns:
      the transform to use instead of parameterized.
      Throws:
      org.opengis.util.FactoryException - if an error occurred while creating the new transform.