Class InverseOperationMethod

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

final class InverseOperationMethod extends DefaultOperationMethod
Description of the inverse of another method. This class should be used only when no operation is defined for the inverse, or when the inverse operation cannot be represented by inverting the sign of parameters.
Since:
0.7
Version:
1.1
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      For cross-version compatibility.
      See Also:
    • inverse

      private final org.opengis.referencing.operation.OperationMethod inverse
      The original operation method for which this InverseOperationMethod is the inverse.
  • Constructor Details

    • InverseOperationMethod

      private InverseOperationMethod(Map<String,?> properties, org.opengis.referencing.operation.OperationMethod method)
      Creates the inverse of the given method.
  • Method Details

    • create

      static org.opengis.referencing.operation.OperationMethod create(org.opengis.referencing.operation.OperationMethod method, DefaultCoordinateOperationFactory factorySIS) throws org.opengis.util.FactoryException
      Returns or create the inverse of the given operation method. If the same operation method can be used for the inverse operation either with the exact same parameter values or with the sign of some values reversed, then the given method is returned as-is. Otherwise a synthetic method is created.
      Throws:
      org.opengis.util.FactoryException
    • properties

      static void properties(org.opengis.referencing.operation.SingleOperation source, Map<String,Object> target)
      Infers the properties to give to an inverse coordinate operation. The returned map will contain three kind of information:
      • Metadata (domain of validity, accuracy)
      • Parameter values, if possible
      This method copies accuracy and domain of validity metadata from the given operation. We presume that the inverse operation has the same accuracy than the direct operation.
      Note: in many cases, the inverse operation is numerically less accurate than the direct operation because it uses approximations like series expansions or iterative methods. However, the numerical errors caused by those approximations are not of interest here, because they are usually much smaller than the inaccuracy due to the stochastic nature of coordinate transformations (not to be confused with coordinate conversions; see ISO 19111 for more information).
      If the inverse of the given operation can be represented by inverting the sign of all numerical parameter values, then this method copies also those parameters in a "parameters" entry.
      Parameters:
      source - the operation for which to get the inverse parameters.
      target - where to store the inverse parameters.