Class GeometryGraph
java.lang.Object
org.locationtech.jts.geomgraph.PlanarGraph
org.locationtech.jts.geomgraph.GeometryGraph
A GeometryGraph is a graph that models a given Geometry
- Version:
- 1.7
-
Constructor Summary
ConstructorsConstructorDescriptionGeometryGraph(int argIndex, Geometry parentGeom) GeometryGraph(int argIndex, Geometry parentGeom, BoundaryNodeRule boundaryNodeRule) -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd an Edge computed externally.voidaddPoint(Coordinate pt) Add a point computed externally.computeEdgeIntersections(GeometryGraph g, LineIntersector li, boolean includeProper) computeSelfNodes(LineIntersector li, boolean computeRingSelfNodes) Compute self-nodes, taking advantage of the Geometry type to minimize the number of intersection tests.computeSelfNodes(LineIntersector li, boolean computeRingSelfNodes, boolean isDoneIfProperInt) Compute self-nodes, taking advantage of the Geometry type to minimize the number of intersection tests.voidcomputeSplitEdges(List edgelist) static intdetermineBoundary(BoundaryNodeRule boundaryNodeRule, int boundaryCount) This method implements the Boundary Determination Rule for determining whether a component (node or edge) that appears multiple times in elements of a MultiGeometry is in the boundary or the interior of the Geometry
The SFS uses the "Mod-2 Rule", which this function implements
An alternative (and possibly more intuitive) rule would be the "At Most One Rule": isInBoundary = (componentCount == 1)findEdge(LineString line) booleanThis constructor is used by clients that wish to add Edges explicitly, rather than adding a Geometry.intlocate(Coordinate pt) Determines theLocationof the givenCoordinatein this geometry.Methods inherited from class PlanarGraph
add, addEdges, addNode, addNode, find, findEdge, findEdgeEnd, findEdgeInSameDirection, getEdgeEnds, getEdgeIterator, getNodeIterator, getNodes, isBoundaryNode, linkAllDirectedEdges, linkResultDirectedEdges, linkResultDirectedEdges, printEdges
-
Constructor Details
-
GeometryGraph
-
GeometryGraph
-
-
Method Details
-
determineBoundary
This method implements the Boundary Determination Rule for determining whether a component (node or edge) that appears multiple times in elements of a MultiGeometry is in the boundary or the interior of the Geometry
The SFS uses the "Mod-2 Rule", which this function implements
An alternative (and possibly more intuitive) rule would be the "At Most One Rule": isInBoundary = (componentCount == 1) -
hasTooFewPoints
public boolean hasTooFewPoints()This constructor is used by clients that wish to add Edges explicitly, rather than adding a Geometry. (An example is BufferOp). -
getInvalidPoint
-
getGeometry
-
getBoundaryNodeRule
-
getBoundaryNodes
-
getBoundaryPoints
-
findEdge
-
computeSplitEdges
-
addEdge
Add an Edge computed externally. The label on the Edge is assumed to be correct. -
addPoint
Add a point computed externally. The point is assumed to be a Point Geometry part, which has a location of INTERIOR. -
computeSelfNodes
Compute self-nodes, taking advantage of the Geometry type to minimize the number of intersection tests. (E.g. rings are not tested for self-intersection, since they are assumed to be valid).- Parameters:
li- the LineIntersector to usecomputeRingSelfNodes- iffalse, intersection checks are optimized to not test rings for self-intersection- Returns:
- the computed SegmentIntersector containing information about the intersections found
-
computeSelfNodes
public SegmentIntersector computeSelfNodes(LineIntersector li, boolean computeRingSelfNodes, boolean isDoneIfProperInt) Compute self-nodes, taking advantage of the Geometry type to minimize the number of intersection tests. (E.g. rings are not tested for self-intersection, since they are assumed to be valid).- Parameters:
li- the LineIntersector to usecomputeRingSelfNodes- iffalse, intersection checks are optimized to not test rings for self-intersectionisDoneIfProperInt- short-circuit the intersection computation if a proper intersection is found- Returns:
- the computed SegmentIntersector containing information about the intersections found
-
computeEdgeIntersections
public SegmentIntersector computeEdgeIntersections(GeometryGraph g, LineIntersector li, boolean includeProper) -
locate
Determines theLocationof the givenCoordinatein this geometry.- Parameters:
pt- the point to test- Returns:
- the location of the point in the geometry
-