public interface BoundaryNodeRule
Lineal
geometry components
are in the boundary of the parent geometry collection.
The SFS specifies a single kind of boundary node rule,
the BoundaryNodeRule.Mod2BoundaryNodeRule
rule.
However, other kinds of Boundary Node Rules are appropriate
in specific situations (for instance, linear network topology
usually follows the BoundaryNodeRule.EndPointBoundaryNodeRule
.)
Some JTS operations
(such as RelateOp
, BoundaryOp
and 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 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 BoundaryNodeRule.EndPointBoundaryNodeRule
.
The SFS-standard BoundaryNodeRule.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.
RelateOp
,
BoundaryOp
,
IsSimpleOp
,
PointLocator
Modifier and Type | Interface and Description |
---|---|
static class |
BoundaryNodeRule.EndPointBoundaryNodeRule
A
BoundaryNodeRule which specifies that any points which are endpoints
of lineal components are in the boundary of the
parent geometry. |
static class |
BoundaryNodeRule.Mod2BoundaryNodeRule
A
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. |
static class |
BoundaryNodeRule.MonoValentEndPointBoundaryNodeRule
A
BoundaryNodeRule which determines that only
endpoints with valency of exactly 1 are on the boundary. |
static class |
BoundaryNodeRule.MultiValentEndPointBoundaryNodeRule
A
BoundaryNodeRule which determines that only
endpoints with valency greater than 1 are on the boundary. |
Modifier and Type | Field and Description |
---|---|
static BoundaryNodeRule |
ENDPOINT_BOUNDARY_RULE
The Endpoint Boundary Node Rule.
|
static BoundaryNodeRule |
MOD2_BOUNDARY_RULE
The Mod-2 Boundary Node Rule (which is the rule specified in the OGC SFS).
|
static BoundaryNodeRule |
MONOVALENT_ENDPOINT_BOUNDARY_RULE
The Monovalent Endpoint Boundary Node Rule.
|
static BoundaryNodeRule |
MULTIVALENT_ENDPOINT_BOUNDARY_RULE
The MultiValent Endpoint Boundary Node Rule.
|
static BoundaryNodeRule |
OGC_SFS_BOUNDARY_RULE
The Boundary Node Rule specified by the OGC Simple Features Specification,
which is the same as the Mod-2 rule.
|
Modifier and Type | Method and Description |
---|---|
boolean |
isInBoundary(int boundaryCount)
Tests whether a point that lies in boundaryCount
geometry component boundaries is considered to form part of the boundary
of the parent geometry.
|
static final BoundaryNodeRule MOD2_BOUNDARY_RULE
BoundaryNodeRule.Mod2BoundaryNodeRule
static final BoundaryNodeRule ENDPOINT_BOUNDARY_RULE
static final BoundaryNodeRule MULTIVALENT_ENDPOINT_BOUNDARY_RULE
static final BoundaryNodeRule MONOVALENT_ENDPOINT_BOUNDARY_RULE
static final BoundaryNodeRule OGC_SFS_BOUNDARY_RULE
BoundaryNodeRule.Mod2BoundaryNodeRule
boolean isInBoundary(int boundaryCount)
boundaryCount
- the number of component boundaries that this point occurs inCopyright © 2024. All rights reserved.