Class FastNodingValidator

java.lang.Object
org.locationtech.jts.noding.FastNodingValidator

public class FastNodingValidator extends Object
Validates that a collection of SegmentStrings is correctly noded. Indexing is used to improve performance. By default validation stops after a single non-noded intersection is detected. Alternatively, it can be requested to detect all intersections by using setFindAllIntersections(boolean).

The validator does not check for topology collapse situations (e.g. where two segment strings are fully co-incident).

The validator checks for the following situations which indicated incorrect noding:

  • Proper intersections between segments (i.e. the intersection is interior to both segments)
  • Intersections at an interior vertex (i.e. with an endpoint or another interior vertex)

The client may either test the isValid() condition, or request that a suitable TopologyException be thrown.

Version:
1.7
See Also:
  • Constructor Details

    • FastNodingValidator

      public FastNodingValidator(Collection segStrings)
      Creates a new noding validator for a given set of linework.
      Parameters:
      segStrings - a collection of SegmentStrings
  • Method Details

    • computeIntersections

      public static List computeIntersections(Collection segStrings)
      Gets a list of all intersections found. Intersections are represented as Coordinates. List is empty if none were found.
      Parameters:
      segStrings - a collection of SegmentStrings
      Returns:
      a list of Coordinate
    • setFindAllIntersections

      public void setFindAllIntersections(boolean findAllIntersections)
    • getIntersections

      public List getIntersections()
      Gets a list of all intersections found. Intersections are represented as Coordinates. List is empty if none were found.
      Returns:
      a list of Coordinate
    • isValid

      public boolean isValid()
      Checks for an intersection and reports if one is found.
      Returns:
      true if the arrangement contains an interior intersection
    • getErrorMessage

      public String getErrorMessage()
      Returns an error message indicating the segments containing the intersection.
      Returns:
      an error message documenting the intersection location
    • checkValid

      public void checkValid()
      Checks for an intersection and throws a TopologyException if one is found.
      Throws:
      TopologyException - if an intersection is found