一种高效的拓扑关系计算方法

文档序号:9708391阅读:2897来源:国知局
一种高效的拓扑关系计算方法
【技术领域】
[0001] 本发明涉及地理信息系统(GIS)、计算机辅助设计(CAD)、计算机地图制图(CAC), 导航地图、手机地图、电子地图等领域,特别涉及一种利用计算机对拓扑关系进行快速计算 的方法。
【背景技术】
[0002] 拓扑关系是GIS空间分析的重要理论基础,也是GIS在实际应用中最常见的分析方 法之一。拓扑关系概念模型引起了广泛的研究,提出了4/9-交集模型、RCC模型、2D String 模型、V9I模型等。与上述拓扑关系形式化描述方面的研究相比,拓扑关系的计算方法研究 较少。对拓扑概念模型的支撑算法以及算法的效率、地理坐标数值计算稳定性等方面的研 究较为缺乏。
[0003] 当前主要的拓扑关系计算方法包括解析几何算法、平面图(Planar graph)算法和 平面扫描(Plane sweep)转换方法等。解析几何方法通过建立直线的参数方程,通过解算 点-线段、线段-线段、线段-面等的位置关系来实现空间目标的拓扑关系判断。解析几何算 法往往具有较高的运行效率且容易和度量、方位等空间关系进行综合计算,但是难以和4/ 9_交集模型等拓扑概念模型集成进而计算复杂的拓扑谓词。平面图方法通过相交等几何关 系预处理,将点、线和面等几何对象转换为平面图,将图中的节点、边标记为几何目标的内 部(interior )、边界(boundary)和外部(exterior ),将面标记为边的左、右。然后利用4/9交 集模型及其扩展(如维度模型),来求解出复杂拓扑谓词。但是平面图方法在将几何对象转 换为平面图时,涉及大量求交运算,计算效率不高,且转换过程中丢失了距离、方位等信息, 难以进行混合的空间关系计算。扫描转换方法将2维的拓扑关系计算转换为0维的像素点, 或者1维的扫描线、或者二维的多边形来进行计算。转换后能够显著降低算法复杂度,可以 获得较高的计算效率。但是,这类算法往往针对某类对象之间的拓扑关系计算而提出。尚没 有形成一个通用的拓扑关系高效计算方法。
[0004] 为解决上述问题,需要一种新的方法,能够实现点、线、面对象复杂拓扑关系的快 速计算。名称为"基于IT2 FS的区间II-型模糊地理区域拓扑关系确定方法",申请号 CN201210535664,公开号为CN103034717A的中国专利,公开了一种基于IT2 FS的区间II-型 模糊地理区域拓扑关系确定方法,采用多尺度遥感数据和模糊地理实体模型构建拓扑关系 分析系统。从多尺度的遥感数据中提取模糊地理对象的分布范围,而这个范围没法准确界 定,只能用模糊方法表示。以区间II-型模糊数学模型表示模糊地理对象可能分布范围。区 间II-型模糊拓扑关系计算系统由区间II-型模糊地理区域提取模块、区间II-型模糊边界 提取模块、区间II-型模糊位置拓扑关系计算模块构成。多种尺度的遥感数据进入该系统, 提取模糊分布范围,进而提取分布范围的边界区域。模糊位置拓扑关系计算模块利用模糊 分布范围和边界区域跟房屋、城镇等数据做分析,得到一个模糊分析结果,实现了模糊位置 拓扑关系的计算。名称为"一种矢量数据的处理方法及装置",申请号为CN201110350609,公 开号为CN103092892A的中国专利,公开了矢量数据的处理方法及装置,该方法包括:矢量数 据的处理方法;矢量数据的化简方法;矢量数据的渐进传输方法;矢量数据的编辑方法;矢 量数据的绘图方法;矢量数据的空间关系计算方法。该发明实施例公开的矢量数据的处理 方法,有效地解决了海量矢量数据的处理过程中服务器端、传输网络及客户端的矢量数据 的压缩、传输、编辑、显示和空间关系计算等的瓶颈问题。上述两个专利申请均涉及拓扑关 系的计算方法,但它们均未公开基于栅格扫描线的拓扑关系高效计算方法。

【发明内容】

[0005] 本发明的目的在于解决点、线、面对象的拓扑关系计算与效率问题,提供一种基于 栅格扫描线的拓扑关系计算方法,实现对点、线、面对象的八类拓扑关系快速计算。
[0006] 本发明的总体思路是:将点、线和面三类几何对象通过扫描转换,分解为数据结构 一致的栅格扫描线。定义了栅格扫描单元的七种一维关系,并在此基础上给出了点、线和面 对象拓扑关系的定义与逐行计算模式。针对栅格扫描线的资源占用和冗余计算问题,通过 对空间数据的空间范围和比例尺特征分析,得出了栅格扫描线生成的最小、最大间隔计算 方法,进一步提出一种双层栅格扫描线嵌套的计算方法,在满足拓扑关系计算精度的同时, 能够有效避免冗余扫描。本发明的方法同时适用于点、线和面对象的空间拓扑关系计算,且 能够保证较高的运算效率。
[0007] 本发明一种高效的拓扑关系计算方法,包括以下几个步骤:
[0008] 步骤1,图形的栅格扫描线分解,获得栅格扫描线集合;
[0009] 步骤2,基于栅格扫描线的拓扑关系定义;
[0010] 步骤3,进行两级栅格扫描线嵌套,提高栅格扫描线的精度;
[0011] 步骤4,对两个不同栅格扫描线集合中任意元素之间的拓扑关系逐行计算。
[0012] 上述步骤1具体包括:(1)首先假设待计算几何对象所属的空间范围被离散为大小 相等的正方形网格单元,有一条直线从一个高于所有图形的位置开始,以网格单元大小为 间距,自上而下地扫过整个平面,这条直线定义为栅格扫描线;在栅格扫描线扫描平面的过 程中,记录栅格扫描线与几何图形的交点;(2)把所有交点按照水平坐标递增顺序进行排 序;(3)将第一个交点与第二个交点配对、第三个交点与第四个交点配对,依次类推将所有 相邻的两个交点进行交点配对;(4)经过步骤(1)、(2)和(3)后可以得到一个代表几何图形 的一个平行且等间隔的栅格扫描线集合;栅格扫描线成为描述几何对象的基本单元,任意 点、线、面对象均可描述为一个唯一的栅格扫描线集合。
[0013] 上述步骤2具体包括:以栅格扫描线为单位,定义栅格扫描线的七种空间关系:相 等、相离、外接、相交、内接、包含、内部;参考开放式地理信息系统协会发布的简单要素规范 (OpenGIS Simple Features Specification)中拓扑关系的定义,给出基于栅格扫描线的 点、线和面对象的八类拓扑关系定义:相等(Equal)、相离(Disjoint)、相接(Touches)、在内 部(Within)、包含(Contains)、重叠(Overlaps)、穿越(Crosses)与相交(Intersects)。
[0014] 上述步骤3具体包括:在计算两个线对象拓扑关系时,首先在粗精度的栅格扫描线 下进行拓扑关系初计算,若其满足拓扑计算逻辑条件,且不存在的潜在的拓扑关系尺度特 征,则直接计算拓扑关系;若拓扑关系存在尺度特征,则对上述两个对象的局部进行精度为 η的二次栅格扫描,在该精度下进一步进行拓扑关系计算。
[0015] 上述步骤4具体包括:通过步骤1的扫描转换后,任何两个几何对象之间的拓扑关 系均可用栅格扫描线的集合来进行计算,而栅格扫描线集合的计算又可分解为两个不同集 合中任意元素之间的拓扑关系计算,因此,两个栅格扫描线集合的拓扑关系采用逐行计算 的方式来进行,而两个栅格扫描线之间的拓扑计算通过一维的整数布尔运算来完成。
[0016]本发明能够对点、线、面对象进行高效、高精度的拓扑关系计算,拓扑关系定义兼 容于开放式地理信息系统协会发布的简单要素规范所定义的八类拓扑关系,且可以自由扩 充。与基于解析几何的拓扑关系计算方法相比,本方法具有统一的拓扑关系描述与计算框 架;与基于平面图的拓扑关系计算方法相比,本方法能够有效避免浮点运算本身的计算误 差,具有较高的运行效率。与其他现有扫描转换方法相比,本方法能够同时适用于点、线和 面对象。
【附图说明】
[0017]图1本发明方法的流程图;
[0018] 图2目标的扫描线近似表达示意图,(a)原始图形,(b)图形的栅格扫描线分解后的 结果;
[0019] 图3栅格扫描线的基本拓扑关系图;
[0020] 图4栅格扫描线拓扑关系层次描述图;
[0021 ]图5两级栅格栅格扫描线嵌套示意图。
【具体实施方式】
[0022]下面结合附图和实施例对本发明做进一步详细说明。
[0023]本发明将点、线和面三类几何对象通过扫描转换,分解为数据结构一致的栅格扫 描线。定义了栅格扫描单元的七种一维拓扑关系,并在此基础上给出了点、线和面对象拓扑 关系的定义与逐行计算模式。
[0024] 实施例1
[0025]如图1所示,我国某范围内1:100万地形图拓扑关系计算包含以下步骤:
[0026]步骤1图形的栅格扫描线分解;
[0027]步骤2基于栅格扫描线的拓扑关系定义;
[0028]步骤3两级栅格扫描线嵌套;
[0029]步骤4拓扑关系逐行计算。
[0030]更具体的实施步骤如下:
[0031]图形的栅格扫描线分解
[0032]栅格扫描线算法首先假设待计算几何对象所属的空间范围被离散为大小相等的 正方形网格单元(cell)。假想有一条直线1,从一个高于所有图形的位置开始,以网格单元 大小为间距,自上而下地扫过整个平面。在这条假设的直线扫描平面的过程中,记录扫描线 与几何图形的交点(网格单元)。把所有交点按照水平坐标递增顺序进行排序。将第一个与 第二个,第三个与第四个等进行交点配对。经过求交、排序和配对后可以得到一个代表几何 图形的一个平行且等间隔的扫描线集合。扫描线由网格组成,故称为栅格扫描线。对图2(a) 多边形进行两种间隔的扫描处理,可得到图2(b)所示的一组栅格扫描线(为图解方便,栅格 扫描线的宽度进行了缩小处理,以示不同的扫描间隔)。
[0033]经过扫描转换,栅格扫描线成为描述几何对象的基本单元。本发明中栅格扫描线 段单元主要包括行号、列号以及栅格扫描线长度信息。可描述为一个三元组<i,j,l>。任意 点、线、面对象均可描述为一个唯一的栅格扫描线集合:S = {so, SI,S2, . . . }。点对象集合中 仅包含一个栅格扫
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1