Martin Desruisseaux created SIS-162: ---------------------------------------
Summary: Provide an AbstractCRS.subCRS(int lower, int upper) method Key: SIS-162 URL: https://issues.apache.org/jira/browse/SIS-162 Project: Spatial Information Systems Issue Type: New Feature Components: Referencing Reporter: Martin Desruisseaux We need some way to get the components of a spatio-temporal CRS over a range of indices. In Geotk we were used to provide a static {{CRS.getSubCRS(…)}} method. For Apache SIS, we should consider a member method in the {{AbstractCRS}} class instead. Reasons are: * Would allow caching (by generalizing the existing {{derived}} private map). * Implementation depends on the coordinate system and CRS type. In particular, getting the two-dimensional (_latitude_, _longitude_) part of a three-dimensional {{GeographicCRS}} is a common operation. It would be nice if SIS were able to find the instance declared in EPSG database. However since it would be a relatively costly operation, this would justify caching the result. h3. Implementation plan We may need to start the work in the coordinate system package: * Sub CS of a {{CartesianCS}} can be an other {{CartesianCS}}. * Sub CS of a {{SphericalCS}} or a {{CylindricalCS}} can be a {{PolarCS}}. In the CRS package, the {{CompoundCRS}}, {{GeographicCRS}} and {{EngineeringCRS}} among others would probably have their custom {{subCRS}} method implementation. The {{GeographicCRS}} special case handled by {{CRS.getHorizontalComponent(…)}} and {{CRS.getVerticalComponent(…)}} would need to move in some SIS internal package in order to allow {{DefaultGeographicCRS}} to share it. The same warning about ellipsoidal height would apply, so the actual method signature may be: {code:java} public AbstractCRS subCRS(int lower, int upper, boolean allowCreateEllipsoidalHeight); {code} -- This message was sent by Atlassian JIRA (v6.1.5#6160)