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

Attach filesAttach ScreenshotAdd voteVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments


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


      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."


        Issue Links


          This comment will be Viewable by All Users Viewable by All Users


            Unassigned Unassigned
            desruisseaux Martin Desruisseaux




                Issue deployment