Predefined math transformations

Abridged Molodensky Transform

The standard way to convert coordinates from one datum to another is to convert first the coordinates to geocentric coordinates, apply the datum shift and rotation parameters, and then convert them back to geographic coordinates.
As an alternative to this transform, the IlvAbridgedMoldenskyTransform class implements directly a transform derived directly from the Molodensky formulas. The Abridged form of these formulas are quite satisfactory for three-parameter transformations.
This transform can work on either 2-D (only latitude and longitude are modified), or 3-D (the ellipsoidal height of coordinates is also modified).

Affine Transform

Affine transforms are commonly used in coordinate transformation. An affine transform is simply defined by a 4x4 double values matrix, and are applied to coordinates by multiplying them as if they were one 1x4 matrix.
Affine transforms are mainly used in JViews Maps for unit conversions in a transformation path.
Another use of affine transforms is to use them to implement Bursa Wolf transformations. The Bursa Wolf transformation is applied to geocentric coordinates to model a seven-parameter datum change. A seven-parameter datum is defined by the dX, dY, dZ axis shifts, the eX, eY, eZ rotations around the axis, and a scale factor expressed in parts per million. The matrix to use for Bursa Wolf transformation is:
mapsprg_code39.gif
mapsprg_code40.gif

Concatenated Transform

There are some cases where a straightforward mathematical function cannot be found to convert from one coordinate system to another. In those cases, some elementary transformations can be chained to build the full transformation. This is typically the case when converting from a projected coordinate system P1 to another one P2, using different datums: first you need to convert coordinates from P1 to the geographic coordinate system, then apply a datum conversion on these coordinate systems, and then convert them to the final coordinate system P2.
The IlvConcatenatedTransform class allows multiple transformation steps to be chained and used as a unique transformation.

Geocentric Transform

The function used to convert from geocentric to ellipsoid and the function used to convert from ellipsoid to geocentric are grouped together in the IlvGeocentricTransform class. Actually, the transformation is performed by specialized versions of this class:

Projection Transform

The IlvProjectionTransform class implements a transformation in which an IlvProjection is used to convert coordinates from geographic coordinates to a projected coordinate system, and vice versa.
This transform encapsulates a projection, and uses the forward method if the transformation is a forward transformation, or the inverse method if the transformation is an inverse transformation.