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

Replace DefaultEllipsoid.orthodromicDistance(…) method

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.4, 0.5, 0.6, 0.7, 0.8
    • Fix Version/s: 1.0
    • Component/s: Referencing
    • Labels:
      None

      Description

      The DefaultEllipsoid.orthodromicDistance method has the following problems:

      • Could have a better name.
      • It does not converge in some situations.
      • The wraparound over some non-convergence problems is itself erroneous.

      Charles Karney kindly listed the problems on the developer mailing list. A possible action would be to deprecate orthodromicDistance, to be replaced by the same GeodeticCalculator (or any other name) class than the one proposed for SIS-385.

      Historical note: orthodromicDistance was defined in the DefaultEllipsoid class because it made easy to override the method with code optimized for the spherical case. A future version could also override the method with code for triaxial ellipsoid. But experience in the Geotk project suggest that this method is almost never used, since GeodeticCalculator is used instead.

      As an alternative to deprecate DefaultEllipsoid.orthodromicDistance, we could keep it (after renaming), fix the issues identified by Charles, and design GeodeticCalculator as a class that use DefaultEllipsoid under the hood instead than re-implementing its own algorithm.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: