AreaGeodetic(Geometry, AreaUnit, GeodeticCurveType)
Gets the geodesic area of a polygon.
public static double AreaGeodetic(Geometry geometry, AreaUnit unit = null, GeodeticCurveType geodeticCurveType = GeodeticCurveType.Geodesic)
The geometry to calculate the geodesic area for.
The unit of measure for the return value. If
The type of curve to calculate.
The calculated geodesic area in square meters.
The term Geodesic means calculating the shortest distance between two points on a sphere. Using Geodesic algorithms to calculate distances provides a highly accurate way to obtain length and area of measurements of geographic features. The Geodesic algorithm uses the concept of a great circle to obtain the shortest route between two points along the Earth’s surface. The area measurement obtained via this method is typically superior to that of the Area(Geometry) Static Method, as this method is based upon a projection (i.e. a flat 2D representation of a 3D surface) which often introduces distortion depending on the SpatialReference the geometry is in.
The input geometry must be topologically correct to get its accurate area. There are many ways that the orientation or shape of the rings that comprise polygon could be constructed: clock-wise, counter clock-wise, overlapping hourglass, doughnut, multiple independent rings, etc. If the geometry is not topologically correct, then the resultant area from this method could give negative results. It is always a good best practice to use the Simplify(Geometry) Static Method on the geometry such that the resulting geometry is topologically correct and will return accurate and positive area results. Geometries returned by ArcGIS Server services are always correct. Therefore, if you construct geometries programmatically or using the sketch layer, or if you modify geometries returned by ArcGIS Server, you should always simplify them using GeometryEngine.Simplify first.
Platforms and versions
|.NET Standard 2.0||100.12.0, 100.11.0, 100.10.0, 100.9.0, 100.8.0, 100.7.0, 100.6.0, 100.5.0, 100.4.0, 100.3.0|
|.NET Framework||100.12.0, 100.11.0, 100.10.0, 100.9.0, 100.8.0, 100.7.0, 100.6.0, 100.5.0, 100.4.0, 100.3.0, 100.2.1, 100.1.0, 100.0.0|
|.NET 5||100.12.0, 100.11.0, 100.10.0|
|.NET Core||100.12.0, 100.11.0, 100.10.0, 100.9.0, 100.8.0, 100.7.0|
|Xamarin.Android||100.12.0, 100.11.0, 100.10.0, 100.9.0, 100.8.0, 100.7.0, 100.6.0, 100.5.0, 100.4.0, 100.3.0, 100.2.1, 100.1.0, 100.0.0|
|Xamarin.iOS||100.12.0, 100.11.0, 100.10.0, 100.9.0, 100.8.0, 100.7.0, 100.6.0, 100.5.0, 100.4.0, 100.3.0, 100.2.1, 100.1.0, 100.0.0|