一种多边形矢量图层快速叠合方法技术

技术编号:4211933 阅读:755 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及地理信息系统空间分析中矢量地图间的分析方法,特别是一种多边形矢量图层快速叠合方法。本发明专利技术公开了一种多边形矢量图层快速叠合方法,它分别在三个环节提高计算效率:1)在处理流程中,通过外包矩形快速判断两图层中多边形的相离情况,避免了不必要的求交过程;2)提出了基于事件点组的平面扫描线算法进行多边形求交点,使得此步骤的计算复杂度由降低;3)利用所设计的事件点组的数据结构,又采用改进后的平衡二叉树保存线段与交点信息,使其能合理、有效的存储中间结果,优化处理效率,使本发明专利技术的计算效率得到大幅度提高。本发明专利技术解决了叠合分析的三大难题,具有适用性好、计算复杂度低和可保持原图精度的特点。

【技术实现步骤摘要】

本专利技术涉及地理信息系统空间分析中矢量地图间的分析方法,特别是一种多边形 矢量图层快速叠合方法。
技术介绍
空间分析是地理信息系统(GIS)创建的初衷,而叠合分析是其重要的分析方法之 一,特别是矢量图层间的叠合操作是最老和最困难的问题之一。尽管,Chrisman et al.发 表了第一个方法,被称为WHIRLPOOL(Dutton 1979),但由于算法复杂度高,非常难以达到可 运行的程度。人们始终面临“如何针对点、线、面和复杂空间几何对象的叠合计算,尤其是 ‘面’对象或多边形图层间叠合操作时,如何减少算法的复杂性,解决特殊情形(特殊面中出 现孔洞)和保持图形重建后的精度三大难题。例如计算某行政区内各类土地利用类型的分布状况与数量的叠合分析计算,即 进行两矢量图层间多边形的交、并、差和包含的计算,统计出各个行政区多边形内的土地利 用类型分布和数量。计算过程中,不仅需对两矢量图层多边形边界求交点,重建具有多重属 性的新多边形,并保证叠合分析的几何精度;还需统计分析多边形范围内的属性特征 ’另 外,特别需处理随之产生的包含关系或出现“孔洞”现象。其中,图层中矢量图形的叠合分析,它通过对各区域两图层中多边形图形求交点 和多重属性的搜索、判别,确定是否产生新多边形,或是否需对剩余多边形进行重新分类或 分级,进行新多边形重建,构成新的矢量图层;然后,为图层内容进行统计叠合分析,对叠合 分析结果中所形成的新多边形,进行属性的重新计算和分配。在矢量图层叠合分析过程中,多边形叠合的顺序及两图层中多边形求交、并、差是 最核心的过程,其中正确、适宜的多边形叠合计算,可对两图层的叠合分析起到提高效率 的作用。在国外,一个著名的算法是由Cyrus和Beck提出,它通过判断直线段的方向矢量 与多边形边法矢量的点积是否大于0,而将所有交点分为上、下两组;然后,分别取上组中 的最小交点和下组中的最大交点,作为线段可见部分的端点。但是,Cyrus-Beck算法只适用 于凸多边形的求交,对于凹多边形则没有意义。与此同时,只适用于凸多边形的求交、并、差 的算法还有Shamos算法和0’Rourke算法。近年来,M. Rivero也提出一种能处理任意简单 多边形的算法,但其理论复杂,致使其时间复杂度达到0((n+k) (m+k)),其中n,m分别是两 输入图层多边形的边数,k则是它们的交点数。在国内,也有不少学者从事该领域的研究,但 大多数采用对两图层多边形的边进行两两求交,效率明显很低;另外,有些算法甚至还需开 二维数组,这对于GIS空间分析所面对的大规模数据集来说,明显不可能满足应用需求。其 中,谢忠、薛胜等学者提出对两图层多边形进行两重循环的叠合分析,很明显不仅会出现重 复多边形,导致错误,而且运行效率也必然很低。在众多研究中,仅刘勇奎、杨维芳、杜爽等 人的算法可求多边形的交、并、差,它是基于第一个多边形的所有边,依次对第二个多边形 进行线裁剪操作,以求出所有边的交点。虽然,它对于线裁剪提出了一种新的算法流程“错 切变换法”,提高了求交点的效率,但对于第一个多边形的n条边均对第二个多边形的m个5顶点依次进行置换操作,仅对于多边形的线段求交,其复杂度已为O(nXm)。而且,该算法对 于求多边形的交、并、差,需分别重新构造多边形链,造成重复工作,降低了计算效率。同时, 它对多边形的边重合或者在顶点处相交等特殊情况的处理是采用偏移顶点操作,不仅降低 了操作效率,还会损失图形的精度,这对精度要求高的矢量图层间的空间分析存在致命缺 陷。综上所述,现有技术中,并没有一种适用于矢量图层间任意多边形求交、并、差和 包含的高效方法和属性配置方法。在矢量图层间的叠合操作和分析中的三大难点问题并没 有实质性的突破。因此,提出一种适用于矢量图层间任意多边形求交、并、差和包含的高效 方法和属性配置方法,对增强GIS空间分析功能的性能具有重要意义和实用价值。
技术实现思路
本专利技术的目的在于提供,以解决现有技术的不 足,提供一种既适用于处理任意多边形的求交、并、差和包含关系,又能高效处理两矢量图 层叠合分析的方法。本专利技术采用的技术方案如下一种矢量图层多边形快速叠合分析方法,它包括以下步骤A)将两矢量图层多边形(每个多边形必须是封闭面状对象)分别存入两个链表 G1和G2中,并为各图层多边形分配唯一 ID号,规则为第i个图层第j个多边形ID为i_ j ;同时,还需初始化一个结果图层R为空;B)假设Pi是G1中所读取的多边形,Qi是62中读取的多边形。分别从G1和G2中 读取多边形,将从G1获得的每个多边形Pi与所有G2中的多边形进行分析判断;直至G1 为空,则表明完成与G2中所有多边形的分析判别,并均已存入结果图层R中,跳到第H步; 否则将不断从G1中取得多边形Pi,并从G1中删除;C)在上述判别过程中,主要是对多边形分类,判断仏的外包矩形是否与Pi的外 包矩形相交。如果满足式(1),则表示从与Pi不会相交,将该多边形仏存入多边形集合M 中,否则表示可能相交,存入多边形集合N中;(P外包).x2 <他外包).\|| (P外包)_y2<他外包).yjl (Pi外包).Xi> (Qi外包).x2|| (P外包;!-又丄〉(Qi外包).y2 (1)D)随后,进行多边形求交,只要多边形集合N不为空,则采用基于事件点组的平面 扫描线算法(图2)对Pi与N进行求交点;如果N为空,则将Pi直接存进结果图层R中,跳 回第B步;E)然后,开始多边形重建。先对步骤D中基于事件点组的平面扫描线算法所求得 的多边形交点进行——原线段截断,产生新的节点和连通新线段的处理;并且,对连通后节 点所关联的边进行夹角排序,按同一节点边的排列顺序生成边信息链表;F)再根据最小夹角原则,深度搜索,逆时针求出所有合法多边形,包括P与N的交 P n N、P与N的差P-N、N与P的差N-P,并为每个新的多边形重新分配ID ;G)将P n N与P-N存入结果图层R中,将N-P存进集合M中,更新第二个图层G2 的图形数据,用M覆盖G2,即使得G2 = M,返回步骤B ;H)两图层所有多边形叠合完毕后,则结果多边形已经全部更新,并存于结果图层 R中。接着,对R中所有多边形图形数据进行属性统计计算和配置;6I)返回结果图层R,结束运算。作为一种优选方案,步骤C中,根据外包矩形对第二个图层G2中多边形进行分类, 快速去除与第一个图层G1多边形Pi不可能相交的多边形。作为一种优选方案,步骤D中,运用基于事件点组的平面扫描线算法进行多边形 求交点,并采用平衡二叉树及堆等高级数据结构(如图3),不仅可大幅度提高求交点的效 率,还记录了图层中所有拟求交多边形的几何位置。作为一种优选方案,步骤E中,对同一新节点所关联的边进行与横轴夹角的排序, 又可进一步提高后面深度搜索多边形的效率。作为一种优选方案,步骤E中,按顶点顺序新生成的边信息链表包含有原多边形P 与N集合的边方向信息,逆时针为正方向,顺时针为负方向,为后面生成交、并、差与包含等 关系的确定提供实施的基本规则。作为一种优选方案,在步骤F中,据深度搜索获得的多边形夹角和,可判断搜索顺 序是逆时针还是顺时针。如果夹角和为-2^1则为逆时针多边形,本文档来自技高网
...

【技术保护点】
一种多边形矢量图层快速叠合方法,其特征在于所述方法包括:A)将两矢量图层多边形(每个多边形必须是封闭面状对象)分别存入两个链表G1和G2中,并为各图层多边形分配唯一ID号,规则为:第i个图层第j个多边形ID为i_j;同时,初始化一个结果图层R为空;B)分别从G1和G2中读取多边形,将从G1获得的每个多边形P↓[i]与所有G2中的多边形Q↓[i]进行分析判断;直至G1为空,跳到第H步;否则将不断从G1中取得多边形P,并从G1中删除;C)如果满足下述表达式:(P↓[外包]).x↓[2]<(Q↓[i外包]).x↓[1]‖(P↓[外包]).y↓[2]<(Q↓[i外包]).y↓[1]‖(P↓[外包]).x↓[1]>(Q↓[i外包]).x↓[2]‖(P↓[外包]).y↓[1]>(Q↓[i外包]).y↓[2],则将该多边形Q↓[i]存入多边形集合M中,否则存入多边形集合N中;D)进行多边形求交,只要多边形集合N不为空,则采用基于事件点组的平面扫描线算法对P与N进行扫描线求交点;如果N为空,则将P直接存进结果图层R中,跳回第B步;(基于事件点组的平面扫描线算法需要保护)E)然后,开始进行多边形重建:先对步骤D中基于事件点组的平面扫描线算法所求得的多边形交点进行原线段截断,产生新的节点和连通新线段的处理;并且,对连通后节点所关联的边进行夹角排序,按同一节点边的排列顺序生成边信息链表;F)再根据最小夹角原则,采用深度搜索,按逆时针方式求出所有合法多边形,包括P与N的交P∩N、P与N的差P-N、N与P的差N-P,并为每个新的多边形重新分配ID;G)将P∩N与P-N存入结果图层R中,将N-P存进集合M中,更新第二个图层G2的图形数据,用M覆盖G2,即:使得G2=M,返回步骤B;H)两图层所有多边形已经叠合完毕后,则结果多边形已经全部更新,并存于结果图层R中,接着,对R中所有多边形图形数据进行属性统计计算和配置;I)返回结果图层R,结束运算。...

【技术特征摘要】

【专利技术属性】
技术研发人员:李岩林智源
申请(专利权)人:华南师范大学
类型:发明
国别省市:81[中国|广州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1