[geotk] Envelope/bbox transformation
Martin Desruisseaux
martin.desruisseaux at geomatys.fr
Thu Mar 10 17:06:43 EST 2011
Hello Aaron
A patch has been deployed, which should fix the NoninvertibleTransformException.
Please let me know if there is other issues after the one which has been fixed.
Le 10/03/11 05:37, Aaron Braeckel a écrit :
> are there any existing methods for transforming an entire Envelope into
> another CRS? This is not a trivial process given the potential non-linear
> relationships between different CRSs. We have previously dealt with this by
> subsampling along the edges of the envelope, applying a number of tests (like
> isNAN() on each point, and ensuring the edges of the subsampled polygon do not
> cross one another) getting the min/max of these coordinates, and so on.
> Before I head off and re-implement it, does anything like this exist in Geotk
> right now?
* The CRS.transform(MathTransform, Envelope) method performs a similar work,
subsampling only the corners and the centers of each edges.
* The CRS.transform(CoordinateOperation, Envelope) is like above, with
additional checks for poles. It is recommanded over the previous method
every time the CoordinateOperation object is available.
* The CRS.transform(Envelope, CoordinateReferenceSystem) method just
delegates to the above. It is more efficient to use the above methods if
there is many envelopes to transform to the same CRS.
Reference:
http://www.geotoolkit.org/apidocs/org/geotoolkit/referencing/CRS.html#transform%28org.opengis.geometry.Envelope,%20org.opengis.referencing.crs.CoordinateReferenceSystem%29
A better approach could be implemented, now that Geotk supports the derivative
of some projections. We could use some of the well-known numerical methods for
finding minimums or maximum inside an interval. This has not yet been done in
part because the MathTransform.derivative(DirectPosition) method is not yet
implemented for all projections (but it is implemented for the most common ones
however).
Regards,
Martin
More information about the Geotoolkit
mailing list