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. |
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)); 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
var g1 = PolygonBuilderEx.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
Target Platforms: Windows 11, Windows 10