Interface MathTransformProvider

All Known Implementing Classes:
AbridgedMolodensky, AbstractLambert, AbstractMercator, AbstractProvider, AbstractStereographic, Affine, AlbersEqualArea, AxisOrderReversal, AxisOrderReversal3D, AzimuthalEquidistantSpherical, CassiniSoldner, CoordinateFrameRotation, CoordinateFrameRotation2D, CoordinateFrameRotation3D, Equirectangular, FranceGeocentricInterpolation, GeocentricAffine, GeocentricAffineBetweenGeographic, GeocentricToGeographic, GeocentricToTopocentric, GeocentricTranslation, GeocentricTranslation2D, GeocentricTranslation3D, GeodeticOperation, Geographic2Dto3D, Geographic3Dto2D, GeographicAndVerticalOffsets, GeographicOffsets, GeographicOffsets2D, GeographicRedimension, GeographicToGeocentric, GeographicToTopocentric, HyperbolicCassiniSoldner, Interpolation1D, LambertAzimuthalEqualArea, LambertAzimuthalEqualAreaSpherical, LambertConformal1SP, LambertConformal2SP, LambertConformalBelgium, LambertConformalMichigan, LambertConformalWest, LambertCylindricalEqualArea, LambertCylindricalEqualAreaSpherical, LongitudeRotation, MapProjection, MapProjection3D, Mercator1SP, Mercator2SP, MercatorAuxiliarySphere, MercatorSpherical, MillerCylindrical, ModifiedAzimuthalEquidistant, Mollweide, Molodensky, MolodenskyInterpolation, NADCON, NorthPoleRotation, NTv1, NTv2, ObliqueMercator, ObliqueMercatorCenter, ObliqueMercatorTwoPoints, ObliqueMercatorTwoPointsCenter, ObliqueStereographic, Orthographic, PolarStereographicA, PolarStereographicB, PolarStereographicC, PolarStereographicNorth, PolarStereographicSouth, Polyconic, PositionVector7Param, PositionVector7Param2D, PositionVector7Param3D, PseudoMercator, PseudoPlateCarree, PseudoSinusoidal, RegionalMercator, SatelliteTracking, Sinusoidal, SouthPoleRotation, TransverseMercator, TransverseMercatorSouth, VerticalOffset, Wraparound, ZonedTransverseMercator
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface MathTransformProvider
An object capable to create MathTransform instances from given parameter values. This interface is the Apache SIS mechanism by which formula are concretized as Java code.

Implementations of this interface usually extend DefaultOperationMethod, but this is not mandatory. This interface can also be used alone since MathTransform instances can be created for other purpose than coordinate operations.

This interface is generally not used directly. The recommended way to get a MathTransform is to find the coordinate operation (generally from a pair of source and target CRS), then to invoke CoordinateOperation.getMathTransform(). Alternative, one can also use a math transform factory

How to add custom coordinate operations to Apache SIS

DefaultMathTransformFactory can discover automatically new coordinate operations (including map projections) by scanning the classpath. To define a custom coordinate operation, one needs to define a thread-safe class implementing both this MathTransformProvider interface and the OperationMethod one. While not mandatory, we suggest to extend DefaultOperationMethod. Example:
Then the fully-qualified class name of that implementation should be listed in a file reachable on the classpath with this exact name:
Since:
0.6
Version:
0.6
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    org.opengis.referencing.operation.MathTransform
    createMathTransform(org.opengis.referencing.operation.MathTransformFactory factory, org.opengis.parameter.ParameterValueGroup parameters)
    Creates a math transform from the specified group of parameter values.
  • Method Details

    • createMathTransform

      org.opengis.referencing.operation.MathTransform createMathTransform(org.opengis.referencing.operation.MathTransformFactory factory, org.opengis.parameter.ParameterValueGroup parameters) throws org.opengis.parameter.InvalidParameterNameException, org.opengis.parameter.ParameterNotFoundException, org.opengis.parameter.InvalidParameterValueException, org.opengis.util.FactoryException
      Creates a math transform from the specified group of parameter values.
      Implementation example: The following example shows how parameter values can be extracted before to instantiate the transform:

      Purpose of the factory argument

      Some math transforms may actually be implemented as a chain of operation steps, for example a concatenation of affine transforms with other kind of transforms. In such cases, implementations should use the given factory for creating the steps.
      Parameters:
      factory - the factory to use if this constructor needs to create other math transforms.
      parameters - the parameter values that define the transform to create.
      Returns:
      the math transform created from the given parameters.
      Throws:
      org.opengis.parameter.InvalidParameterNameException - if the given parameter group contains an unknown parameter.
      org.opengis.parameter.ParameterNotFoundException - if a required parameter was not found.
      org.opengis.parameter.InvalidParameterValueException - if a parameter has an invalid value.
      org.opengis.util.FactoryException - if the math transform cannot be created for some other reason (for example a required file was not found).