Uploaded image for project: 'Spatial Information Systems'
  1. Spatial Information Systems
  2. SIS-162

Provide an AbstractCRS.subCRS(int lower, int upper) method

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Referencing
    • None

    Description

      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.

      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:

      public AbstractCRS subCRS(int lower, int upper, boolean allowCreateEllipsoidalHeight);
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            desruisseaux Martin Desruisseaux
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: