public static void main(String[] args) { GeometryFactory geometryFactory = new GeometryFactory(); Collection<Coordinate> sites = new ArrayList<>(); sites.add(new Coordinate(70, 70)); sites.add(new Coordinate(50, 150)); sites.add(new Coordinate(150, 50)); sites.add(new Coordinate(150, 150)); sites.add(new Coordinate(250, 50)); sites.add(new Coordinate(250, 150)); sites.add(new Coordinate(350, 50)); sites.add(new Coordinate(370, 170)); VoronoiDiagramBuilder voronoiDiagramBuilder = new VoronoiDiagramBuilder(); voronoiDiagramBuilder.setSites(sites); List<Polygon> polygons = voronoiDiagramBuilder.getSubdivision().getVoronoiCellPolygons(geometryFactory); BoundingBox boundingBox = BoundingBox.createBoundingBox(0, 0, 400, 200); Polygon boundingPolygon = VoronoiGeometryUtils.createBoundingPolygon(boundingBox); Collection<Geometry> cutGeometries = VoronoiGeometryUtils.cutPolygonsByBoundary(polygons, boundingPolygon); Collection<SimpleFeature> features = VoronoiGeometryUtils.createFeaturesFromPolygons(cutGeometries); ShapeFileWriter.writeGeometries(features, "/Users/dominik/voronoi_test.shp"); } }
static Collection<Geometry> determineVoronoiShapes(ActivityFacilities measuringPoints, BoundingBox box) { LOG.warn("Started creating Voronoi shapes."); Collection<Coordinate> sites = new ArrayList<>(); for (ActivityFacility measuringPoint : measuringPoints.getFacilities().values()) { Coordinate coordinate = new Coordinate(measuringPoint.getCoord().getX(), measuringPoint.getCoord().getY()); sites.add(coordinate); } VoronoiDiagramBuilder voronoiDiagramBuilder = new VoronoiDiagramBuilder(); voronoiDiagramBuilder.setSites(sites); List<Polygon> polygons = voronoiDiagramBuilder.getSubdivision().getVoronoiCellPolygons(geometryFactory); Polygon boundingPolygon = createBoundingPolygon(box); Collection<Geometry> geometries = cutPolygonsByBoundary(polygons, boundingPolygon); LOG.warn("Finished creating Voronoi shapes."); return geometries; }
bbox.maxY)); QuadEdgeSubdivision subdivision = cvb.getSubdivision();
List<Polygon> neighboursPolygons = nvb.getSubdivision() .getVoronoiCellPolygons(fatory);
} else { QuadEdgeSubdivision subdivision = diagramBuilder.getSubdivision(); List<Coordinate> circumcenter = new ArrayList<Coordinate>(geomCollection.getNumGeometries()); subdivision.visitTriangles(new TriangleVisitorCircumCenter(circumcenter), false);
} else { QuadEdgeSubdivision subdivision = diagramBuilder.getSubdivision(); List<Coordinate> circumcenter = new ArrayList<Coordinate>(geomCollection.getNumGeometries()); subdivision.visitTriangles(new TriangleVisitorCircumCenter(circumcenter), false);