Class BoundaryNodeRule.EndPointBoundaryNodeRule

java.lang.Object
org.locationtech.jts.algorithm.BoundaryNodeRule.EndPointBoundaryNodeRule
All Implemented Interfaces:
BoundaryNodeRule
Enclosing interface:
BoundaryNodeRule

public static class BoundaryNodeRule.EndPointBoundaryNodeRule extends Object implements BoundaryNodeRule
A BoundaryNodeRule which specifies that any points which are endpoints of lineal components are in the boundary of the parent geometry. This corresponds to the "intuitive" topological definition of boundary. Under this rule LinearRings have a non-empty boundary (the common endpoint of the underlying LineString).

This rule is useful when dealing with linear networks. For example, it can be used to check whether linear networks are correctly noded. The usual network topology constraint is that linear segments may touch only at endpoints. In the case of a segment touching a closed segment (ring) at one point, the Mod2 rule cannot distinguish between the permitted case of touching at the node point and the invalid case of touching at some other interior (non-node) point. The EndPoint rule does distinguish between these cases, so is more appropriate for use.

Version:
1.7
  • Constructor Details

    • EndPointBoundaryNodeRule

      public EndPointBoundaryNodeRule()
  • Method Details

    • isInBoundary

      public boolean isInBoundary(int boundaryCount)
      Description copied from interface: BoundaryNodeRule
      Tests whether a point that lies in boundaryCount geometry component boundaries is considered to form part of the boundary of the parent geometry.
      Specified by:
      isInBoundary in interface BoundaryNodeRule
      Parameters:
      boundaryCount - the number of component boundaries that this point occurs in
      Returns:
      true if points in this number of boundaries lie in the parent boundary