第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/5/20 4:36:35 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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 - 图文 的文档
Jts个人学习笔记-gohui - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0oqqj096822i4cx3qij4_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top