Class LooselyDefinedMethod

java.lang.Object
org.apache.sis.referencing.operation.LooselyDefinedMethod

final class LooselyDefinedMethod extends Object
Operation methods that do not match exactly any of the predefined "standard" methods and for which we do not define unambiguous sets of parameters. Those methods could be replaced by concatenations of standard methods, but doing so would require more development work. In the meantime, we define those methods for avoiding to mislead users. For example, we should not call a coordinate operation "Affine" if it also performs conversion from geographic to geocentric coordinates.

Restrictions

We do not provide any mechanism for instantiating a CoordinateOperation from those methods. Consequently, a coordinate operation can be formatted in WKT with those operation methods, but can not be parsed. Attempt to parse such WKT will result in an error saying that the method is unknown. This is better than formatting WKT with a standard but wrong operation name, in which case parsing the WKT would produce unexpected results.

Future evolution

A cleaner approach would be to replace those methods by a concatenation of standard methods. DefaultMathTransformFactory.getLastMethodUsed() can be invoked after factory.createCoordinateSystemChange(…) for getting pieces of information needed, but we still have to put all the pieces together.
Since:
0.5
Version:
1.1
See Also:
  • Field Details

    • AFFINE_GEOCENTRIC

      static final DefaultOperationMethod AFFINE_GEOCENTRIC
      The "Affine parametric transformation in geocentric domain" method. It could be done by a concatenation of the following standard methods:
      1. "Geographic 2D to 3D conversion"
      2. "Geographic/geocentric conversions" (EPSG:9602)
      3. "Affine parametric transformation" (EPSG:9624)
      4. Inverse of "Geographic/geocentric conversions"
      5. "Geographic 3D to 2D conversion" (EPSG:9659)
      It is not implemented that way for now because we need more work for analyzing the source and target coordinate systems (they are not necessarily ellipsoidal, so some "Geographic/geocentric conversions" may need to be skipped or replaced by a conversion from/to a spherical CS), check the number of dimension, etc.
  • Constructor Details

    • LooselyDefinedMethod

      private LooselyDefinedMethod()
      Do not allow instantiation of this class.