Parameters
- geometry
- The geometry of which the area will be calculated.
Return Value
The computed area in the same units as the geometry's spatial reference unit.
Exception | Description |
---|---|
System.ArgumentNullException | Geometry is null or empty. |
System.NotImplementedException | The method is not implemented for GeometryBag. |
var g1 = PolygonBuilder.FromJson("{\"rings\": [ [ [0, 0], [10, 0], [10, 10], [0, 10] ] ] }"); double d = GeometryEngine.Instance.Area(g1); // d = -100.0 //negative due to wrong ring orientation d = GeometryEngine.Instance.Area(GeometryEngine.Instance.SimplifyAsFeature(g1)); // d = 100.0 // feature has been simplifed; ring orientation is correct
List<Coordinate2D> outerCoordinates = new List<Coordinate2D>(); outerCoordinates.Add(new Coordinate2D(10.0, 10.0)); outerCoordinates.Add(new Coordinate2D(10.0, 20.0)); outerCoordinates.Add(new Coordinate2D(20.0, 20.0)); outerCoordinates.Add(new Coordinate2D(20.0, 10.0)); // Builder constructors need to run on the MCT. ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() => { // use the PolygonBuilder as we wish to manipulate the parts using (PolygonBuilder pb = new PolygonBuilder(outerCoordinates)) { Polygon donut = pb.ToGeometry(); double area = donut.Area; // area = 100 // define the inner polygon as anti-clockwise List<Coordinate2D> innerCoordinates = new List<Coordinate2D>(); innerCoordinates.Add(new Coordinate2D(13.0, 13.0)); innerCoordinates.Add(new Coordinate2D(17.0, 13.0)); innerCoordinates.Add(new Coordinate2D(17.0, 17.0)); innerCoordinates.Add(new Coordinate2D(13.0, 17.0)); pb.AddPart(innerCoordinates); donut = pb.ToGeometry(); area = donut.Area; // area = 84.0 area = GeometryEngine.Instance.Area(donut); // area = 84.0 } });
Target Platforms: Windows 10, Windows 8.1