A Transformation can be defined as an mathematical operation which transforms some values into other values using a specified function. In geographic terms this means, that some incoming coordinate in a specified crs, must be transformed into a coordinate valid for some other crs.

A polynomial transformations use a polynomial to approximate a function which directly transforms coordinates from one crs into another.

Automatic loading of transformation classes

It is possible to create your own transformation classes, which the default provider {@link org.deegree.crs.configuration.deegree.DeegreeCRSProvider} will load automatically.

You can achieve this loading by supplying the class attribute to a crs:CoordinateSystem/crs:transformation element in the 'deegree-crs-configuration.xml'. This attribute must contain the full class name (with package), e.g. <crs:transformation class='my.package.and.transformation.Implementation'>

Because the loading is done with reflections your classes must sustain following criteria:
  1. It must be a sub class of {@link org.deegree.crs.transformations.polynomial.PolynomialTransformation}
  2. A constructor with following signature must be supplied:
    public MyTransformation(
        java.util.list<Double> aValues,
        java.util.list<Double> bValues,
        {@link org.deegree.crs.coordinatesystems.CoordinateSystem} targetCRS,
        java.util.List<org.w3c.dom.Element> yourTransformationElements
    );

    The first three parameters are common to all polynomial values (for an explanation of their meaning take a look at {@link org.deegree.crs.transformations.polynomial.PolynomialTransformation}). Again, the last list, will contain all xml-dom elements you supplied in the deegree configuration (child elements of the crs:transformation/crs:MyTransformation), thus relieving you of the parsing of the deegree-crs-configuration.xml document.

@author Rutger Bezema @author last edited by: $Author: rbezema $ @version $Revision: 10829 $, $Date: 2007-03-20 10:15:15 +0100 (Di, 20 Mrz 2007)$