object BoundaryNodeRule

An interface for rules which determine whether node points which are in boundaries of {link Lineal} geometry components are in the boundary of the parent geometry collection. The SFS specifies a single kind of boundary node rule, the {link Mod2BoundaryNodeRule} rule. However, other kinds of Boundary Node Rules are appropriate in specific situations (for instance, linear network topology usually follows the {link EndPointBoundaryNodeRule}.) Some JTS operations (such as {link RelateOp}, {link BoundaryOp} and {link IsSimpleOp}) allow the BoundaryNodeRule to be specified, and respect the supplied rule when computing the results of the operation.

An example use case for a non-SFS-standard Boundary Node Rule is that of checking that a set of {link LineString}s have valid linear network topology, when turn-arounds are represented as closed rings. In this situation, the entry road to the turn-around is only valid when it touches the turn-around ring at the single (common) endpoint. This is equivalent to requiring the set of LineStrings to be simple under the {link EndPointBoundaryNodeRule}. The SFS-standard {link Mod2BoundaryNodeRule} is not sufficient to perform this test, since it states that closed rings have no boundary points.

This interface and its subclasses follow the Strategy design pattern.

Version

1.7

See also

RelateOp

BoundaryOp

IsSimpleOp

PointLocator

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BoundaryNodeRule
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. class EndPointBoundaryNodeRule extends BoundaryNodeRule

    A {link BoundaryNodeRule} which specifies that any points which are endpoints of lineal components are in the boundary of the parent geometry.

    A {link 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 {link LinearRing}s 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

  2. class Mod2BoundaryNodeRule extends BoundaryNodeRule

    A {link BoundaryNodeRule} specifies that points are in the boundary of a lineal geometry iff the point lies on the boundary of an odd number of components.

    A {link BoundaryNodeRule} specifies that points are in the boundary of a lineal geometry iff the point lies on the boundary of an odd number of components. Under this rule {link LinearRing}s and closed {link LineString}s have an empty boundary.

    This is the rule specified by the OGC SFS, and is the default rule used in JTS.

    Version

    1.7

  3. class MonoValentEndPointBoundaryNodeRule extends BoundaryNodeRule

    A {link BoundaryNodeRule} which determines that only endpoints with valency of exactly 1 are on the boundary.

    A {link BoundaryNodeRule} which determines that only endpoints with valency of exactly 1 are on the boundary. This corresponds to the boundary of a {link MultiLineString} being all the "unattached" endpoints.

    Version

    1.7

  4. class MultiValentEndPointBoundaryNodeRule extends BoundaryNodeRule

    A {link BoundaryNodeRule} which determines that only endpoints with valency greater than 1 are on the boundary.

    A {link BoundaryNodeRule} which determines that only endpoints with valency greater than 1 are on the boundary. This corresponds to the boundary of a {link MultiLineString} being all the "attached" endpoints, but not the "unattached" ones.

    Version

    1.7

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. val ENDPOINT_BOUNDARY_RULE: EndPointBoundaryNodeRule

    The Endpoint Boundary Node Rule.

    The Endpoint Boundary Node Rule.

    See also

    EndPointBoundaryNodeRule

  5. val MOD2_BOUNDARY_RULE: Mod2BoundaryNodeRule

    The Mod-2 Boundary Node Rule (which is the rule specified in the OGC SFS).

    The Mod-2 Boundary Node Rule (which is the rule specified in the OGC SFS).

    See also

    Mod2BoundaryNodeRule

  6. val MONOVALENT_ENDPOINT_BOUNDARY_RULE: MonoValentEndPointBoundaryNodeRule

    The Monovalent Endpoint Boundary Node Rule.

    The Monovalent Endpoint Boundary Node Rule.

    See also

    MonoValentEndPointBoundaryNodeRule

  7. val MULTIVALENT_ENDPOINT_BOUNDARY_RULE: MultiValentEndPointBoundaryNodeRule

    The MultiValent Endpoint Boundary Node Rule.

    The MultiValent Endpoint Boundary Node Rule.

    See also

    MultiValentEndPointBoundaryNodeRule

  8. val OGC_SFS_BOUNDARY_RULE: Mod2BoundaryNodeRule

    The Boundary Node Rule specified by the OGC Simple Features Specification, which is the same as the Mod-2 rule.

    The Boundary Node Rule specified by the OGC Simple Features Specification, which is the same as the Mod-2 rule.

    See also

    Mod2BoundaryNodeRule

  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  14. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  20. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  21. def toString(): String
    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  24. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped