ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Core.Geometry Namespace / IGeometryEngine Interface / IsSimpleOgc Method
The geometry to be simplified.
The reason that the geometry is non-simple.
(Optional) The default value is false. When true, it forces the simplification code to be applied to the geometry even if the geometry comes from a trusted source or has already been simplified. When false, the method will do nothing if called on the same geometry a second time.
Example Version

IsSimpleOgc Method (IGeometryEngine)
Indicates if the given geometry is topologically consistent according to the Open Geospatial Consortium (OGC) validation specification.
Syntax

Parameters

geometry
The geometry to be simplified.
nonSimpleReason
The reason that the geometry is non-simple.
forceIsSimple
(Optional) The default value is false. When true, it forces the simplification code to be applied to the geometry even if the geometry comes from a trusted source or has already been simplified. When false, the method will do nothing if called on the same geometry a second time.

Return Value

Returns true if the geometry is simple and false otherwise.
Exceptions
ExceptionDescription
The input geometry is null.
The method is not implemented for GeometryBag or Multipatch.
Remarks
Example
SimplifyOgc
SpatialReference sr = SpatialReferences.WGS84;

Coordinate2D[] coords = new Coordinate2D[] { new Coordinate2D(5, 10), new Coordinate2D(15, 20), new Coordinate2D(25, 10), new Coordinate2D(5, 20) };
Polyline polyline = PolylineBuilderEx.CreatePolyline(coords, sr);
// polyline.IsKnownSimpleOgc = false
// polyline.IsKnownSimple = false

NonSimpleReason nonSimpleReason;
bool isSimple = GeometryEngine.Instance.IsSimpleOgc(polyline, out nonSimpleReason, true);
// isSimple = false
// nonSimpleReason = NonSimpleReason.SelfIntersections

Polyline simplePolyline = GeometryEngine.Instance.SimplifyOgc(polyline) as Polyline;
// simplePolyline.IsKnownSimpleOgc = true
// simplePolyline.IsKnownSimple = true



double resolution = sr.XYResolution;
Coordinate3D[] coords3D = new Coordinate3D[] { new Coordinate3D(0, 0, 0), new Coordinate3D(0, 1.8 * resolution, 0.8 * sr.ZTolerance), new Coordinate3D(10, 10, 1),
  new Coordinate3D(0, 5, 1) };
polyline = PolylineBuilderEx.CreatePolyline(coords3D, sr);

isSimple = GeometryEngine.Instance.IsSimpleOgc(polyline, out nonSimpleReason);
// isSimple = false
// nonSimpleReason = NonSimpleReason.ShortSegments

simplePolyline = GeometryEngine.Instance.SimplifyOgc(polyline, true) as Polyline;
// simplePolyline.IsKnownSimpleOgc = true
// simplePolyline.IsKnownSimple = true



coords = new Coordinate2D[] { new Coordinate2D(0, 0), new Coordinate2D(0, 0) };
Multipoint multipoint = MultipointBuilderEx.CreateMultipoint(coords, sr);

isSimple = GeometryEngine.Instance.IsSimpleOgc(multipoint, out nonSimpleReason);
// isSimple = false
// nonSimpleReason = NonSimpleReason.DuplicateVertex
Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3.2 or higher.
See Also