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
- Vertices with non-finite X or Y ordinates are removed (as per IsValid)
- Repeated points are reduced to a single point
- Empty atomic geometries are valid and are returned unchanged
- Empty elements are removed from collections
Point
: keep valid coordinate, or EMPTYLineString
: coordinates are fixedLinearRing
: coordinates are feixed, keep valid ring or else convert intoLineString
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
MultiPolygon
: each polygon is fixed, then result made non - overlapping (via union)GeometryCollection
: each element is fixed- 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
GeometryThe 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
- 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
- See Also
Methods
Fix(Geometry)
Fixes a geometry to be valid.
public static Geometry Fix(Geometry geom)
Parameters
geom
GeometryThe 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
GeometryThe geometry to be fixed
isKeepMulti
boolA 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