Java事务服务拓扑套件开发者指南
版本  1.4
文档改变检验
修改版本编号发布日期作者所作改变主要描述
1.4 2003年10月17日Jonathan Aquino 为JTS 1.4版本创建的最初稿
内容表
1. 概述 (4)
1.1 其他资源 (4)
2. 准备开始 (4)
3. 处理空间关系 (5)
4. 处理叠加操作 (5)
5. 缓冲处理 (7)
5.1 基本的缓冲 (7)
5.2 帽端形式(END CAP STYLE) (7)
5.3 详述近似值数字化 (8)
6.  多边化(多角形化) (9)
7. 合并一组线(LineString) (10)
8. 使用定制的并列顺序 (11)
9. 提示技巧及技术.................................................................................. . (11)
9.1 联接一组线(LineString) (11)
9.2 有效地合并很多的多边形 (12)
1.概述
Java Transaction Service(J ava事务服务)拓扑套件,是一种能够利用清楚精确的模型和强大的几何算法来实现一套核心空间数据操作的JAVA 应用编程接口(API)。它提供一种详细说明2-D 线性几何图形(Geometry)的完善模式。许多在计算几何学的普通操作(Operation)和空间数据处理在一个清晰的,一致的,完整的应用程序接口(API)是无掩蔽的。Java事务服务(JTS)是为了致力于能够支持确定性,清洁性,完整性和对空间数据进行查询的应用软件的发展。
本文档适合于那些愿意使用JTS的开发者去满足他们对空间数据处理的需求。它描述了JTS应用程序接口API并且提供了源码范例。
注意:本文档正在完善中
1.1其他资源
●<OpenGIS 对SQL的简单特征规范>修订版本1.1(在本文相关规范称为SFS)。即对空间数
据模型和空间谓项以及JTS实现功能的参考规范。
●<JTS技术规范>关于在JTS中实现类,方法和运算法则的设计规范。
●<JTS Javadoc>关于所有JTS中类,方法和运算法则的文件。
2.准备开始
最普通的JTS任务包括创造和使用几何(geometry)对象。用人工方式去建立几何对象的最简单办法是使用WKTReader(Well-Known Text Reader)去产生一个WKT字符串,例如:Geometry g1 = new WKTReader().read("LINESTRING (0 0, 10 10, 20 20)");
JTS技术规范提供了WKT的准确详述。同时,很多WKT的例子可以在test目录下的文件夹里面做到。
在一个真正的项目中,更容易去使用GeometryFactory,因为你不需要去建立一个WKT字符串,而是直接地面向对象进行工作。
Coordinate[] coordinates = new Coordinate[] {
new Coordinate(0, 0), new Coordinate(10, 10),
new Coordinate(20, 20) };
Geometry g1 = new GeometryFactory().createLineString(coordinates);
gis字符串是什么一旦你建立了你的Geometry类,你可以利用它去处理很多事务。你能容易的发现两个Geometry 之间的交叉点(交集)。
Geometry g3 = g1.intersection(g2);
构造Geometries的其他算法包括:区域(area),封套(envelope),质心(centroid)和缓冲器(buffer)。需要了解更多关于Geometry的功能,可以查阅在com.包里关于Geometry的JA V ADOC,以及该文档的后续部分。
3.计算空间关系
JTS一个重要的应用是计算几何图形(Geometry)之间的空间关系,它提供了多种多样的用于处理空间关系的办法。JTS遵循OGC详细说明的维扩展九交集模型(the Dimensionally-Extended 9 Intersection Matrix model)。为计算两个几何图形的维扩展九交集模型,利用相关的办法去计算:Geometry a = . . .
Geometry b = . . .
IntersectionMatrix m = a.relate(b);
大多数重要关系可以详细说明成为一种匹配一组交叉矩阵的模式。JTS同样提供了一套布尔数学体系(boolean)的能够直接计算普通空间关系的谓项(predicates谓项,阐述)。它们包括:相等(Equals):几何形状拓扑上相等。
脱节(Disjoint):几何形状没有共有的点。
相交(Intersects):几何形状至少有一个共有点(区别于脱节)
接触(Touches):几何形状有至少一个公共的边界点,但是没有内部点。
交叉(Crosses):几何形状共享一些但不是所有的内部点。
内含(Within):几何形状A的线都在几何形状B内部。
包含(Contains):几何形状B的线都在几何形状A内部(区别于内含)
重叠(Overlaps):几何形状共享一部分但不是所有的公共点,而且相交处有他们自己相同的区域。
在某些例子中,谓项的准确定义是微妙的。你应该查阅JTS技术规范以确定在任何给定的案例中会返回什么样的结果。
4.处理叠加操作
在先前部分讨论的正确或者错误的功能中,例如相交(Intersects)和包含(Contains),我们现在在图4-1的部分插图展示JTS的叠加操作。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。