Parameters
- index
- 0 based index. Specify 0 to insert at the beginning. Specify CountGeometries or -1 to insert at the end.
- geometry
- The geometry to insert.
Exception | Description |
---|---|
ArcGIS.Core.CalledOnWrongThreadException | This method or property must be called within the lambda passed to QueuedTask.Run. |
System.ArgumentNullException | geometry is null. |
System.ArgumentException | geometry is GeometryBag. You cannot insert a GeometryBag into another GeometryBag. |
System.ArgumentOutOfRangeException | index must be less than the number of geometries in the builder or equal to -1. |
An Envelope is converted to a Polygon when it is inserted into a GeometryBag. As a result, when retrieving an Envelope from a GeometryBag, it will be a Polygon.
// Builder constructors need to run on the MCT. ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() => { using (GeometryBagBuilder builder = new GeometryBagBuilder(SpatialReferences.WGS84)) { GeometryBag emptyBag = builder.ToGeometry(); // emptyBag.IsEmpty = true MapPoint point = MapPointBuilder.CreateMapPoint(1, 2, SpatialReferences.WebMercator); builder.AddGeometry(point); // builder.CountGeometries = 1 GeometryBag geometryBag = builder.ToGeometry(); // geometryBag.PartCount = 1 // geometryBag.PointCount = 1 // geometryBag.IsEmpty = false IReadOnlyList<Geometry> geometries = geometryBag.Geometries; // geometries.Count = 1 // geometries[0] is MapPoint with a sr of WGS84 bool isEqual = geometryBag.IsEqual(emptyBag); // isEqual = false List<Coordinate2D> coords2D = new List<Coordinate2D>() { new Coordinate2D(0, 0), new Coordinate2D(0, 1), new Coordinate2D(1, 1), new Coordinate2D(1, 0) }; Multipoint multipoint = MultipointBuilder.CreateMultipoint(coords2D, SpatialReferences.WGS84); builder.InsertGeometry(0, multipoint); geometryBag = builder.ToGeometry(); // geometryBag.PartCount = 2 geometries = geometryBag.Geometries; // geometries.Count = 2 // geometries[0] is Multipoint // geometries[1] is MapPoint Polyline polyline = PolylineBuilder.CreatePolyline(coords2D, SpatialReferences.WebMercator); builder.AddGeometry(polyline); builder.RemoveGeometry(1); geometryBag = builder.ToGeometry(); // geometryBag.PartCount = 2 geometries = geometryBag.Geometries; // geometries.Count = 2 // geometries[0] is Multipoint // geometries[1] is Polyline } });
Target Platforms: Windows 10, Windows 8.1