Search Results for

    Show / Hide Table of Contents

    Class CoveragePolygonValidator

    Validates that a polygon forms a valid polygonal coverage with the set of polygons adjacent to it. If the polygon is coverage-valid an empty { @link LineString} is returned. Otherwise, the result is a linear geometry containing the polygon boundary linework causing the invalidity.

    A polygon is coverage-valid if:
    1. The polygon interior does not intersect the interior of other polygons.
    2. If the polygon boundary intersects another polygon boundary, the vertices and line segments of the intersection match exactly.

    The algorithm detects the following coverage errors:
    1. the polygon is a duplicate of another one
    2. a polygon boundary segment equals an adjacent segment (with same orientation). This determines that the polygons overlap
    3. a polygon boundary segment is collinear and overlaps an adjacent segment but is not equal to it
    4. a polygon boundary segment touches an adjacent segment at a non-vertex point
    5. a polygon boundary segment crosses into an adjacent polygon
    6. a polygon boundary segment is in the interior of an adjacent polygon

    If any of these errors is present, the target polygon does not form a valid coverage with the adjacent polygons.

    The validity rules do not preclude properly noded gaps between coverage polygons. However, this class can detect narrow gaps, by specifying a maximum gap width using {@link #setGapWidth(double)}. Note that this will also identify narrow gaps separating disjoint coverage regions, and narrow gores. In some situations it may also produce false positives (i.e.linework identified as part of a gap which is wider than the given width). To fully identify gaps it maybe necessary to use CoverageUnion and analyze the holes in the result to see if they are acceptable.

    A polygon may be coverage-valid with respect to a set of surrounding polygons, but the collection as a whole may not form a clean coverage.For example, the target polygon boundary may be fully matched by adjacent boundary segments, but the adjacent set contains polygons which are not coverage - valid relative to other ones in the set. A coverage is valid only if every polygon in the coverage is coverage - valid. Use CoverageValidator to validate an entire set of polygons.

    The adjacent set may contain polygons which do not intersect the target polygon. These are effectively ignored during validation (but may decrease performance).
    Inheritance
    object
    CoveragePolygonValidator
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: NetTopologySuite.Coverage
    Assembly: NetTopologySuite.dll
    Syntax
    public class CoveragePolygonValidator

    Constructors

    | Edit this page View Source

    CoveragePolygonValidator(Geometry, Geometry[])

    Create a new validator.

    If the gap width is specified, the set of surrounding polygons should include all polygons which are within the gap width distance of the target polygon.
    Declaration
    public CoveragePolygonValidator(Geometry geom, Geometry[] adjGeoms)
    Parameters
    Type Name Description
    Geometry geom
    Geometry[] adjGeoms

    Properties

    | Edit this page View Source

    GapWidth

    Gets or sets the maximum gap width, if narrow gaps are to be detected.

    Declaration
    public double GapWidth { get; set; }
    Property Value
    Type Description
    double

    Methods

    | Edit this page View Source

    Validate()

    Validates the coverage polygon against the set of adjacent polygons in the coverage.

    Declaration
    public Geometry Validate()
    Returns
    Type Description
    Geometry

    A linear geometry containing the segments causing invalidity (if any)

    | Edit this page View Source

    Validate(Geometry, Geometry[])

    Validates that a polygon is coverage-valid against the surrounding polygons in a polygonal coverage.

    Declaration
    public static Geometry Validate(Geometry targetPolygon, Geometry[] adjPolygons)
    Parameters
    Type Name Description
    Geometry targetPolygon

    The polygon to validate

    Geometry[] adjPolygons

    The adjacent polygons

    Returns
    Type Description
    Geometry

    A linear geometry containing the segments causing invalidity (if any)

    | Edit this page View Source

    Validate(Geometry, Geometry[], double)

    Validates that a polygon is coverage-valid against the surrounding polygons in a polygonal coverage, and forms no gaps narrower than a specified width.

    The set of surrounding polygons should include all polygons which are within the gap width distance of the target polygon.
    Declaration
    public static Geometry Validate(Geometry targetPolygon, Geometry[] adjPolygons, double gapWidth)
    Parameters
    Type Name Description
    Geometry targetPolygon

    The polygon to validate

    Geometry[] adjPolygons

    The adjacent polygons

    double gapWidth

    The maximum width of invalid gaps

    Returns
    Type Description
    Geometry

    A linear geometry containing the segments causing invalidity (if any)///

    See Also

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