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

    • Type: Task
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 0.7, 0.8
    • Fix Version/s: 1.1
    • Component/s: Referencing
    • Labels:
      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

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

                Dates

                • Created:
                  Updated: