Package org.locationtech.jts.triangulate
Class VoronoiDiagramBuilder
java.lang.Object
org.locationtech.jts.triangulate.VoronoiDiagramBuilder
A utility class which creates Voronoi Diagrams
from collections of points.
The diagram is returned as a
GeometryCollection
of Polygon
s
representing the faces of the Voronoi diagram.
The faces are clipped to the larger of:
- an envelope supplied by
setClipEnvelope(Envelope)
- an envelope determined by the input sites
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Envelope
private Envelope
private Collection
private QuadEdgeSubdivision
private double
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static Geometry
clipGeometryCollection
(Geometry geom, Envelope clipEnv) private void
create()
getDiagram
(GeometryFactory geomFact) Gets the faces of the computed diagram as aGeometryCollection
ofPolygon
s, clipped as specified.Gets theQuadEdgeSubdivision
which models the computed diagram.void
setClipEnvelope
(Envelope clipEnv) Sets the envelope to clip the diagram to.void
setSites
(Collection coords) Sets the sites (point or vertices) which will be diagrammed from a collection ofCoordinate
s.void
Sets the sites (point or vertices) which will be diagrammed.void
setTolerance
(double tolerance) Sets the snapping tolerance which will be used to improved the robustness of the triangulation computation.
-
Field Details
-
siteCoords
-
tolerance
private double tolerance -
subdiv
-
clipEnv
-
diagramEnv
-
-
Constructor Details
-
VoronoiDiagramBuilder
public VoronoiDiagramBuilder()Creates a new Voronoi diagram builder.
-
-
Method Details
-
setSites
Sets the sites (point or vertices) which will be diagrammed. All vertices of the given geometry will be used as sites.- Parameters:
geom
- the geometry from which the sites will be extracted.
-
setSites
Sets the sites (point or vertices) which will be diagrammed from a collection ofCoordinate
s.- Parameters:
coords
- a collection of Coordinates.
-
setClipEnvelope
Sets the envelope to clip the diagram to. The diagram will be clipped to the larger of this envelope or an envelope surrounding the sites.- Parameters:
clipEnv
- the clip envelope.
-
setTolerance
public void setTolerance(double tolerance) Sets the snapping tolerance which will be used to improved the robustness of the triangulation computation. A tolerance of 0.0 specifies that no snapping will take place.- Parameters:
tolerance
- the tolerance distance to use
-
create
private void create() -
getSubdivision
Gets theQuadEdgeSubdivision
which models the computed diagram.- Returns:
- the subdivision containing the triangulation
-
getDiagram
Gets the faces of the computed diagram as aGeometryCollection
ofPolygon
s, clipped as specified.The userData attribute of each face Polygon is set to the Coordinate of the corresponding input site. This allows using a Map to link faces to data associated with sites.
- Parameters:
geomFact
- the geometry factory to use to create the output- Returns:
- a GeometryCollection containing the face Polygons of the diagram
-
clipGeometryCollection
-