Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

JTS官方技术规范中文翻译版 PDF 下载


分享到:
时间:2020-07-25 09:03来源:http://www.java1234.com 作者:小锋  侵权举报
JTS官方技术规范中文翻译版 PDF 下载
失效链接处理
JTS官方技术规范中文翻译版 PDF 下载

本站整理下载:
 
相关截图:


主要内容:

1.总论
JTS拓扑结构程序组是一个通过使用明确的精度模型和健壮的几何算法来执行空间数据操作的Java应用编程孔。JTS是用来对可以支持空间数据集的确认、处理、综合及质疑的应用程序进行改善。这篇文献就是对在JTS拓扑程序组中执行的类、方法与算法进行说明。
JTS试图尽可能精确地执行开放式地理信息系统GIS中的简单要素实现规范(SFS)。在一些情况下,SFS是不清晰的,或者是遗漏了某个规范。在这种情况下,JTS试图选择一个合理的相容的替代物。SFS的不同之处与其细节之处都将会在这个说明书中论述到。有关等级与方法的详细文献将会以Java文件的形式出现,作为原始资料代码。
 
2.其它的资料来源
·SQL版本1.1的开放GIS简单要素实现规范(即本文提及的SFS)。本文为空间数据模型提供了标准的规范,并对空间谓词和JTS执行的功能下了定义。
 
3.设计的目的
JTS的设计是为了满足以下的目的:
 
· 空间模型和方法定义能够达到与开放GIS简单要素实现规范尽可能相符,并且能够正确地执行。
 
· 应用编程孔API设计在任何情况下都符合Java的规范。例如:
接入口函数要采用Java的getX 和setX的规范。
谓词要采用isX的规范。
方法要以小写字母开头。
 
· JTS函数可以支持用户定义的精确度模型。JTS算法对于该精确度模型仍然保持其健壮性。
 
· 在可能的时候,方法会在之前定义的精确度模型中返回拓扑结构和几何图形正确的结果。
 
· 正确性是最重要的,空间与时间的有效性的重要性是次于正确性的。
 
· JTS的速度足够快,可以适用于生产环境中。
 
· 为了让其他的开发者更好地理解,在JTS中使用的算法和代码应该是条理清晰并且结构优化的。
 
 
4.专用术语
术语 定 义
坐标 在已经定义好的精确度模型中可以被精确地描绘的空间中的一点。
精确计算 在操作过程中支持所有数字的数值计算,通常要用到大量复杂的算法。
节点 相同或不同的几何图形内两条线相交的点。这点不必要用坐标表示出来,因为大部分的相交点的输出计算比输入计算需要更加严格的精确度。
节点的计算 计算出在一个或多个几何体相交之处形成的节点的过程。
非坐标 不可被描绘成一个坐标的点。
 
数值稳定性 算法的稳定性取决于它的输出结果中误差的最大范围。如果算法的误差范围是很小的,那么就可以认为它是稳定的。
R3中任意一点,一般说来,可以无限地描绘出来。
 
真交点 两条线段相交所形成的唯一交点,并且是在这两条线段上的点。
健壮计算 一种对于所有的输入都必定会输出正确答案的数值计算方法,通常需要有特别为处理舍入误差而设的算法。
SFS 开放式地理信息系统协会OGC的简单要素实现规范 
分辨率单位 在已经定义好的精确度模型中的最小的可以表示出来的距离。
顶点 几何体中的边角点,这些点的坐标都可以确定的话,就可以确定一个几何体的位置。
 
5.计数法
·在这个规范中遵循SFS的项目的出现是参考圆括号里与SFS相关的内容的:(SFS1.0)
·这个规范中详细说明SFS或与SFS有差别的项目将会以带圆括号的JTS这个术语出现。(JTS )
 
6. JAVA 的执行
Java的编码方法在某些情况下是有异于SFS中使用的编码方法的。通常在编码方法不同之处,JTS 就会遵循Java的规范。JTS编码方法在以下方面有异于SFS编码方法:
· SFS有时用整数来代替布尔值,而在这样的情况下,JTS是用布尔值来表示。
· 在SFS中,方法名是以大写字母开头的;而在JTS中,所有的方法名都是以小写字母开头的。
· 为了遵循Java Beans组件的规范,JTS中的方法名有时会带有“get”或者“set”的前缀
 
7. 计算几何图形问题
 7.1 精确度模型
在某些精确度模型中,所有数值计算都可用上。以下是精确度模型的几种类型:
 
固定精度 其坐标是在坐标网上以统一的间隔表示出来,计算出来的坐标经过舍入后放进这个坐标网里
浮点精度 其坐标是以浮点出现的。计算出来的坐标比输入值更精确(浮点数的精确度是有限的)。
精密精确度 坐标可被非常精确地表示出来(通常以分子、分母皆为整数的有理数形式)。执行这种模型需要更大的空间与更多的时间,一般不采用。
 
通常一个算法的精确度模型并不是直接表示出来的,而是隐含在用于描述数值(如浮点数或整数)的模型中。这种方法的一个局限就是用户在较低的精确度下无法使用精确度模型。计算出来的结果的精确度常常会比输入的要高。这种较高精确度的值不能用于更进一步的计算,或者不能以原来的(或较低的)精确度来存储。
JTS允许用户指定一个明确的精确度模型,所以就可以解决这个难题。精确度模型允许客户机程序算出输入的坐标值的精确度的位数,并可以在计算出的坐标中保留原来的精确度。
在JTS方法中,输入的几何图形可能会产生不同的精确度模型。在返回几何图形的方法中,返回的结果就是输入的精确度模型中精确度最大的那个模型。请注意,这个规律只有当两个精确度模型有可比性时可行。两个精确度模型有可比性是指其中一个模型的比例因子是另一个的整数倍。而两个模型没有可比性时,这个规律是不适用的。
JTS只支持两种基本的精确度模型:固定的和浮动的。
 
1.1.1固定精度
在固定精度的精确度模型中,坐标点是被预先设定会稳定地落在离散坐标网的交点上。坐标网的大小取决于模型的比例因子,并与比例因子成反比。比例因子还被认为可以决定能够支持多少个十进制的精确度。比例因子可能大于或者小于1,决定于精确点在小数点的右边还是左边。
 
 
 
根据以下的方程式,坐标的精确度就会增大:
 
 
 
精密坐标将会在内部被以双精度值表示,这就是“精密内部表征”。自从Java使用IEEE-754浮点标准以来,它就提供了53位的精确度。(所以最大的精确表征值为9,007,199,254,740,992)。
在创建JTS结构之前,输入程序会将坐标四舍五入成精确度模型。(JTS的输入程序会自动完成这个舍入过程。
 
1.1.2浮点精度
浮点精度模型可支持两种模型,一是双精度,一是单精度。它们都是以基于IEEE-754浮点标准的Java浮点模型为基础的。这个标准提供了近似于十六进制的双精度和六进制的单精度。
在浮点双精度模型中,全精度的坐标可以利用Java双精度浮点数。输入的坐标不应被四舍五入,用于计算构造点的内部运算也不应将计算出的坐标四舍五入。要注意,这不是说那些构造点就是精确的,它们仍会受到双精度数字的精确度限制,所以就只能说是近似精确的。
在浮点单精度模型中,计算出来的坐标会被四舍五入成单精度。这种模型也适用于计算出来的几何图形是单精度的最终目的文件(就如Java2D)。
 
7.2 构造点和空间紧缩
空间分析法计算得到的几何图形可能包含在输入的几何图形中并不存在的构造点。在输入的几何图形边缘上的线段的交点处会产生新的点。通常情况下,构造点是无法精确地表示出来。交点坐标的精确度位数正是输入线段坐标的两倍。为了可以直接将这些构造点表示出来,JTS要将它们进行四舍五入至适用于既定的精确度模型中。
然而,经过舍入的坐标会发生稍微的位移。与精确结果不一致的线段就有可能与简缩了的表示部分相一致。由于线线组合,产生的几何图形中就会包含在输入的几何图形中并不存在的点。更严重的是,线面组合会导致空间紧缩,计算得出的组件的尺度会低于精确结果。
 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐