Hello all
Starting SIS 0.4 work, I removed LatLon and LatLonRect as per [1] and
[2]. Those classes were deprecated in SIS 0.3 (not yet released). Those
classes are replaced by DirectPosition2D and Envelope2D, which more
closely follow ISO/OGC objects.
The LatLonRect.getJavaRectangles() method has been ported to
Envelope2D.toRectangles() [3]. Some differences in the Envelope2D method
compared to the LatLonRect one are:
* Returns an empty array if the envelope is empty.
* Do not shift the coordinates by +90°N and +180°E. If such shift is
desired, it will be the work of coordinate transformation services.
* The longitude axis and the 180° limit is fetched by inspection of
the associated Coordinate Reference System (CRS) object, rather than
being hard-coded. Longitude is not necessarily the first or second
axis, since it depends on the CRS definition. We may have no
longitude at all (e.g. projected coordinates). Limit may be 200
grads instead than 180°. The wraparound axis may be something else
than longitude (e.g. time axis in climatology).
* A multi-dimensional variant (> 2D) of this method is provided in
GeneralEnvelope.toSimpleEnvelopes().
The LatLon.getNormLon() method has been refactored as
GeneralDirectPosition.normalize(). The main difference is that the new
method normalizes the ordinate values in-place instead than returning
normalized longitude, because we don't know in advance which axis will
be normalized (we may have no longitude at all, etc.).
While the above has been tested locally on my machine, it may take a few
weeks before it works as described on trunk because it requires an
implementation of GeographicCRS, which has not yet been ported to SIS.
I'm starting this port this week.
One remaining class to refactor is LatLonPointRadius. This class
contains the following methods:
* getCircularRegionApproximation
* getRectangularRegionApproximation
I guess that those methods should be moved elsewhere, in some
computational classes. However I don't know yet where to put them. One
possible candidate would be org.apache.sis.distance.DistanceUtils, but
this is not really distance computation... However it may be a temporary
position since I would like to propose modification to DistanceUtils
later too (something along the line of the "geodetic calculator"
provided in the geotk).
Does anyone would like to share comments, though or concerns?
Martin
[1] http://issues.apache.org/jira/browse/SIS-68
[2] http://issues.apache.org/jira/browse/SIS-69
[3]
http://builds.apache.org/job/sis-jdk7/site/apidocs/org/apache/sis/geometry/Envelope2D.html#toRectangles%28%29