如何利用jts将点云构造成一个多边形

来源:互联网 发布:软件开发工作计划模板 编辑:程序博客网 时间:2024/06/15 20:12

背景

现有许多离散点,需要将其构造成一个外包多边


原理

利用JTS提供的Tin算法能力

 

实现:

Coordinate[] coordinates = new Coordinate[]{new Coordinate(0, 1),new Coordinate(3, 4),new Coordinate(1, 0),new Coordinate(2, 0),new Coordinate(2, 3),new Coordinate(1, 2),new Coordinate(3, 1),new Coordinate(1, 1),new Coordinate(2, 2)};/*Coordinate[] coordinates = new Coordinate[]{new Coordinate(0, 0),new Coordinate(1, 1),new Coordinate(2, 3)};*/GeometryFactory gf = new GeometryFactory();MultiPoint mp = gf.createMultiPoint(coordinates);ConformingDelaunayTriangulationBuilder builder = new ConformingDelaunayTriangulationBuilder();builder.setSites(mp);//实际为GeometryCollection(组成的geometry紧密相连)Geometry ts = builder.getTriangles(gf);//以0的距离进行缓冲(因为各多边形两两共边),生成一个多边形//此时则将点云构造成了多边形Geometry union = ts.buffer(0);String text = union.toText();System.out.println(text);





原创粉丝点击