Hello all
We are in process of porting to Apache SIS the last major piece of the
"referencing by coordinates" module. A new method has been added in the
org.apache.sis.referencing.CRS class [1]. This method is going to be one
of the most frequently used method of the sis-referencing module,
together with CRS.forCode(String) and CRS.fromWKT(String):
CoordinateOperation findOperation(CoordinateReferenceSystem sourceCRS,
CoordinateReferenceSystem targetCRS,
GeographicBoundingBox areaOfInterest)
This method returns the object capable to transform coordinates
represented in the Coordinate Reference System 'sourceCRS' to
coordinates represented in system 'targetCRS'. This is still a work in
progres, but the current implementation can:
* Change axis order (e.g. from lat,lon to lon,lat)
* Change axis direction (e.g. from "up" to "down")
* Apply unit conversions (e.g. from feet to metres)
* Apply map projections (e.g. from lat,lon to Mercator)
* Apply datum-shift by "early-binding" method
* Apply longitude rotation (e.g. from Paris to Greenwich meridian)
* Change coordinate system type between Cartesian, ellipsoidal,
spherical, cylindrical or polar types.
Work that still need to be ported this week:
* Apply datum-shift by "late-binding" method
* Vertical coordinates transformation between different geoids
* Transformation between compound CRS (e.g. 3D or 4D)
* Caching
Differences relative to what existed in the previous project (Geotk):
* The method takes an optional "area of interest" argument. For
example transformation from NAD27 to NAD83 will differ depending on
whether the transformation is for USA or for Cuba.
* The method returns a CoordinateOperation instead than a
MathTransform. The metadata given by the CoordinateOperation are
considered important.
* No more "lenient" mode. The method will do its best even if no
datum-shift operation was found. The user should check the accuracy
information given by the returned CoordinateOperation if (s)he needs
to control whether a datum-shift has been properly applied or not.
* Conversions between Cartesian, spherical, cylindrical or polar
coordinate systems is a new feature.
* Longitude rotation in spherical and Cartesian space is a not feature
(previously it was done only in ellipsoidal coordinate systems).
Martin
[1]
https://builds.apache.org/job/sis-dev/javadoc/org/apache/sis/referencing/CRS.html#findOperation-org.opengis.referencing.crs.CoordinateReferenceSystem-org.opengis.referencing.crs.CoordinateReferenceSystem-org.opengis.metadata.extent.GeographicBoundingBox-