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. If the geometry is empty, then zero is returned.
Exception | Description |
---|---|
System.ArgumentNullException | Geometry is null. |
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)); // 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)); // 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 pb.AddPart(innerCoordinates); donut = pb.ToGeometry(); area = donut.Area; // area = 84.0 area = GeometryEngine.Instance.Area(donut); // area = 84.0 } }); // builderEx constructors don't need to run on the MCt PolygonBuilderEx pbEx = new PolygonBuilderEx(outerCoordinates); Polygon donutEx = pbEx.ToGeometry() as Polygon; double areaEx = donutEx.Area; // area = 100 pbEx.AddPart(innerCoordinates); donutEx = pbEx.ToGeometry() as Polygon; areaEx = donutEx.Area; // area = 84.0 areaEx = GeometryEngine.Instance.Area(donutEx); // area = 84.0
Target Platforms: Windows 10, Windows 8.1