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

文档序号:9708391阅读:来源:国知局
描线,且其1属性值为1;线、面对象栅格扫描线集合包含一个以上栅格扫 描线。栅格扫描线基于网格单元来构建,是一种矢栅相结合的数据结构。与矢量数据结构相 比:
[0034] 1)栅格扫描线仅包含<i,j,1>三种属性。数据结构统一,能同时描述点、线和面目 标。与普通扫描线相比,三元组各属性皆为整数,有利于高效计算。
[0035] 2)栅格扫描线的加、减等操作对于整个论域封闭,且为闭操作。
[0036] 3)栅格扫描线的相交、相离、包含等拓扑关系计算仅涉及整数布尔运算。
[0037]与栅格数据相比:
[0038] 1)栅格扫描线不覆盖"空白"区域,数据量较小。
[0039] 2)栅格扫描线包含1属性,能够避免数据冗余。
[0040]因此,将栅格扫描线作为拓扑关系计算的基本单元。图3归纳了栅格扫描线的七种 基本拓扑关系(为便于图解描述,同一 j值的栅格扫描线A、B分别绘制为不同行的栅格扫描 线)。
[0041] 由栅格扫描线构成的点、线、面之间的拓扑关系可有上述基本拓扑关系计算得到。
[0042] 基于栅格扫描线的拓扑关系定义
[0043 ]设A、B为任意点、线、面对象。用Sa、Sb表不A、B对象的栅格扫描线集合;用Ca、Cb表不 集合中栅格扫描线的个数。ai、匕为Sa、Sb中的元素。参考开放式地理信息系统协会发布的简 单要素规范中拓扑关系的定义,给出基于栅格扫描线的拓扑关系定义(为区别于栅格扫描 线之间的拓扑关系,用大写字母开头的单词描述):
[0044] Equal:
[0045]对于Sa、Sb两个栅格扫描线集合,栅格扫描线集合大小相等,且每一个对应序号元 素均相等。可描述为:
[0046] Ca = Cb,且,:W, a; e .?,. e & ,.私)..=麵re}
[0047] Disjoint:
[0048] Sa、Sb两个栅格扫描线集合内,任意两个栅格扫描线均为disjoint关系。可描述为:
[0049] V'/,% e S,,/), e S,v |?//.ν/ο/ζ" (V/,,
[0050] Touches:
[0051] Sa、Sb两个栅格扫描线集合内,存在一个以上的touchs关系,但是不存在相交、内 部、包含等关系。可描述为:
[0052]
[0053] Within:
[0054] Sa中任意一个栅格扫描线ai,均能在Sb中找到包含ai的栅格扫描线。可描述为:
[0055]
[0056] Contains:
[0057] Sb中任意一个栅格扫描线bj,均能在Sa中找到包含bj的栅格扫描线。可描述为:
[0058]
[0059] Overlaps:
[0000]约定A、B均为同维度对象。Sa、Sb两个栅格扫描线集合内,存在一个以上的 intersect ion或者equal关系和一个以上的disjoint关系。
[0061] 1 J
[0062] Crosses:
[0063]约定A为为线、面对象,B为线对象。Sa、Sb两个栅格扫描线集合内,至少存在一个以 上的disjoint关系且至少存在一个以上的intersect ion或者equal关系。
[0064]
0.01厘米。空间数据的扫描、采集精度均参考人眼视觉分辨率来定义。所用scale表示空间 数据的比例尺,则最大扫描间隔为ImX= scale*0.01。以1:5万比例尺数据为例,则最大扫描 间隔为5米。因此,栅格扫描线的间隔(ce 11单元的大小)的取值范围为[Imin, Imax]。
[0072]在取值范围内,当栅格扫描线的采样宽度不同时,其所能描述的拓扑关系细节程 度可能也不同,表现出尺度特征。如:当采样宽度较大时,可能为euqal关系,当采用宽度减 少时,贝可能为intersection关系。进一步减少采样宽度时,贝lj可能为touch关系。图4中详 细罗列了拓扑关系之间的尺度特征。
[0073]采用高精度的栅格扫描线,可以获得高精度的拓扑关系计算结果,但栅格扫描线 生成计算和内存占用的急剧上升。为了兼顾计算效率和计算精度。提出双层栅格扫描线嵌 套的计算方法。如图5所示,在计算A、B两个线对象拓扑关系时,首先在精度为m的栅格扫描 线下进行拓扑关系初计算,若其满足拓扑计算逻辑条件,且不存在的潜在的拓扑关系尺度 特征,则直接运行。若其拓扑关系存在图4所示的尺度特征,则对A、B的局部进行精度为η的 二次栅格扫描,在该精度下进一步进行拓扑关系计算。m、n双层栅格扫描精度均满足前文描 述的阈值范围:Im in < m < Imax, Imin < η < Imax。采用间隔分别为m、n的两层精度的嵌套栅格扫 描线,即可满足计算精度要求,又可以最大限度的减少栅格扫描线生成计算和内存占用。 [0074]拓扑关系逐行计算流程
[0075] 通过扫描转换后,任何两个几何对象之间的拓扑关系均可用栅格扫描线的集合来 进行计算,而栅格扫描线集合的计算又可分解为两个集合中任意元素之间的拓扑关系计 算。若用Topology表示两个几何对象之间的拓扑关系计算,用topology表示两个栅格扫描 线之间的拓扑关系,则
'其算法复杂度为〇(Ca*Cb)。考察图 3所示的栅格扫描线的七种关系中,除了disjoint关系外,均发生在同一行内(touch关系可 以发生在邻近的两行内)。而对于disjoint关系,如果A、B对象的每一个行内诸栅格扫描线 皆为disjoint关系,则A、B为disjoint关系。因此,两个栅格扫描线集合的拓扑关系可采用 逐行计算的方式来进行。而两个栅格扫描线之间的拓扑计算可以通过一维的整数布尔运算 来完成。逐行计算过程为:
[0076] 1)获取A、B对象的扫描线范围,获取j属性最小值与最大值。A、B栅格扫描线的拓扑 关系必然发生在区间内。
[0077] 2)在最小值与最大值范围内,依次逐行获取A、B对象的栅格扫描线ai、bj。
[0078] 3)计算ai、bj的拓扑关系,并判定是否满足拓扑条件。若不满足拓扑判断条件,则直 接返回计算结果false。若满足拓扑判断条件,则继续转入步骤2)进行下一行栅格扫描线拓 扑关系计算。
[0079] 4)若遍历到j最大值,综合前面的计算结果,如全部满足拓扑判断条件,返回计算 结果true。逐行计算的模式的复杂度减少为0(11^1(〇3,〇3))且仅需要布尔运算来完成 。
【主权项】
1. 一种高效的拓扑关系计算方法,其特征在于,该方法包括以下几个步骤: 步骤1,图形的栅格扫描线分解,获得栅格扫描线集合; 步骤2,基于栅格扫描线的拓扑关系定义; 步骤3,进行两级栅格扫描线嵌套,提高栅格扫描线的精度; 步骤4,对两个不同栅格扫描线集合中任意元素之间的拓扑关系逐行计算。2. 根据权利要求1所述的一种高效的拓扑关系计算方法,其特征在于,所述步骤1具体 包括: (1) 首先假设待计算几何对象所属的空间范围被离散为大小相等的正方形网格单元, 有一条直线从一个高于所有图形的位置开始,以网格单元大小为间距,自上而下地扫过整 个平面,这条直线定义为栅格扫描线;在栅格扫描线扫描平面的过程中,记录栅格扫描线与 几何图形的交点; (2) 把所有交点按照水平坐标递增顺序进行排序; (3) 将第一个交点与第二个交点配对、第三个交点与第四个交点配对,依次类推将所有 相邻的两个交点进行交点配对; (4) 经过步骤(1)、(2)和(3)后可以得到一个代表几何图形的一个平行且等间隔的栅格 扫描线集合;栅格扫描线成为描述几何对象的基本单元,任意点、线、面对象均可描述为一 个唯一的栅格扫描线集合。3. 根据权利要求2所述的一种高效的拓扑关系计算方法,其特征在于,所述步骤2具体 包括:以栅格扫描线为单位,定义栅格扫描线的七种关系:相等、相离、外接、相交、内接、包 含和内部;参考OpenGIS简单要素规范中拓扑关系的定义,给出基于栅格扫描线的点、线和 面对象的八类拓扑关系定义:相等、相离、相接、在内部、包含、重叠、穿越与相交。4. 根据权利要求3所述的一种高效的拓扑关系计算方法,其特征在于,所述步骤3具体 包括:在计算两个对象的拓扑关系时,首先在精度为m的栅格扫描线下进行拓扑关系初计 算,若拓扑关系满足拓扑计算逻辑条件,且不存在潜在的拓扑关系尺度特征,则直接计算拓 扑关系;若拓扑关系存在尺度特征,则对上述两个对象的局部进行精度为η的二次栅格扫 描,在该精度下进一步进行拓扑关系计算。5. 根据权利要求4所述的一种高效的拓扑关系计算方法,其特征在于,所述步骤4具体 包括:通过步骤1的扫描转换后,任何两个几何对象之间的拓扑关系均可用栅格扫描线的集 合来进行计算,而栅格扫描线集合的计算又可分解为两个不同集合中任意元素之间的拓扑 关系计算,因此,两个栅格扫描线集合的拓扑关系采用逐行计算的方式来进行,而两个栅格 扫描线之间的拓扑计算通过一维的整数布尔运算来完成。
【专利摘要】本发明公开了一种高效的拓扑关系计算方法,包括图形的栅格扫描线分解、基于栅格扫描线的拓扑关系定义、两级栅格扫描线嵌套、拓扑关系逐行计算等四个技术环节。以栅格扫描线作为点、线和面的基本描述单元,定义了栅格扫描线的七种基本关系;给出了点、线和面几何对象拓扑关系的形式化定义;设计了基于栅格扫描线的拓扑关系逐行计算流程;针对栅格扫描线的内存占用和冗余计算问题,提出栅格扫描线生成的最小、最大精度计算方法并通过双层扫描线嵌套来进一步提高拓扑关系计算效率。本发明可以实现点、线和面集合对象的高效拓扑关系计算。
【IPC分类】G06F17/30
【公开号】CN105468693
【申请号】CN201510790920
【发明人】吴明光, 崔登吉, 闾国年
【申请人】南京师范大学
【公开日】2016年4月6日
【申请日】2015年11月17日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1