Class BoundaryNodeRule.EndPointBoundaryNodeRule

  • All Implemented Interfaces:
    BoundaryNodeRule
    Enclosing interface:
    BoundaryNodeRule

    public static class BoundaryNodeRule.EndPointBoundaryNodeRule
    extends java.lang.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
    Author:
    Martin Davis
    • Constructor Detail

      • EndPointBoundaryNodeRule

        public EndPointBoundaryNodeRule()
    • Method Detail

      • 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