For this purpose the CRSProvider interface is created. It allows the CRSConfiguration to rely on a wide variety of different 'crs-definitions-formats' for example deegree-crs, wkt (not implemented yet), proj4 or gml (not implementedj yet). The good thing is, the interface defines an export method, which can be called with a crs to receive a crs-definitions for the implementing interface, thus allowing to create an arbitrary configuration swift between the implementations.
The default crs configuration can be changed by editing the org.deegree.crs.configuration.crs_providers.properties
file, the default provider is {@link org.deegree.crs.configuration.deegree.DeegreeCRSProvider}.
You can achieve this loading by supplying the class
attribute to a crs:projectedCRS/crs:projection
or crs:coordinateSystem/crs:transformation
element in the 'deegree-crs-configuration.xml'. This attribute
must contain the full class name (with package), e.g. <crs:projection
class='my.package.and.projection.Implementation'>
public MyProjection(
{@link org.deegree.crs.coordinatesystems.GeographicCRS} underlyingCRS,
double falseNorthing,
double falseEasting,
javax.vecmath.Point2d naturalOrigin,
{@link org.deegree.crs.components.Unit} units,
double scale,
java.util.List<org.w3c.dom.Element> yourProjectionElements
);
The first six parameters are common to all projections (for an explanation of their meaning take a look at {@link org.deegree.crs.projections.Projection}). The last list, will contain all xml-dom elements you supplied in the deegree configuration (child elements of the crs:projection/crs:MyProjection), thus relieving you of the parsing of the deegree-crs-configuration.xml document.
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.