JTS拓扑结构程序组技术规范Word下载.docx
《JTS拓扑结构程序组技术规范Word下载.docx》由会员分享,可在线阅读,更多相关《JTS拓扑结构程序组技术规范Word下载.docx(42页珍藏版)》请在冰点文库上搜索。
2.其它资料来源.......................................................................7
3.设计目的...........................................................................7
4.专有术语...........................................................................8
5.计数法..............................................................................8
6.Java的执行.........................................................................8
7.计算几何图形问题..................................................................9
7.1精确度模型...................................................................9
7.1.1固定精度....................................................................9
7.1.2浮动精度....................................................................10
7.2构造点和空间紧缩......................................................10
7.3健壮性......................................................................11
7.4数值稳定性...............................................................11
7.5算法的执行..............................................................12
7.5.1单调链................................................................12
8.空间模型..........................................................................13
8.1空间模型的设计决策.....................................................13
8.2几何定义...................................................................14
8.2.1Geometry...............................................................15
8.2.2空的Geometry.......................................................15
8.2.3GeometryCollection..................................................15
8.2.4Curve.....................................................................15
8.2.5MultiCurve..............................................................15
8.2.6LineString..............................................................16
8.2.7LinearRing.............................................................16
8.2.8Polygon.................................................................16
8.2.9MultiPolygon...........................................................18
8.3简单要素类...........................................................18
8.3.1Geometry.............................................................18
8.3.2GeometryCollection.................................................18
8.3.3Point...................................................................18
8.3.4MultiPoint.............................................................18
8.3.5Curve...................................................................18
8.3.6LineString.............................................................18
8.3.7Line.....................................................................18
8.3.8LinearRing............................................................18
8.3.9MultiCurve............................................................18
8.3.10MultiLineString.....................................................18
8.3.11Surface...............................................................18
8.3.12Polygon...............................................................18
8.3.13MultiSurface.........................................................19
8.3.14MultiPolygon........................................................19
8.4Geometry类的标准表单..................................................19
8.5可支持的类.................................................................19
8.5.1Coordinate............................................................19
8.5.2CoordinateSequence................................................20
8.5.3Envelope..............................................................20
8.5.4IntersectionMatrix...................................................20
8.5.5GeometryFactory....................................................20
8.5.6CoordinateFilter......................................................20
8.5.7GeometryFilter......................................................20
8.6空间参考系统.............................................................20
9.基本几何算法与结构.......................................................21
9.1点-线方向测试.............................................................21
9.2交线测试...................................................................21
9.3交线计算..................................................................21
9.4环上点测试................................................................22
9.5环方向测试...............................................................22
10.拓扑结构计算.................................................................22
10.1拓扑结构图表.............................................................22
10.2标签........................................................................22
10.3计算来自标签的交集矩阵............................................23
10.4关联算法................................................................24
10.4.1标记独立元件.....................................................24
10.5覆盖图算法............................................................24
11.二进位谓词....................................................................25
11.1总论.......................................................................25
11.2方法规范..................................................................26
11.2.1Equals..............................................................26
11.2.2Disjoint............................................................26
11.2.3Intersects.........................................................26
11.2.4Touches...........................................................26
11.2.5Crosses............................................................27
11.2.6Within.............................................................27
11.2.7Contains...........................................................27
11.2.8Overlaps...........................................................27
12.空间分析法..................................................................27
12.1总论.......................................................................27
12.1.1计算几何法的表述...............................................27
12.2实质执行法...............................................................28
12.3设定-理论法..............................................................28
12.4方法规范..................................................................29
12.4.1Buffer.............................................................29
12.4.2ConvexHull.....................................................31
12.4.3Intersection.....................................................31
12.4.4Union.............................................................31
12.4.5Difference.......................................................31
12.4.6SymDifference...................................................31
13.其它方法......................................................................31
13.1.1Boundary.........................................................31
13.1.2IsClosed..........................................................32
13.1.3IsSimple..........................................................32
13.1.4IsValid.............................................................33
14.常见的文本输出输入......................................................33
14.1常见文本的语法........................................................33
14.2常见的文本阅读器......................................................35
14.3常见的文本编写器......................................................35
15.参考文献.......................................................................36
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中,所有的方法名都是以小写字母开头的。
为了遵循JavaBeans组件的规范,JTS中的方法名有时会带有“get”或者“set”的前缀
7.计算几何图形问题
7.1精确度模型
在某些精确度模型中,所有数值计算都可用上。
以下是精确度模型的几种类型:
固定精度
其坐标是在坐标网上以统一的间隔表示出来,计算出来的坐标经过舍入后放进这个坐标网里
浮点精度
其坐标是以浮点出现的。
计算出来的坐标比输入值更精确(浮点数的精确度是有限的)。
精密精确度
坐标可被非常精确地表示出来(通常以分子、分母皆为整数的有理数形式)。
执行这种模型需要更大的空间与更多的时间,一般不采用。
通常一个算法的精确度模型并不是直接表示出来的,而是隐含在用于描述数值(如浮点数或整数)的模型中。
这种方法的一个局限就是用户在较低的精确度下无法使用精确度模型。
计算出来的结果的精确