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

Cache CRS.findOperation(…, areaOfInteret) when area of interest is non null

    XMLWordPrintableJSON

Details

    • Task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 0.7, 0.8, 1.0, 1.1
    • 1.5
    • Referencing
    • None

    Description

      Calls to CRS.findOperation(sourceCRS, targetCRS, areaOfInterest) currently cache the CoordinateOperation only when areaOfInterest is null. It is hard to implement a general cache mechanism for all non-null area of interest, but we can implement an intermediate solution:

      1. When EPSGFactory or CoordinateOperationRegistry detects that there is only one CoordinateOperation for given source and target CRS, it automatically adds some sentinel value in PositionalAccuracy metadata. It could be some internal sub-class.
      2. When DefaultCoordinateOperationFactory sees above sentinel values, it allows caching even if areaOfInterest is non-null. Otherwise caching is enabled only if areaOfInterest is null, as today.
      3. After this optimization has been implemented, we should search for occurrences of factory() in Envelopes and replace them by calls to Envelope.findOperation(Envelope, Envelope).

      We could also take this opportunity for adding an information message if we detected may transformations for the same pair of CRS. Something like "Note: many transformations are defined for this pair of referencing systems in different domains of validity."

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated: