ITopologicalOperator3 Interface

Provides additional information on non-simple geometries.

Members

Name Description
Read-only property Boundary The boundary of this geometry. A polygon's boundary is a polyline. A polyline's boundary is a multipoint. A point or multipoint's boundary is an empty point or multipoint.
Method Buffer Constructs a polygon that is the locus of points at a distance less than or equal to a specified distance from this geometry.
Method Clip Constructs the intersection of this geometry and the specified envelope.
Method ClipDense Constructs the intersection of this geometry and the specified envelope; densifies lines in output contributed by the clipping envelope.
Method ClipToDomain Clips the geometry to the domain of the spatial reference. Useful for ensuring that buffers can be fit within the spatial domain of the feature class to which they are being added.
Method ConstructBuffers Constructs a set of buffers at various distances. More efficient than calling Buffer repeatedly on the same geometry. This method is intended for internal use only.
Method ConstructUnion Defines this geometry to be the union of the inputs. More efficient for unioning multiple geometries than calling Union repeatedly.
Method ConvexHull Constructs the convex hull of this geometry.
Method Cut Splits this geometry into a part left of the cutting polyline, and a part right of it.
Method Difference Constructs the geometry containing points from this geometry but not the other geometry.
Method GeoNormalizeEx Shifts longitudes, if need be, into a continuous range of 360 degrees.
Method Intersect Constructs the geometry that is the set-theoretic intersection of the input geometries. Use different resultDimension values to generate results of different dimensions.
Method IntersectMultidimension Constructs the set-theoretic intersection of the inputs. The results are returned in a geometry bag with one element per result dimension.
Read-only property IsKnownSimple Indicates whether this geometry is known (or assumed) to be topologically correct.
Write-only property IsKnownSimple Indicates whether this geometry is known (or assumed) to be topologically correct.
Read-only property IsSimple Indicates whether this geometry is known (or assumed) to be topologically correct, after explicitly determining this if the geometry is not already known (or assumed) to be simple.
Read-only property IsSimpleEx Determines why a geometry is not simple. Currently only implemented for polygons.
Method QueryClipped Redefines clippedGeometry to be the intersection of this geometry and the clipping envelope.
Method QueryClippedDense Redefines clippedGeometry to be the intersection of this geometry and the clipping envelope; densifies lines in the output contributed by the clipping envelope.
Method Simplify Makes this geometry topologically correct.
Method SymmetricDifference Constructs the geometry that contains points from either but not both input geometries.
Read-only property TopologyCache Provides a handle to the TopologyCache.
Method Union Constructs the geometry that is the set-theoretic union of the input geometries.

ITopologicalOperator3.GeoNormalizeEx Method

Shifts longitudes, if need be, into a continuous range of 360 degrees.

Public Sub GeoNormalizeEx ( _
    ByVal SR As ISpatialReference, _
    ByVal denseDistance As Double _
)
public void GeoNormalizeEx (
    ISpatialReference SR,
    double denseDistance
);

Remarks

Not implemented for Multipatches.

ITopologicalOperator3.IsSimpleEx Property

Determines why a geometry is not simple. Currently only implemented for polygons.

Public Function get_IsSimpleEx ( _
    ByRef reason As esriNonSimpleReasonEnum _
) As Boolean
public bool get_IsSimpleEx (
    ref esriNonSimpleReasonEnum reason
);

Description

The return boolean value indicates whether or not the geometry is simple. If the return is false, the "reason" parameter can be inspected.

Remarks

Note: All geometries involved in ITopologicalOperator operations must be high-level geometries. High-Level geometries are point, multipoint, polyline and polygon. To use it with low-level geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), path or ring they must be wrapped into high-level geometries type.

The xy cluster tolerance value of the geometry's associated spatial reference is used by this method. If the goal of this method is to determine if a geometry can be persisted in an sde (or other integer-based) layer without alteration, you may wish to use the minimum xy cluster tolerance value (ISpatialReferenceTolerance::SetMinimumXYTolerance) before applying this method (don't forget to set it back).

//How to use get_IsSimpleEx

ITopologicalOperator3 topoOp3 = inGeom as ITopologicalOperator3; //Must be polygon

ESRI.ArcGIS.Geometry.esriNonSimpleReasonEnum reason = ESRI.ArcGIS.Geometry.esriNonSimpleReasonEnum.esriNonSimpleOK; //Initialize

topoOp3.IsKnownSimple_2 = false;

Boolean pBool = topoOp3.get_IsSimpleEx(out reason); //Inspect pReason for description code

 

//The following code shows to wrap a line segment into a polyline in C#

//Assume a line (line1 as ILine) is already created

object obj = Type.Missing;

ISegmentCollection segCollection = new PolylineClass() as ISegmentCollection;

segCollection.AddSegment((ISegment)line1, ref obj, ref obj);

//Set the spatial reference on the new polyline

//The spatial reference is not transfered automatically from the segments

IGeometry geom = segCollection as IGeometry;

geom.SpatialReference = spatialRef;

//Can now be used with ITopologicalOperator methods

Inherited Interfaces

Interfaces Description
ITopologicalOperator2 Provides access to members that extend the ITopologicalOperator interface.
ITopologicalOperator Provides access to members for constructing new geometries based upon topological relationships between existing geometries.

Classes that implement ITopologicalOperator3

Classes Description
MultiPatch A collection of surface patches.
Polygon A collection of rings ordered by their containment relationship; optionally has measure, height and ID attributes.
Polyline An ordered collection of paths; optionally has measure, height and ID attributes.

Remarks

ITopologicalOperator3 methods must be applied on high-level geometries only. High-Level geometries are point, multipoint, polyline and polygon. To use this interface with low-level geometries such as segments (Line, Circular Arc, Elliptic Arc, Bezier Curve), paths or rings, they must be wrapped into high-level geometry types.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.