一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于V-TMM计算建筑物与绿地拓扑关系的方法

2022-07-16 13:15:45 来源:中国专利 TAG:

基于v-tmm计算建筑物与绿地拓扑关系的方法
技术领域
1.本发明涉及地理信息系统(gis)、计算机辅助设计(cad)、计算机地图制图(cac),导航地图、电子地图等领域,特别涉及一种基于v-tmm计算建筑物与绿地拓扑关系的方法。


背景技术:

2.拓扑关系gis中最基本和最重要的空间关系,在gis空间推理与应用中具有重要地位。近年来拓扑关系概念模型得到了深入的研究,包括n-交集模型、rcc模型、2dstring模型等。尽管拓扑关系形式化表达方面的研究颇多,但鲜有拓扑关系计算方法的研究进展。与拓扑关系概念模型相结合的计算算法,以及算法的效率和稳定性等方面的研究相对缺乏。
3.当前针对拓扑关系计算的方法包括解析几何算法、平面图(planar graph)算法及平面扫描(plane sweep)转换方法等。解析几何方法通过建立直线的参数方程,通过解算点-线段、线段-线段、线段-面等的位置关系来实现空间目标的拓扑关系判断。解析几何算法往往具有较高的运行效率且容易和度量、方位等空间关系进行综合计算,但是难以和4/9-交集模型等拓扑概念模型集成进而计算复杂的拓扑谓词。平面图方法通过相交等几何关系预处理,将点、线和面等几何对象转换为平面图,将图中的节点、边标记为几何目标的内部(interior)、边界(boundary)和外部(exterior),将面标记为边的左、右。然后利用4/9交集模型及其扩展(如维度模型),来求解出复杂拓扑谓词。但是平面图方法在将几何对象转换为平面图时,涉及大量求交运算,计算效率不高,且转换过程中丢失了距离、方位等信息,难以进行混合的空间关系计算。扫描转换方法将2维的拓扑关系计算转换为0维的像素点,或者1维的扫描线、或者二维的多边形来进行计算。转换后能够显著降低算法复杂度,可以获得较高的计算效率。但是,这类算法往往针对某类对象之间的拓扑关系计算而提出。尚没有形成一个通用的拓扑关系高效计算方法。
4.为解决上述问题,需要一种新的方法,能够实现gis拓扑关系的快速计算。名称为“一种区域用水网络拓扑关系确认方法、装置和系统”,申请号cn201910145895.0,公开号为cn111626460a的中国专利,本发明涉及供水系统内用水网络拓扑关系技术领域,提供了一种区域用水网络拓扑关系确认方法、装置和系统。其中方法包括确定潜在会发生用水网络拓扑关系归属错误的一个或者多个区域;获取对应所述一个或者多个区域内所包含的各流量计量装置的水流量数据;根据所述水流量数据,确认所述一个或者多个区域,处于用水网络拓扑关系归属错误状态的一个或者多个流量计量装置。本发明提出了一种确定潜在会发生用水网络拓扑关系归属错误的一个或者多个区域,并通过水流量数据确定出所述一个或者多个区域中,处于用水网络拓扑关系归属错误状态的一个或者多个流量计量装置的概率,从而极大程度上节约了实地考察的工作人员人力成本,还提高了排查的效率。名称为“一种基于空间位置的拓扑关系获取方法、装置和存储介质”,申请号为cn202110253348.1,公开号为cn112632399a的中国专利,公开了一种基于空间位置的拓扑关系获取方法、装置和存储介质,其中方法包括:获取目标对象的wgs84历史坐标点数据,并利用wgs84历史坐标点数据,生成web墨卡托坐标系下的真实地理投影坐标面;获取目标对象的wgs84实时坐标
点数据,并将wgs84实时坐标点数据投影至web墨卡托坐标系,得到目标对象的地理投影坐标;对目标对象的地理投影坐标与真实地理投影坐标面进行拓扑计算,得到拓扑关系。该方法有效提升了拓扑关系计算的准确性,能充分发挥历史散点数据的价值,有利于监控决策者制定决策计划的准确度。上述两个专利申请均涉及拓扑关系的计算方法,但它们均未公开基于梯形格网的拓扑关系高效计算方法。


技术实现要素:

5.本发明的目的在于解决面要素拓扑关系计算与效率问题,提供一种基于梯形格网的拓扑关系计算方法,实现面要素之间拓扑关系的高效稳定计算。
6.本发明的总体思路是:将面要素几何化为多边形,通过水平线扫描,将多边形剖分成数个梯形面片并逐个构建梯形链,组合成梯形连通图。利用梯形面片行列号和横纵坐标区间的唯一性,定义点-梯形格网判定,并在此基础上给出多边形拓扑关系矩阵的定义。再进一步对于两个任意的多边形,设计多边形拓扑关系计算流程。本方法对于面要素的拓扑关系计算具有高度的适用性和针对性,且能够达到较高的计算效率。
7.本发明一种基于v-tmm计算建筑物与绿地拓扑关系的方法,包括以下几个步骤:
8.步骤1,面要素的水平扫描线剖分,构建梯形格网;
9.步骤2,点-梯形格网判定;
10.步骤3,面几何对象拓扑关系的形式化定义,建立顶点-梯形格网模型(v-tmm);
11.步骤4,基于v-tmm计算建筑物与绿地的拓扑关系,检测是否存在违规建筑用地。
12.上述步骤1具体包括:(1)将面要素几何化为多边形,从每个顶点做水平扫描线与多边形边形成交点,每两条相邻扫描线构成一个扫描行,匹配扫描行之间的交点与多边形顶点,得到相交边集合;(2)位于同一扫描行的相交边自左向右两两配对,组成梯形面片,根据梯形面片之间的邻接关系和邻接个数,区分梯形面片中的骨干梯形和细节梯形;(3)寻找梯形链头,或是位于多边形顶部的三角形,或是跟在骨干梯形下方的细节梯形;由每个梯形链头出发,逐个扫描行向下遍历,直到遇到第一个骨干梯形停止,构建梯形链;所有梯形链构建完成后,组合成梯形连通图;(4)经过步骤(1)、(2)和(3)后可以得到一个代表多边形的梯形连通图;梯形面片是组成多边形的基本单元,而梯形连通图是梯形面片集合经过分类规整之后,一种高级、完备的多边形剖分形式,面向各种基于梯形格网数据结构的计算、分析、可视化需求。
13.上述步骤2具体包括:(1)在步骤1构建的梯形连通图中,对于待判定点逐个遍历梯形链,判定该点是否落在当前梯形链内;(2)判定点是否位于梯形链的首尾梯形之间,若是则定位点所在的细节梯形行,否则点在多边形外;(3)判定点是否位于该细节梯形行的某个细节梯形中,若是则点在多边形内,否则点在多边形外;(4)经过步骤(1)、(2)和(3)后可以判定点是否在多边形剖分而成的梯形格网内,即点是否在多边形内,该判定称为点-梯形格网判定。
14.上述步骤3具体包括:对于拓扑关系待计算的两个多边形a、b,构建两者的梯形连通图。利用点-梯形格网判定,得到多边形b的顶点在多边形a中的个数,根据该个数将八种基本拓扑关系分为三大类,再结合每一大类拓扑关系对应的辅助判定,形成确定性的拓扑关系矩阵,该拓扑关系模型成为顶点-梯形格网模型(v-tmm)。
15.上述步骤4具体包括:输入建筑物与绿地的坐标数据,将两者几何化为多边形。通过步骤1的水平线扫描剖分后,用梯形连通图来表示任意建筑物或绿地,进而获取一个建筑物a的顶点集合pa,通过步骤2得到pa在一个绿地b中的点个数,代入步骤3定义的拓扑关系矩阵,根据矩阵取值,计算建筑物与绿地的拓扑关系,完成是否存在建筑占用绿地的违规情况检测。
16.有益效果:本发明能够对任意两个面要素进行高效、稳定的拓扑关系计算,拓扑关系定义兼容于开放式地理信息系统协会发布的简单要素规范所定义的八类拓扑关系,且可以自由扩充。相比于解析几何的拓扑关系计算方法,本方法具有确定性的拓扑关系矩阵且计算过程明晰、高效;相比于平面图的拓扑关系计算,本方法避免了大量的求交运算,显著降低算法的复杂度;与其他现有的平面扫描线拓扑关系计算方法相比,本方法对面要素具有高度的针对性和适用性,提高了面要素拓扑关系的计算效率。
附图说明
17.图1本发明方法的流程图;
18.图2单个多边形的梯形剖分示意图;
19.图3梯形面片示意图;
20.图4多边形基本拓扑关系示意图。
具体实施方式
21.下面结合附图和实施例对本发明做进一步详细说明。
22.本发明通过水平扫描线剖分面要素,并构建梯形连通图。利用每个梯形面片具有的唯一横纵坐标区间,进行点-梯形格网判断,并在此基础上定义确定性的拓扑关系矩阵,最终根据两个多边形的拓扑关系矩阵取值,得到两者的拓扑关系。
23.实施例1
24.如图1所示,我国某范围内建筑用地与绿地拓扑关系计算包含以下步骤:
25.步骤1,面要素的水平扫描线剖分,构建梯形格网;
26.步骤2,点-梯形格网判定;
27.步骤3,面几何对象拓扑关系的形式化定义,建立顶点-梯形格网模型(v-tmm);
28.步骤4,基于v-tmm计算建筑物与绿地的拓扑关系,检测是否存在违规建筑用地。
29.更具体的实施步骤如下:
30.面要素剖分与梯形格网构建
31.本发明采用水平扫描线对面要素进行梯形剖分,以快速实现面要素之间的空间运算。将面要素几何化为多边形,设面要素为p,则面要素可几何化为点序列p1,p2,

,p
n-1
,pn=p1,p1p2,p2p3,

,p
n-1
pn=pnp1组成多边形的边,pi(i=1,2,

,n)是多边形的顶点。
32.由多边形各顶点射出的水平扫描线将多边形的各边(包括外边界、内边界)打断形成一组小线段;如图2,同一行中从左至右两相邻小线段作为斜边与扫描线围成了一个个梯形面片。
33.在具体实现中,首先开辟一个浮点型数组polygon_vertex_y[]用于存储多边形p各顶点p1,p2,

,p
11
(图2中以实心圆表示)的y坐标值,采用快速排序法将数组中的元素由
小到大排序,消除其中数值相同的元素;由数组中的各元素分别引出一条水平扫描线s1,s2,

,sn(以虚线表示)打断多边形p的边。
[0034]
以边p1p2为例,其端点的y坐标值为有序数组polygon_vertex_y[]中的两个元素,图中p1、p2分别位于扫描线s1、s4上,据此可推断边p1p2与s1、s4之间的扫描线s2、s3相交(交点以空心圆表示),此时p1p2被打断为三条首尾相连的小线段。当多边形p的所有边都被打断后,可得到一个以行为组织单位的小线段集。在同一行中,对这些小线段从左至右两两匹配,可逐个提取出题本梯形单元,即实现了多边形的梯形剖分。需指出的是剖分结果中可能会出现三角形面片(图2中多边形顶端和底端),它们可看做底边退化的特殊梯形。
[0035]
经扫描线剖分获得的梯形面片将存储于一对数据结构trapmesh_row和trapmesh_unit中。行梯形面片链表结构trapmesh_row用于组织一条扫描行内的各梯形面片,trapmesh_unit类型的指针*begin、*end分别指向该行中的首尾梯形面片;这样同一行中的所有梯形面片就被串联起来,便于进行插入、删除、查找等操作。
[0036]
梯形面片结构trapmesh_unit则记录一个梯形面片单元的位置坐标、属性,相邻梯形面片等信息。以图3的梯形面片为例,该梯形面片是由外边界顶点p2、内边界顶点p
10
和p
11
、扫描线s5与边p2p3的交点围成。四个顶点的y坐标值与扫描线s4s5的y坐标值相同,不必重复记录。因此该梯形面片结构仅存储四个顶点的x坐标值upleft、upright、downleft、down-right,梯形面片所属多边形的属性polygonid,以及指向同一行中相邻梯形面片的指针*next。
[0037]
点-梯形格网判定
[0038]
梯形格网继承栅格的特性之一,是水平扫描线剖分多边形得到的每个子区域,即组成梯形格网的每个梯形面片,都具有唯一的行列号和唯一的横纵坐标区间。利用该特性,能极大提升图像的计算效率。本发明以此进行点是否在多边形内的判定。
[0039]
当前的判定方法包括叉乘法、面积法、角度和法、水平/垂直交叉点数等。但无论哪种方法,都涉及复杂繁琐的计算。而在梯形格网的结构下,利用每个梯形面片具有的唯一横纵坐标区间,只需逐行列地遍历,比较待判定点的横纵坐标值与当前梯形面片的横纵坐标区间左右端点值的大小,即可完成点是否在多边形内的判定。也就是用简易的大小比较,代替繁琐的叉乘、求交等计算,获得更高的计算效率。本发明将这种判定方法称为点-梯形格网判定,该算法的具体过程可以描述为:
[0040]
1)记待判定点p的横纵坐标值为x
p
,y
p
。遍历梯形连通图中的梯形链,提取当前梯形链的首尾梯形t
p
,tr,得到首部梯形t
p
上平行边的纵坐标maxy(t
p
)和尾部梯形下平行边的纵坐标miny(t
p
),若miny(t
p
)≤y
p
≤maxy(t
p
),则进入下一步判定,否则点不在多边形内。
[0041]
2)遍历梯形链中的梯形面片,提取当前梯形面片ti上下平行边的纵坐标maxy(ti)和miny(ti),若miny(ti)≤y
p
≤maxy(ti),则待判定点可能位于该梯形面片内,停止遍历,进入下一步判定。
[0042]
3)获取梯形面片ti四个顶点的横纵坐标,即梯形面片左上角坐标(ulx,uly)、左下角坐标(dlx,dly)、右上角坐标(urx,ury)、右下角坐标(drx,dry)。
[0043]
4)判定点p是否位于梯形面片ti的内接矩阵中,即是否满足以下条件
[0044]
max(ulx,dlx)≤x
p
≤min(urx,drx)
[0045]
若是则点位于多边形内,判定结束,否则进入下一步判定。
[0046]
5)判定点p是否位于梯形面片ti的左斜边区域,即是否满足以下两个条件
[0047]
min(ulx,dlx)≤x
p
≤max(ulx,dlx)
[0048][0049]
若是则点位于多边形内,判定结束,否则进入下一步判定。
[0050]
6)判定点p是否位于梯形面片ti的右斜边区域,即是否满足以下两个条件
[0051]
min(urx,drx)≤x
p
≤max(urx,drx)
[0052][0053]
若是则点位于多边形内,判定结束,否则点不在多边形内。
[0054]
拓扑关系矩阵定义
[0055]
为便于叙述点与多边形的位置关系,本发明中,点在多边形内部及边界上称为被多边形包含,仅在多边形内部称为被多边形内含。
[0056]
本发明基于梯形格网计算两个多边形(包括简单和复杂多边形)的拓扑关系。对于两个多边形a、b,先构建两者的梯形格网,利用点-梯形格网判定,得到b的顶点被a包含的个数,根据该个数再结合相应的辅助判定,形成确定性的拓扑关系矩阵,本发明将其称为顶点-梯形格网模型(vertex-trapezoidal mesh model,v-tmm)。拓扑关系矩阵r(a,b)可描述为:
[0057][0058]
式中,n是多边形b的顶点被a包含的个数;由egenhofer等的理论,将任意多边形i,以内部i
°
和边界两个部分来表达;i的所有顶点组成点集合pi;c表示整个平面区域。需要指出的是,每个点集是否与区域相交的判定,均是通过点-梯形格网判定实现的。
[0059]
关于矩阵中各元素的取值,n∈[0,nb]且n∈z,z为整数集,nb为多边形b的顶点个数。其余元素分别对应一种判定,取值范围均为{0,1},点集合中存在点位于判定区域内取1,不存在取0。同时为简洁表达矩阵,引入*表示该元素无关于当前情况的拓扑关系计算,将其忽略。
[0060]
v-tmm表达的多边形8种基本空间拓扑关系可描述为:
[0061][0062]
采用v-tmm检测违规建筑用地
[0063]
将拓扑关系待计算的两个多边形记为a、b,本发明根据点-梯形格网判定的结果,即拓扑关系矩阵r中n的取值情况,将八种基本拓扑关系分为如下三类:
[0064]
{被包含,相离}
ꢀꢀ
n=0
[0065]
{重叠,被覆盖,相接}
ꢀꢀ
n∈[1,n
a-1]
[0066]
{相等,覆盖,包含}
ꢀꢀ
n=na[0067]
1)n为0
[0068]
b的顶点均不被a包含,即b的顶点均在a外部。此时存在两种可能性。其一,如图4(a)所示,a的顶点也均在b外部,a与b分离(disjoint);其二,如图4(b)所示,a的顶点均被b内含,a被b包含(within)。
[0069]
根据上述分析,n为0时,a与b的拓扑关系取值范围为{相离,被包含}。本发明利用拓扑关系矩阵第一行的元素进行拓扑关系计算,判定a的顶点中是否存在被b内含的,若存在,pa∈b
°
取1,则a被b包含(within),计算结束,拓扑关系矩阵描述为:
[0070][0071]
否则,pa∈b
°
取0,则a与b分离(disjoint),计算结束,拓扑关系矩阵描述为:
[0072][0073]
2)n介于1~n
b-1
[0074]
为便于矩阵表达,记n∈[1,n
b-1]且n∈z,z为整数集。即在这种情况下,n取n,b的顶点中有但不全被a包含。此时存在三种可能性。其一,如图4(c),b的顶点中存在被a内含的,a与b重叠(overlap)。
[0075]
如果b的顶点均不被a内含,说明b的部分顶点被a包含而不被a内含,那么这些顶点均落在a的边界上,即a与b中有边界相互重合,另外两种可能存在于这种情况下。其一,如图4(d),a从b内侧与b接壤,a被b覆盖(coveredby);其二,如图4(e),a从b外侧与b接壤,a与b相接(touch)。
[0076]
由上述分析,n取n时,a、b的拓扑关系取值范围为{重叠,被覆盖,相接}。本发明利用n及拓扑关系矩阵第二行的元素进行拓扑关系计算,先判断b的顶点中是否存在被a内含的,若存在,pb∈a
°
取1,则a与b重叠(overlap),计算结束,拓扑关系矩阵描述为:
[0077][0078]
否则,pb∈a
°
取0,再判断a的顶点中是否存在被b内含的,若存在,则pa∈b
°
取1,则a被b覆盖(coveredby),计算结束,拓扑关系矩阵描述为:
[0079][0080]
否则,pa∈b
°
取0,则a与b相接(touch),计算结束,拓扑关系矩阵描述为:
[0081][0082]
3)n为nb[0083]
b的顶点全部被a包含。此时,存在三种可能性。其一,如图4(f),a的顶点中不存在位于b外部的,即a的顶点也全部被b包含,说明a与b的顶点完全相同,a与b相等(equal)。
[0084]
否则,有另外两种可能。其一,如图4(g),b的顶点或被a内含或在a的边界上,a覆盖b(cover);其二,如图4(h),b的顶点全部被a内含,a包含b(contain)。
[0085]
由上述分析,n为nb时,a、b的拓扑关系取值范围为{相等,包含,覆盖}。本发明利用n及拓扑关系矩阵第三行的元素进行拓扑关系计算,先判断a的顶点中是否存在位于b外部的,若不存在,取0,则a与b相等(equal),计算结束,拓扑关系矩阵描述为:
[0086][0087]
否则,取0,再判断b的顶点中是否存在不被a内含的,若存在,pb∈(c-a
°
)取1,则a覆盖b(cover),计算结束,拓扑关系矩阵描述为:
[0088][0089]
否则,pb∈(c-a
°
)取0,则a包含b(contain),计算结束,拓扑关系矩阵描述为:
[0090][0091]
在违规建筑用地的检测中,先输入建筑物和绿地的坐标数据,将两者几何化为多边形。接着,利用水平扫描线对多边形进行剖分,并构建相应的梯形连通图。再将建筑物作为多边形a,绿地作为多边形b,以点-梯形格网判定的结果,代入对应v-tmm中对应的拓扑关系矩阵,计算得到a与b的拓扑关系。
[0092]
通过上述流程,逐一计算每个建筑物与每个绿地之间的拓扑关系,仅当计算结果为分离(disjoint)或相接(touch)时,建筑物不存在占用绿地的情况,记录其余情况下的建筑物id号,即可提取所有违规占用绿地的建筑物,完成违规建筑用地的检测。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献