JTS学习-com.vividsolutions.jts.operation包

原创 2007年10月12日 22:49:00
           JTS组织以下的文件夹:几何图形(geom包)、拓扑图(geomgraph包) 、基本算法(algorithm包)、索引方法(index包)、输入/输出(io包)、线性关系(linearref包)、计算交点(noding包)、几何图形操作(operation包)、平面图(planargraph包)、多边形化(polygnize包)、精度(precision)、工具(util包)。
            在前面的文章中,分析了,这两天看了JTS的User Development Guide与JTS Technical Specs,对JTS的operation包有了一点的了解。特写下来作为备忘。
            在operation包内,包含buffer、distance、linemerge、overlap、polygonize、predicate、relate、valide八个子包;分别对应着计算图形的缓冲、距离、;线段融合、图形覆盖、多边形化、断言、关联、有效性等的操作。当然首先要明白,所有的操作针对的都是在geom包中定义的Geometry对象。由于在计算机中,所有的图形都是离散的点组成,所以所有的操作都是在组成图形的点的集合上进行的。在本文陈述中,Geometry A,做点的集合时,也写作(A)。(表述并不确切)
            一个图形(Geometry)的缓冲(buffer)就是在数学意义上的Minkovski sum。故计算GeometryA的缓冲,也即(A)的Minkovski sum。在本包的buffer算法中加了个参数,从而将图形整个由一个管状的形体整个包围起来。看起来就像是个缓冲器,我觉得这是操作名称的来源吧。
            距离操作(distance)是个二元操作,操作对象Geometry A、B,返回(A)与(B)中距离最近的两个点的距离。是集合论中的基本概念。
            线段的融合(linemerge)是将Geometry A中相互连接的线段进行连接。也即将line segment A、B(分别由两个坐标点表示)融合成一个line segment,去掉中间那个连接点。
            图形的覆盖(overlap),在这里不想多说了,自己稀里糊涂的。
            多边形化操作(polygonize)对Geometry A进行计算,返回一个多边形(Polygon)。将由许多个点表示的图形,用少量的点来表示,减少图形的信息,就是我们所谓的对图形进行降维。
            断言(predicate)是一个二维的操作,对Geometry之间的关系进行判断的操作。
            关联(relate)是个很重要的操作,根据DE-9IM(The Dimensionally Extended Nine-Intersection Model),该方法返回两个Geometry A与B的相交矩阵IM(Intersections Matrix)。这个矩阵在计算图形关系上用到。
            有效性(valid)没有细看。

             基本上,operation包内的操作就是上述这些,组织的思路很清晰。难点在于该包的操作都是建立在集合的基础上,认识到这一点后,看代码的速度就快很多了。当然里面也有些不错的算法,比如DE-9IM,Minkovski sum,幸亏以前关注过算法。
           
             后续还会继续读JTS的源码,也会将不错的算法发上来。学习是很快乐的事情,呵呵。

             http://9.douban.com/site/entry/23213825/

jts学习——com.vividsolutions.jts.geom包

JTS——JTS拓扑套件是是GIS的核心运算包,今天分析了com.vividsolutions.jts.geom这个包,画出包中的类图。特传上,和大家一起交流学习  geom包,主要是构建一个JTS的...
  • barech
  • barech
  • 2007-10-10 13:40:00
  • 8576

JTS学习-com.vividsolutions.jts.algorithm包

 JTS的com.vividsolutions.jts.algorithm包提供了拓扑服务中的常用算法。其包含类的功能如下:CentroidArea             |CentroidLine...
  • barech
  • barech
  • 2007-10-10 21:08:00
  • 3062

jts学习——com.vividsolutions.jts.geomgraph包

 今天看com.vividsolutions.jts.geomgraph包。类包内的详细类图关系如下图所示这个包对应到图论中图的概念。1.以GraphComponet为基类;定义了节点、边等图论中的基...
  • barech
  • barech
  • 2007-10-11 12:17:00
  • 2536

JTS(Geometry)

空间数据模型 (1)、JTS Geometry model  (2)、ISO Geometry model (Geometry Plugin and JTS Wrapper Plugin) Ge...
  • cdl2008sky
  • cdl2008sky
  • 2012-02-17 17:29:22
  • 20758

JTS Geometry之间的关系

几何信息和拓扑关系是地理信息系统中描述地理要素的空间位置和空间关系的不可缺少的基本信息。其中几何信息主要涉及几何目标的坐标位置、方向、角度、距离和面积等信息,它通常用解析几何的方法来分析。而空间关系信...
  • omni360
  • omni360
  • 2015-03-26 16:29:56
  • 1677

JTS基本概念和使用

JTS基本概念和使用 简介 JTS是加拿大的 Vivid Solutions公司做的一套开放源码的 Java API。它提供了一套空间数据操作的核心算法。为在兼容OGC标准的空间对象模型中...
  • runing9
  • runing9
  • 2016-07-12 16:42:10
  • 3097

JTS空间分析工具包(GIS开源)学习 JAVA

JST空间分析工具包是一套JAVA API,提供一系列的空间数据分析操作。 1.下载 工具包下载地址:点击打开链接 2.学习资料 工具包里的官方入门文档:doc文件夹里的JTS Developer ...
  • u012130706
  • u012130706
  • 2017-05-16 19:23:34
  • 7590

JTS帮助文档中文版

  • 2011年07月11日 17:08
  • 405KB
  • 下载

Jts三角网创建方法

Jts(Java Topology Suite)是关于GIS空间数据Java的API。
  • ghuiL
  • ghuiL
  • 2014-09-20 21:27:53
  • 1805

JTS Geometry Operations(一)

Geometry 空间分析方法几何图形操作包 在operation包内,包含buffer、distance、linemerge、overlap、polygonize、predicate、relate...
  • cdl2008sky
  • cdl2008sky
  • 2012-02-21 11:51:35
  • 7395
收藏助手
不良信息举报
您举报文章:JTS学习-com.vividsolutions.jts.operation包
举报原因:
原因补充:

(最多只允许输入30个字)