public enum GeometryType : System.Enum, System.IComparable, System.IConvertible, System.IFormattable
Public Enum GeometryType Inherits System.Enum Implements System.IComparable, System.IConvertible, System.IFormattable
public enum GeometryType : System.Enum, System.IComparable, System.IConvertible, System.IFormattable
Public Enum GeometryType Inherits System.Enum Implements System.IComparable, System.IConvertible, System.IFormattable
Member | Description |
---|---|
Envelope | Envelope geometry. See Envelope. |
GeometryBag | Bag of geometries. See GeometryBag. |
Multipatch | MultiPatch 3D surface. See Multipatch. |
Multipoint | Multipoint geometry. See Multipoint. |
Point | Point geometry. See MapPoint. |
Polygon | Polygon geometry. See Polygon. |
Polyline | Polyline geometry. See Polyline. |
Unknown | Unknown type. There will be no Geometry instance existing with this type. |
/// <summary> /// This method takes an input multi part geometry and breaks the parts into individual standalone geometries. /// This method must be called on the MCT. Use QueuedTask.Run. /// </summary> /// <param name="inputGeometry">The geometry to be exploded into the individual parts.</param> /// <returns>An enumeration of individual parts as standalone geometries. The type of geometry is maintained, i.e. /// if the input geometry is of type Polyline then each geometry in the return is of type Polyline as well. /// If the input geometry is of type Unknown then an empty list is returned.</returns> /// <remarks>This method must be called on the MCT. Use QueuedTask.Run.</remarks> public IEnumerable<Geometry> MultipartToSinglePart(Geometry inputGeometry) { // list holding the part(s) of the input geometry List<Geometry> singleParts = new List<Geometry>(); // check if the input is a null pointer or if the geometry is empty if (inputGeometry == null || inputGeometry.IsEmpty) return singleParts; // based on the type of geometry, take the parts/points and add them individually into a list switch (inputGeometry.GeometryType) { case GeometryType.Envelope: singleParts.Add(inputGeometry.Clone() as Envelope); break; case GeometryType.Multipatch: singleParts.Add(inputGeometry.Clone() as Multipatch); break; case GeometryType.Multipoint: var multiPoint = inputGeometry as Multipoint; foreach (var point in multiPoint.Points) { // add each point of collection as a standalone point into the list singleParts.Add(point); } break; case GeometryType.Point: singleParts.Add(inputGeometry.Clone() as MapPoint); break; case GeometryType.Polygon: var polygon = inputGeometry as Polygon; foreach (var polygonPart in polygon.Parts) { // use the PolygonBuilderEx turning the segments into a standalone // polygon instance singleParts.Add(PolygonBuilderEx.CreatePolygon(polygonPart)); } break; case GeometryType.Polyline: var polyline = inputGeometry as Polyline; foreach (var polylinePart in polyline.Parts) { // use the PolylineBuilderEx turning the segments into a standalone // polyline instance singleParts.Add(PolylineBuilderEx.CreatePolyline(polylinePart)); } break; case GeometryType.Unknown: break; default: break; } return singleParts; }
System.Object
System.ValueType
System.Enum
ArcGIS.Core.Geometry.GeometryType
Target Platforms: Windows 11, Windows 10