Search Results for

    Show / Hide Table of Contents

    Class MinimumClearance

    Computes the Minimum Clearance of a Geometry.

    The Minimum Clearance is a measure of what magnitude of perturbation of the vertices of a geometry can be tolerated before the geometry becomes topologically invalid. The smaller the Minimum Clearance distance, the less vertex perturbation the geometry can tolerate before becoming invalid.
    Inheritance
    object
    MinimumClearance
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: NetTopologySuite.Precision
    Assembly: NetTopologySuite.dll
    Syntax
    public class MinimumClearance
    Remarks

    The concept was introduced by Thompson and Van Oosterom [TV06], based on earlier work by Milenkovic [Mi88].

    The Minimum Clearance of a geometry G is defined to be the value r such that "the movement of all points by a distance of r in any direction will guarantee to leave the geometry valid" [TV06]. An equivalent constructive definition [Mi88] is that r is the largest value such:
    • No two distinct vertices of G are closer than r.
    • No vertex of G is closer than r to an edge of G of which the vertex is not an endpoint
    The following image shows an example of the Minimum Clearance of a simple polygon.

    minimum clearance

    If G has only a single vertex (i.e. is a Point), the value of the minimum clearance is MaxValue.

    If G is a IPuntal or ILineal geometry, then in fact no amount of perturbation will render the geometry invalid. In this case a Minimum Clearance is still computed based on the vertex and segment distances according to the constructive definition.

    It is possible for no Minimum Clearance to exist. For instance, a MultiPoint with all members identical has no Minimum Clearance (i.e. no amount of perturbation will cause the member points to become non-identical). Empty geometries also have no such distance. The lack of a meaningful MinimumClearance distance is detected and suitable values are returned by GetDistance() and GetLine().

    The computation of Minimum Clearance utilizes the NearestNeighbour(IItemDistance<Envelope, TItem>) method to provide good performance even for large inputs.

    An interesting note is that for the case of MultiPoints, the computed Minimum Clearance line effectively determines the Nearest Neighbours in the collection.

    References

    • [Mi88] Milenkovic, V. J., Verifiable implementations of geometric algorithms using finite precision arithmetic. in Artificial Intelligence, 377-401. 1988
    • [TV06] Thompson, Rod and van Oosterom, Peter, Interchange of Spatial Data-Inhibiting Factors, Agile 2006, Visegrad, Hungary. 2006

    Constructors

    | Edit this page View Source

    MinimumClearance(Geometry)

    Creates an object to compute the Minimum Clearance for the given Geometry

    Declaration
    public MinimumClearance(Geometry geom)
    Parameters
    Type Name Description
    Geometry geom

    The input geometry

    Methods

    | Edit this page View Source

    GetDistance()

    Gets the Minimum Clearance distance.

    If no distance exists (e.g. in the case of two identical points) MaxValue is returned.

    Declaration
    public double GetDistance()
    Returns
    Type Description
    double

    The value of the minimum clearance distance
    or MaxValue if no Minimum Clearance distance exists

    | Edit this page View Source

    GetDistance(Geometry)

    Computes the Minimum Clearance distance for the given Geometry.

    Declaration
    public static double GetDistance(Geometry g)
    Parameters
    Type Name Description
    Geometry g

    The input geometry

    Returns
    Type Description
    double

    The minimum clearance

    | Edit this page View Source

    GetLine()

    Gets a LineString containing two points which are at the Minimum Clearance distance.

    If no distance could be found (e.g. in the case of two identical points) LINESTRING EMPTY is returned.
    Declaration
    public LineString GetLine()
    Returns
    Type Description
    LineString

    The value of the minimum clearance distance,
    or LINESTRING EMPTY if no minimum clearance distance exists.

    | Edit this page View Source

    GetLine(Geometry)

    Gets a LineString containing two points which are at the Minimum Clearance distance for the given Geometry.

    Declaration
    public static Geometry GetLine(Geometry g)
    Parameters
    Type Name Description
    Geometry g

    The input geometry

    Returns
    Type Description
    Geometry

    The value of the minimum clearance distance
    or LINESTRING EMPTY if no minimum clearance distance exists.

    • Edit this page
    • View Source
    In this article
    Back to top Generated by DocFX