Jts个人学习笔记-gohui - 图文

2026/1/27 6:48:05

Jts个人学习笔记

Jts(Java Topology Suite)是关于GIS空间数据Java的API。

目录

三角网的创建 ............................................................................................................................................................... 2 1、创建Delaunay三角网: .................................................................................................................................................. 2 2、创建Conforming Delaunay三角网 .................................................................................................................................. 2 3、创建Voronoi图 ................................................................................................................................................................ 3 4、Quad-Edge,四方边缘结构 ............................................................................................................................................. 3 5、在Tin、DTin、Voronoi中插入一点(IncrementalDelaunayTriangulator)................................................................ 11 DistanceOp类的相关操作:com.vividsolutions.jts.operation.distance ........................................................................ 11 1、nearestPoints(Geometry g0, Geometry g1) .................................................................................................................... 11 2、distance(Geometry g0, Geometry g1) ............................................................................................................................. 12 3、nearestLocations() ........................................................................................................................................................... 12 LineSegment类的相关操作:com.vividsolutions.jts.geom .......................................................................................... 12 1、closestPoint(Coordinate p) .............................................................................................................................................. 12 2、closestPoints(LineSegment p) .......................................................................................................................................... 13 3、distance (Coordinate p)和distancePerpendicular(Coordinate p) ................................................................................... 13 4、intersection(LineSegment line)和lineIntersection(LineSegment line) ........................................................................... 13 5、pointAlong(double slf) ..................................................................................................................................................... 14 6、pointAlongOffset(double slf, double od) ......................................................................................................................... 14 7、project(Coordinate p)和project(LineSegment seg) ........................................................................................................ 15 8、projectionFactor(Coordinate p) ....................................................................................................................................... 15 9、segmentFraction(Coordinate inputPt) ............................................................................................................................. 16 CGAlgorithms类的相关操作:com.vividsolutions.jts.algorithm .................................................................................. 16 1、orientationIndex(Coordinate p1, Coordinate p2, Coordinate q) ..................................................................................... 16 Angle类的相关操作:com.vividsolutions.jts.algorithm ............................................................................................... 16 1、angleBetween(Coordinate tip1, Coordinate tail, Coordinate tip2) ................................................................................. 17 2、angleBetweenOriented(Coordinate tip1, Coordinate tail, Coordinate tip2) ................................................................... 17 AffineTransformationFactory类的操作:com.vividsolutions.jts.geom.util ................................................................... 17 1、createFromBaseLines(Coordinate src0, Coordinate src1, Coordinate dest0, Coordinate dest1) ................................... 18 AffineTransformation类的操作:com.vividsolutions.jts.geom.util .............................................................................. 18 1、构造函数:AffineTransformation(double[] matrix) ....................................................................................................... 18

三角网的创建

Jts中创建Tin时,会自己添加新的点,不是太好(ArcGIS在创建Tin时也是会自己新建点的)

1、创建Delaunay三角网:

DelaunayTriangulationBuilder delaunayBuilder = new DelaunayTriangulationBuilder(); delaunayBuilder.setSites(coorList);

Geometry geo = delaunayBuilder.getEdges(new GeometryFactory());

2、创建Conforming Delaunay三角网

ConformingDelaunayTriangulationBuilder conformTriBuilder = new ConformingDelaunayTriangulationBuilder();

conformTriBuilder.setSites(geoFactory.createMultiPoint(coorList.toArray(new Coordinate[0])));

conformTriBuilder.setConstraints(geoFactory.createMultiLineString(lineStrings)); Geometry geo = delaunayBuilder.getEdges(new GeometryFactory());

注:还有一个ConformingDelaunayTriangulator,这个类里面包含了更多的方法。但是我们在创建的时候不用管这个类,直接用ConformingDelaunayTriangulationBuilder就好,因为在

ConformingDelaunayTriangulationBuilder内部,它自己调用了ConformingDelaunayTriangulator。真正的Tin创建工作,都是交给ConformingDelaunayTriangulator的,

ConformingDelaunayTriangulationBuilder给我们提供了一个更方便的接口。

ConformingDelaunayTriangulationBuilder部分源码:

3、创建Voronoi图

VoronoiDiagramBuilder voronoiBuilder = new VoronoiDiagramBuilder(); voronoiBuilder.setSites(coorList);

Geometry geo = voronoiBuilder.getDiagram(new GeometryFactory());

4、Quad-Edge,四方边缘结构

在所有的类中(DelaunayTriangulationBuilder、ConformingDelaunayTriangulationBuilder、VoronoiDiagramBuilder),都有一个getSubdivision()方法, DTin CDTin Voronoi 它们都返回一个QuadEdgeSubdivision类的对象, 其结构如下: O:Orig D:Dest L:Left R:Right

Next:左边的面 Prev:右边的面

System.out.println(\ + q);

System.out.println(\ + q.dNext()); System.out.println(\ + q.dPrev()); System.out.println(\ + q.lNext()); System.out.println(\ + q.lPrev()); System.out.println(\ + q.rNext()); System.out.println(\ + q.rPrev()); System.out.println(\ + q.oNext()); System.out.println(\ + q.oPrev()); System.out.println(\ + q.dest()); System.out.println(\ + q.orig());

System.out.println(\ + q.rot());//有错,toString里面的错 System.out.println(\ + q.invRot());//有错,toString里面的错

System.out.println(\ + q.sym());


Jts个人学习笔记-gohui - 图文.doc 将本文的Word文档下载到电脑
搜索更多关于: Jts个人学习笔记-gohui - 图文 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219