JTS
文章平均质量分 54
松果仁
淡泊名利 宁静致远
展开
-
JTS简介(一)
JTS简介JTS提供了一套操作几何向量的java类库早期版本 com.vividsolutions,已废弃不在维护现在版本 com.locationtech.jts 由eclipse开源基金会托管代码类库地址JTS GitHub代码包结构核心模块:jts-core - 核心类库:提供geometry model, operations, algorithms, and spatial data structuresjts-io-common - I/O classes for open原创 2022-04-12 14:53:26 · 4190 阅读 · 0 评论 -
JTS-通过Coordinate点截断几何Geometry
通过一堆点,线上的点或者靠近线的点,来截取线段,将线段截取成多段。原创 2023-10-18 15:01:28 · 355 阅读 · 0 评论 -
JTS-豪斯多夫距离计算DiscreteHausdorffDistance
计算g1,与g2的豪斯多夫距离,densifyFrac默认0,densifyFrac:作用稀疏点,通过带入公式(numSubSegs = (int) Math.rint(1.0/fraction))求segment分组数量。离散豪斯多夫距离,Hausdorff距离以Felix Hausdorff(1868-1942)命名的,是一个集合到另一个集合中最近点的最大距离.原创 2023-07-17 10:45:45 · 338 阅读 · 0 评论 -
JTS-Orientation方向计算
计算q点处在p1点->p2点方向的左侧还是右侧,左侧(逆时针方向)返回1,右侧(顺时针方向)返回-1。用于计算基本几何结构(包括点三重体(三角形)和环)的方向的函数。方向是平面几何的基本属性。判断环是否是逆时针方向。原创 2023-07-17 10:42:57 · 276 阅读 · 0 评论 -
JTS-Angle GIS几何角度计算使用说明(十八)
org.locationtech.jts.algorithm.Angle 角度计算使用说明示例代码库Angle角度计算1.Angle.angle(p0,p1)public static double angle(Coordinate p0, Coordinate p1) { double dx = p1.x - p0.x; double dy = p1.y - p0.y; return Math.atan2(dy, dx);}返回与x轴正方向的夹角:计算p0到p1的弧度 Angl原创 2022-04-28 10:50:15 · 1562 阅读 · 0 评论 -
案例六:JTS-单位换算
GIS单位换算 距离(厘米\米)转换为角度,角度转换为距离(厘米\米)原创 2022-08-04 11:19:30 · 1134 阅读 · 1 评论 -
案例五:JTS-线扩buffer,左扩N米右扩N米
将linestring进行扩buffer,左扩1米右扩2米。原创 2022-08-04 11:16:20 · 1574 阅读 · 1 评论 -
案例四:JTS-根据起始点求一个线的子线
JTS求A,B点之间在L上面的线段L1。原创 2022-08-04 11:12:36 · 473 阅读 · 0 评论 -
案例三:JTS-线到线投影
案例:线到线投影示例在线段l2上面做l1的投影示例代码库说明通过LocationIndexedLine来实现;借助locationIndexedLine.indexOfl1上面的第一个形状点p1,投影到l2上面得到p11;l1上面生的最后一个形状点Pn,投影到l2上面得到Pnn;通过locationIndexedLine.extractLine(p2位置,Pn位置) 来截取生成投影对象 L11示例代码package com.leokok.jts.learning.jts.core.d原创 2022-05-31 15:17:53 · 713 阅读 · 2 评论 -
案例二:JTS-延线的画线方向,判断点(线)在线的右侧还是左侧
案例:延线的画线方向,判断点在线的右侧还是左侧示例代码库思路:通过向量角度的正负来进行判断示例Angle.angleBetweenOriented示例图例判断P3,P4在线段 P1-P2的左侧还是右侧示例代码import org.locationtech.jts.algorithm.Angle;import org.locationtech.jts.geom.Coordinate;/** * 左右判断 * 通过向量的角度来判断点在线的左侧还是右侧 */public class原创 2022-05-31 15:16:06 · 951 阅读 · 0 评论 -
案例一:JTS-计算点到线的垂线
案例:计算点到线的垂线使用场景计算点在线上的垂足;点的垂线示例DistanceToPoint.computeDistance示例图例计算P点到L的垂线示例代码import org.locationtech.jts.algorithm.distance.DistanceToPoint;import org.locationtech.jts.algorithm.distance.PointPairDistance;import org.locationtech.jts.geom.LineS原创 2022-05-31 15:13:07 · 1513 阅读 · 3 评论 -
jts-core 使用说明(二)
jts-core 使用说明层次结构org.locationtech.jts:algorithm - 算法包jts-io-common - I/O classes for open spatial formatsgeom - geom基础包geom.prep - 对适当准备的几何图形执行优化的几何操作类edgegraph - 边与图index - 空间索引IO - 各类外部格式输入输出工具包,GML、KML、WKB、WKT等各包使用说明1.org.locationtech.jts.g原创 2022-04-12 14:57:29 · 2642 阅读 · 1 评论 -
JTS-Coordinate 使用说明(三)
org.locationtech.jts.geom.Coordinate 使用说明Coordinate 经纬度操作类Coordinate 相关类关系图说明用于存储二维笛卡尔(2-dimensional Cartesian plane)坐标的轻量级类:1.提供基础存储X,Y,Z的set get方法 2.提供计算坐标与坐标点的相关计算方法distance,compare,equals等直接子类CoordinateXY, CoordinateXYM二维带M, CoordinateXYZM三维度代M原创 2022-04-12 14:59:46 · 2376 阅读 · 3 评论 -
JTS-Geometry 使用说明(五)
org.locationtech.jts.geom.Geometry 使用说明Geometry 经纬度操作类Geometry类继承关系说明平面、线性几何操作抽象类提供的相关方法:1.基础方法:1.1 getLength:获取长度,线几何返回点与点之间的长度之和;闭合几何返回周长;其它返回0 1.2 getSRID:获取srid 1.3 isEmpty:判读几何是否是空,判断几何的 point.size == 0 ; 或者几何包含 empty: reader.read(“POINT EMP原创 2022-04-12 15:08:26 · 6608 阅读 · 1 评论 -
JTS-Envelope使用说明(六)
org.locationtech.jts.geom.Envelope 使用说明示例代码库Envelope 边界操作类说明定义二维坐标的平面的矩形区域;获取minx,miny,maxy,maxx等操作示例import org.locationtech.jts.geom.Coordinate;import org.locationtech.jts.geom.Envelope;/** * 矩形区域边界测试类 */public class EnvelopeTest { publi原创 2022-04-12 15:17:53 · 994 阅读 · 0 评论 -
JTS-IntersectionMatrix 使用说明(七)
org.locationtech.jts.geom.IntersectionMatrix 使用说明示例代码库IntersectionMatrix DE-9IM模型操作类说明DE-9IM 是一种拓扑模型,用于描述两个几何图形空间关系的一种标准。在专业领域,通常将每个几何图形分为三部分:外部(exterior),边界(boundary)和内部(interior)。两个图形的关系判断,实际上就是三个部分的分别判断,因此就会有一个3*3交叉矩阵,这个矩阵就是DE-9IM模型:I()代表内部,B()代原创 2022-04-12 15:19:33 · 501 阅读 · 0 评论 -
JTS-PrecisionModel 使用说明(八)
org.locationtech.jts.geom.PrecisionModel 使用说明示例代码库PrecisionModel 精度模式说明精度模型是数值计算的核心,JTS使用默认的双精度模型。当使用较大值时,java中内置的数学并不是非常精确,可以通过配置GeometryFactory的PrecisionModel使用不同的精度。精度分类FIXED: 固定精度表示坐标有固定的小数位数,小数点的位数由比例因子的对数10决定(log10 of the scale)FLOATING: JAVA中原创 2022-04-12 15:23:55 · 1279 阅读 · 0 评论 -
JTS-PreparedGeometry使用说明(九)
org.locationtech.jts.geom.prep 使用说明示例代码库prep包类关系图说明适当准备的几何图形执行优化的几何操作类提供的方法操作示例package com.leokok.jts.learning.jts.core.geom.prep;import org.locationtech.jts.geom.*;import org.locationtech.jts.geom.impl.CoordinateArraySequenceFactory;import o原创 2022-04-12 15:26:06 · 379 阅读 · 0 评论 -
JTS-GeometryFactory 使用说明(十)
org.locationtech.jts.geom.GeometryFactory 使用说明示例代码库GeometryFactory 几何操作工厂类类关系图说明提供一组实用方法,用于从坐标列表中构建几何体对象。请注意,工厂构造方法不会以任何方式更改输入坐标。直接子类FixingGeometryFactory:几何工厂扩展,用于修复用于创建线性环的结构错误坐标序列提供的方法构造函数操作方法操作示例package com.leokok.jts.learning.jts.core.原创 2022-04-12 15:38:09 · 2203 阅读 · 0 评论 -
JTS-Coordinate工厂使用说明(十一)
org.locationtech.jts.geom.impl 使用说明prep包类关系图说明Coordinate操作几何工厂类,CoordinateArraySequenceFactory单例模式提供的方法操作示例package com.leokok.jts.learning.jts.core.geom.impl;import org.locationtech.jts.geom.Coordinate;import org.locationtech.jts.geom.Coordinat原创 2022-04-13 09:20:02 · 652 阅读 · 0 评论 -
JTS-AffineTransformation仿射变换理论基础(十二)
仿射变换理论基础变化模型分类变换模型是指根据待匹配图像与背景图像之间几何畸变的情况,所选择的能最佳拟合两幅图像之间变化的几何变换模型。可采用的变换模型有如下几种:刚性变换、仿射变换、透视变换和非线形变换等,如下图其中第三个的仿射变换就是我们这节要讨论的。仿射变换(Affine Transformation)Affine Transformation是一种二维坐标到二维坐标之间的线性变换,保持二维图形的“平直性”(译注:straightness,即变换后直线还是直线不会打弯,圆弧还是圆弧)和“平原创 2022-04-13 13:07:34 · 3002 阅读 · 0 评论 -
JTS-AffineTransformation 仿射变换使用说明(十三)
org.locationtech.jts.geom.util.AffineTransformation 使用说明AffineTransformation 仿射变换工具类AffineTransformation 相关类关系图说明表示二维笛卡尔平面上的仿射变换。它可用于变换坐标或几何。仿射变换是通过以下基本类型的一系列变换将2D平面映射到其自身:reflection反射(通过直线)rotation旋转(绕原点)scaling缩放(相对于原点)shearing剪切(在X和Y方向)transl原创 2022-04-13 13:13:58 · 907 阅读 · 0 评论 -
JTS-EdgeGraph使用说明(十四)
org.locationtech.jts.edgegraph.EdgeGraph 使用说明EdgeGraph说明通过HalfEdge构建EdgeGraph,支持跟踪图形中的顶点,允许有效查找边和顶点,只支持直接点到点查找,不支持跨节点查找操作示例package com.leokok.jts.learning.jts.core.edgegraph;import org.locationtech.jts.edgegraph.EdgeGraph;import org.locationtech.jt原创 2022-04-13 13:16:12 · 265 阅读 · 0 评论 -
JTS-SpatialIndex空间索引使用说明(十五)
org.locationtech.jts.index 使用说明SpatialIndex说明空间索引算法使用说明类关系图实现类说明STRtree 文档下载Download PDF.Quadtree 四叉树HPRtree操作示例通过构建索引,查询黄色框内对应的线,分析三种空间索引准确性与耗时package com.leokok.jts.learning.jts.core.index;import com.alibaba.fastjson.JSON;import co原创 2022-04-13 13:25:13 · 1397 阅读 · 2 评论 -
JTS-WKT格式输入输出使用说明(十六)
org.locationtech.jts.io.wkt 使用说明对WKT格式的数据的输入输出操作,WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。WKT可以表示的几何对象包括:点,线,多边形,TIN(不规则三角网)及多面体。可以通过几何集合的方式来表示不同维度的几何对象。几何物体的坐标可以是2D(x,y),3D(x,y,z),4D(x,y,z,m),加上一个属于线性参照系统的m值。以下为几何WKT字串样例:POINT(6 10原创 2022-04-13 13:28:38 · 1811 阅读 · 0 评论 -
JTS-WKB格式输入输出使用说明(十七)
org.locationtech.jts.io.wkb 使用说明用于几何值的著名二进制(WKB)表示是由OpenGIS规范定义的。它还定义在ISO “SQL/MM Part 3: Spatial”标准中。WKB用于以二进制流的形式交换几何数据,二进制流由含几何WKB信息的BLOB值表示。WKB使用1字节无符号整数、4字节无符号整数、以及8字节双精度数(IEEE 754格式)。1字节等于8比特。例如,与POINT(1 1)对应的WKB值由下述21字节序列构成(在此,每个字节由2个十六进制数值表示):原创 2022-04-13 13:31:01 · 1277 阅读 · 0 评论