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
    XMLWordPrintableJSON

Details

    • Task
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 0.7, 0.8, 1.0, 1.1
    • 1.3
    • 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

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

          People

            Unassigned Unassigned
            desruisseaux Martin Desruisseaux

            Dates

              Created:
              Updated:

              Slack

                Issue deployment