[ https://issues.apache.org/jira/browse/SIS-155?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Desruisseaux reopened SIS-155: ------------------------------------- > Area calculation on ellipsoid > ----------------------------- > > Key: SIS-155 > URL: https://issues.apache.org/jira/browse/SIS-155 > Project: Spatial Information Systems > Issue Type: New Feature > Components: Referencing > Reporter: Martin Desruisseaux > Assignee: Martin Desruisseaux > > We need a method for calculating the area inside a polygon on the ellipsoid. > Some useful references: > * [Algorithm to find the area of a > polygon|http://www.mathopenref.com/coordpolygonarea2.html] in Cartesian > coordinate system. > * [Ellipsoidal area computations of large terrestrial > objects|http://www.geodyssey.com/papers/ggelare.html] > * [Some algorithms for polygons on a > sphere|http://trs-new.jpl.nasa.gov/dspace/bitstream/2014/40409/3/JPL%20Pub%2007-3%20%20w%20Errata.pdf] > * [Addenda for C. F. F. Karney, Algorithms for > Geodesics|http://geographiclib.sourceforge.net/geod-addenda.html] > This algorithm for Cartesian coordinate system can be adapted to spherical > coordinate systems by replacing the area sum by (note that this replacement > uses vertical strips instead than horizontal ones): > {code:java} > s += (λ2 - λ1) * (2 + sin(φ1) + sin(φ2)); > {code} > and the final answer by: > {code:java} > area = abs(s * r² / 2); > {code} > The _r_ value could be approximated to the authalic radius (the radius of a > hypothetical sphere having the same surface than the ellipsoid). However the > _Ellipsoidal Area Computations of Large Terrestrial Objects_ article seems to > use a more local approximation, where _a_ and _b_ are semi-major and > semi-minor axis lengths: > {code:java} > s = sin(φ) > c = cos(φ) > r = (a²b) / (a²c² + b²s²) > {code} > This task is for writing down some ideas. We probably need to read the > above-cited article and other internet resources more carefully. In > particular we need some more analytical analysis for determining how [rhumb > lines|http://en.wikipedia.org/wiki/Rhumb_line] are handled in the above-cited > resources. This would affect polygon segments of more than 100 km. -- This message was sent by Atlassian JIRA (v6.3.15#6346)