Table of Contents

Class GeometryFixer

Namespace
NetTopologySuite.Geometries.Utilities
Assembly
NetTopologySuite.dll

Fixes a geometry to be a valid geometry, while preserving as much as possible of the shape and location of the input. Validity is determined according to IsValid.

Input geometries are always processed, so even valid inputs may have some minor alterations.The output is always a new geometry object.

Semantic Rules

  1. Vertices with non-finite X or Y ordinates are removed (as per IsValid)
  2. Repeated points are reduced to a single point
  3. Empty atomic geometries are valid and are returned unchanged
  4. Empty elements are removed from collections
  5. Point: keep valid coordinate, or EMPTY
  6. LineString: coordinates are fixed
  7. LinearRing: coordinates are feixed, keep valid ring or else convert into LineString
  8. Polygon: transform into a valid polygon, preserving as much of the extent and vertices as possible.
    • Rings are fixed to ensure they are valid
    • Holes intersection the shell are subtracted from the shell
    • Holes outside the shell are converted into polygons
  9. MultiPolygon: each polygon is fixed, then result made non - overlapping (via union)
  10. GeometryCollection: each element is fixed
  11. Collapsed lines and polygons are handled as follows, depending on the keepCollapsed setting:
    • false: (default) collapses are converted to empty geometries (and removed if they are elements of collections)
    • true: collapses are converted to a valid geometry of lower dimension
public class GeometryFixer
Inheritance
GeometryFixer
Inherited Members

Constructors

GeometryFixer(Geometry)

Creates a new instance to fix a given geometry

public GeometryFixer(Geometry geom)

Parameters

geom Geometry

The geometry to be fixed

See Also

Properties

KeepCollapsed

Gets or sets a value indicating whether collapsed geometries are converted to empty, (which will be removed from collections), or to a valid geometry of lower dimension. The default is to convert collapses to empty geometries (false).

public bool KeepCollapsed { get; set; }

Property Value

bool
See Also

KeepMulti

Gets or sets a value indicating whether collapsed geometries are converted to empty, (which will be removed from collections), or to a valid geometry of lower dimension. The default is to convert collapses to empty geometries (false).

public bool KeepMulti { get; set; }

Property Value

bool
See Also

Methods

Fix(Geometry)

Fixes a geometry to be valid.

public static Geometry Fix(Geometry geom)

Parameters

geom Geometry

The geometry to be fixed

Returns

Geometry

The valid fixed geometry

See Also

Fix(Geometry, bool)

Fixes a geometry to be valid, allowing to set a flag controlling how single item results from fixed MULTI geometries should be returned.

public static Geometry Fix(Geometry geom, bool isKeepMulti)

Parameters

geom Geometry

The geometry to be fixed

isKeepMulti bool

A flag indicating if MULTI geometries should not be converted to single instance types if they consist of only one item.

Returns

Geometry

The valid fixed geometry

See Also

GetResult()

Gets the fixed geometry.

public Geometry GetResult()

Returns

Geometry

The fixed geometry

See Also

See Also