一种连续铺盖数据的拓扑快速构建算法的制作方法

未命名 07-15 阅读:88 评论:0


1.本发明涉及地图制图学技术领域,尤其涉及一种连续铺盖数据的拓扑快速构建算法。


背景技术:

2.近年来开展的地理国情普查和第三次全国土地调查等重大国情国力调查项目积累了大量全覆盖、无缝隙、高精度的土地利用图斑、坡度等级图等基础数据;为满足各行各业的跨比例尺应用需求,需要对数据进行化简、融合、聚合、降维等地图综合操作;这些操作对综合前后的数据都有不同的拓扑关系约束要求,因此构建铺盖数据的拓扑关系十分重要。
3.现有技术在构建面状空间数据的拓扑关系一般包含四步:一是求弧段交点;二是对弧段进行分割;三是建立结点与弧段的拓扑关系;四是搜索多边形,建立弧段和多边形的拓扑关系;上述步骤中,又以弧段求交和分割是面状数据拓扑关系构建的基础,也是重点;
4.现有技术的传统算法在执行弧段求交和分割操作时,涉及到的基础算子是线段相交的判断和计算,处理范围往往是全部数据域,因此会有大量无效判断和计算,浪费计算资源;
5.还有针对现有技术的改进即采用分治策略来生成多边形的拓扑信息,但现有技术的此类算法的实现过程比较复杂,拼接的时候会耗费很多计算资源,并且不一定能获得效率的提升;
6.还有针对现有技术的改进即借鉴栅格数据的处理手段来生成拓扑关系,但是栅格数据的应用范围有限,且矢栅转换的效率和效果也无法完全保证;
7.综上所述,现有技术使用拓扑构建算法在处理大数据量的铺盖数据时,由于共边情况较多,会涉及到大量的相交判断和计算,也要应对大量的弧段共线的处理,现有技术的算法效率较低,无法高效的利用收集的地图数据;
8.因此,本领域技术人员致力于开发一种连续铺盖数据的拓扑快速构建算法,旨在解决现有技术中存在的缺陷问题。


技术实现要素:

9.有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是目前现有技术中,计算,处理范围广,会进行大量的无效判断和计算;实现过程比较复杂,拼接的时候会耗费很多计算资源;应用范围有限,且矢栅转换的效率和效果差;算法效率较低,无法高效的利用收集的地图数据。
10.为实现上述目的,本发明一种连续铺盖数据的拓扑快速构建算法,包括如下步骤:
11.步骤a:数据预处理,将原始的连续铺盖的面数据解构成环线集合,然后检测处理环线冗余点、环分割问题;
12.步骤b:全局点序化,根据有重复、无实体信息的几何点生成无重复、含实体信息的
有序全局点集;
13.步骤c:识别分裂点,从全局点中识别出分裂点,作为后续弧段搜索的起点;
14.步骤d:弧段搜索,从分裂点开始,沿其关联的环线搜索并记录有序点集、关联实体信息等;
15.步骤e:构建拓扑,根据搜索的结果生成拓扑弧段,构建拓扑结构;
16.所述步骤a的数据预处理方法分为以下几步:
17.步骤a1:重复点、两点之间的空间距离小于设定的容差就认为是重复点;
18.步骤a2:冗余点、环线上除了首尾点外的、连续的、重复点;
19.步骤a3:解构、取原始连续铺盖的面数据的外环线和其所有洞环线,形成环线集合;
20.步骤a4:冗余点处理、按照点在环线上的顺序进行检测,当出现冗余点时,舍弃其中一点;
21.步骤a5:环分割、当检测到环线存在非首尾点的重复点时,在重复点处将原环线分割为两个新环线;再对新生成的环线重复上述检测分割过程,直至最终结果都是简单环;
22.所述步骤b的全局点序化处理分为以下几步:
23.步骤b1:创建rtree,用于对点进行建树索引;
24.步骤b2:从环线集合r中取一个未处理的环ri;
25.步骤b3:取ri上的几何点pj,根据pj的空间位置在rtree中搜索,判断搜索结果是否为空;
26.步骤b4:如果为空,则根据pj及其关联的实体信息,如关联的环ri,ri所在的原始几何,pj在ri上的索引等信息,按照globalpoint的格式创建一个全局点gm,放入全局点集合g中,并在rtree中记录pj;如果不为空,根据搜索结果得到已创建的全局点gn,根据pj关联的实体信息补充gm中的“关联的原始几何信息”、“关联的环线信息”、“点在环线上的索引信息”项等;
27.步骤b5:对ri上的所有点重复步骤b3、b4;
28.步骤b6:对环线集合r中的所有环重复步骤b2-b5,直至所有环都处理为止;
29.所述步骤c的分裂点识别分为以下几步:
30.步骤c1:三种类型的分裂点包括:

一类分裂点sp-i、

二类分裂点sp-ii、

三类分裂点sp-iii;
31.所述一类分裂点对应的几何点是环的首结点;
32.所述二类分裂点关联至少两个环且最多关联一个共享边;
33.所述三类分裂点至少关联三个环且至少关联三个共享边;
34.步骤d:弧段搜索,从分裂点开始,沿其关联的环线搜索并记录有序点集、关联实体信息等;
35.所述步骤d中,弧段搜索的方法分为以下几步:
36.步骤d1:弧段搜索的基本原则:
37.①
空间连续性:两个全局点包含的几何点在其关联的所有环线上都是空间连续的;
38.②
属性一致性:搜索路径扩展过程中需保证实体信息的一致性,不新增、不缺失;
39.步骤d2:扩展点追踪:
40.所述步骤d2,若两点关联的环信息是一致的,且在对应的环上是几何连续的,那两点之间的路径是可扩展的,路径对应的属性信息就是对应关联的环信息;
41.所述步骤d2对于首尾段的扩展条件及保留的属性信息有特殊判断和处理;
42.所述步骤d2对于路径首段的处理方法如下:
43.①
如果两点关联的环完全一致且点是连续的,则是可扩展的;属性信息保留关联的所有环信息;
44.②
如果两点关联的环信息不一致且互不包含,取共同关联且在几何上相邻的环信息作为扩展路径的属性信息;
45.③
如果当前点关联的环信息包含了待扩展点关联的环信息,首先判断两点在待扩展点关联的环上是否几何连续;如果存在不连续的则不能扩展;如果都是连续的,则可扩展,属性信息保留待扩展点关联的所有环信息;
46.④
同理如果待扩展点关联的环信息包含了当前点关联的环信息,判断两点在当前点关联的环上是否是几何连续的,如果存在不连续的情况则不能扩展,如果都是连续的,则可扩展,属性信息保留待扩展点关联的所有环信息;
47.所述步骤d2对于路径非首段的处理方法如下:
48.①
首先判断当前点和待扩展点在对应的环上是否几何连续的,不连续则不可扩展;如果几何连续,则继续判断属性信息;
49.②
如果待扩展点关联的环信息和当前路径关联的环信息一致,待扩展点可添加到当前路径中,并把待扩展点作为当前点继续判断;
50.③
如果待扩展点关联的环信息包含了当前路径关联的环信息,待扩展点可添加到当前路径中,结束路径搜索;
51.④
如果当前路径关联的环信息包含了待扩展点关联的环信息,待扩展点不可添加到当前路径中,结束路径搜索;
52.⑤
如果当前路径关联的环信息和待扩展点关联的环信息不一致且互不包含,待扩展点不可添加到当前路径中,结束路径搜索;
53.对于多边形洞环的首结点形成的分裂点,如果路径搜索过程中又回到了起始的分裂点,则说明环线是孤立的,即可结束搜索;
54.步骤d3:弧段搜索分为以下几步:
55.①
取一个分裂点作为当前点g
cur
,得到其关联的信息;
56.②
取g
cur
关联的一个环ri,沿环线的方向取当前点的相邻点(前点或后点),找到它对应的全局点g
nxt
作为待扩展点;
57.③
检查g
cur
和g
nxt
之间的路径是否已经作为首尾路径进行了搜索:是则结束搜索,否则进入步骤


58.④
判断g
cur
和g
nxt
之间的路径是否是可扩展的:
59.如果是不可扩展的,则结束当前搜索路径,记录路径的首尾段;
60.如果是可扩展的,则创建或追加更新搜索路径path{},创建时记录当前路径实体信息attri{},更改g
nxt
的搜索标记为已搜;把g
nxt
作为g
cur
,重复步骤
②‑④
,直到遇到不可扩展点;
61.⑤
经过步骤
②‑
步骤

,如果得到的是一条路径结果(即只有前点方向或后点方向可扩展),则记录结果路径、结束点等信息;如果得到的是两条路径结果(即前点、后点方向均可扩展),判断两路径关联的环信息是否一致;
62.若不一致时,分别记录两条路径结果;一致时,检查与起始分裂点的环关联信息是否相同,相同时可以合并为一条路径,不相同的话还是要分别记录两段路径结果;
63.⑥
对g
cur
关联的所有环做步骤

至步骤

的处理,直到所有关联环都处理过为止;
64.⑦
对所有分裂点重复步骤
①‑
步骤


65.所述步骤e中,构建拓扑方法包括:
66.弧段搜索的结果是多组有序的全局点集合及其对应的属性信息;把每一组有序的全局点集转化为几何线,赋值对应路径的实体属性,就可得到初始的结果弧段;
67.完成一般弧段的生成后对孤立环弧做处理,在一般扩展路径搜索过程中,记录下所有搜索路径涉及的环的首节点,最后从数据所有环线的首节点集合中排除已搜的首节点,剩下的即是sp-i类分裂点;
68.如果一个sp-i类分裂点关联的环信息只有一个,直接根据关联的环几何和对应的实体信息生成弧段;如果一个sp-i类分裂点关联多个环信息,需检查一下当前环线邻近点是否也含有相同的多实体信息,如果不是,则对生成的岛弧赋单实体信息,而非多实体信息,因为可能只是环在首点处共点而已;对已经搜索过的环洞不需要再重复构弧,防止一个环几何相同,但首点不同多次构建弧段;
69.采用以上方案,本发明公开的连续铺盖数据的拓扑快速构建算法,具有以下优点:
70.(1)本发明的连续铺盖数据的拓扑快速构建算法,不同于以往的拓扑构建算法在处理大数据量的铺盖数据时,由于共边情况较多,会涉及到大量的相交判断和计算,也要应对大量的弧段共线的处理,因此算法效率较低;本发明的连续铺盖数据具有全覆盖、无重叠、无缝隙的空间分布特征,共边线上的几何点基本是符合一致的,并且连续铺盖数据形成的拓扑结构中,拓扑弧段在几何上对应面的公共边,其首尾结点对应着公共边的起始、终止点;
71.(2)本发明的连续铺盖数据的拓扑快速构建算法,处理的是特定的数据域,算法执行效率高,耗费的计算资源少,应用范围广,可以高效的利用收集的地图数据;
72.综上所述,本发明公开的连续铺盖数据的拓扑快速构建算法,本发明的连续铺盖数据具有全覆盖、无重叠、无缝隙的空间分布特征,共边线上的几何点基本是符合一致的,并且连续铺盖数据形成的拓扑结构中,拓扑弧段在几何上对应面的公共边,其首尾结点对应着公共边的起始、终止点,处理的是特定的数据域,算法执行效率高,耗费的计算资源少,应用范围广,可以高效的利用收集的地图数据;
73.以下将结合具体实施方式对本发明的构思、具体技术方案及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
74.图1为本发明连续铺盖数据的拓扑快速构建算法技术路线图;
75.图2为本发明连续铺盖数据的拓扑快速构建算法步骤a中面解构为环的示意图;
76.图3为本发明连续铺盖数据的拓扑快速构建算法步骤a中冗余点处理的示意图;
77.图4为本发明连续铺盖数据的拓扑快速构建算法步骤a中环分割的示意图;
78.图5为本发明连续铺盖数据的拓扑快速构建算法步骤b中的全局点序化的示意图;
79.图6为本发明连续铺盖数据的拓扑快速构建算法步骤c中分裂点的示意图;
80.图7为本发明连续铺盖数据的拓扑快速构建算法步骤d中弧段搜索原则的示意图;
81.图8为本发明连续铺盖数据的拓扑快速构建算法步骤d中弧段搜索的示例图;
82.图9为本发明连续铺盖数据的拓扑快速构建算法步骤d中闭合弧处理的示意图。
具体实施方式
83.以下介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,这些实施例为示例性描述,本发明的保护范围并非仅限于文中提到的实施例。
84.实施例1
85.如图所示,图1为本发明连续铺盖数据的拓扑快速构建算法技术路线图;
86.步骤a:数据预处理,将原始的连续铺盖的面数据解构成环线集合,然后检测处理环线冗余点、环分割问题;
87.所述步骤a、首先,把连续铺盖的面数据解构成环线集合,对环线进行冗余点去除、环分割等处理;其次,对环线上的几何点进行全局点序化,将有重复、无实体信息的几何点转换为无重复、含实体信息的全局点;再次,从全局点中识别出分裂点,作为后续弧段搜索的起点;然后,从分裂点开始,沿着它所在环的点串进行弧段搜索,记录搜索过程中有序点集以及关联的实体信息;最后,将有序点集转换为几何线,结合实体信息生成拓扑弧段,构建拓扑结构;
88.所述步骤a中的数据预处理包括三部分:首先将原始连续铺盖的面数据解构成环线集合,然后检测处理环线冗余点问题,最后检测处理环分割问题;
89.所述步骤a中的数据预处理中的面数据解构成环,是取面的外环线和其所有洞环,形成环线集合;
90.其示意图,如图2所示,图2(a)表示的是原始铺盖面数据,共8个面数据,面a5是包含了两个洞,其余都是简单无洞的面;其中面a1、a2、a3均和面a5共边,面a4和面a5共点,面a6覆盖a5的第一个洞,面a7和面a8相邻,共同覆盖a5的第二个洞;
91.图2(b)表示的是铺盖面解构得到的环线数据和环上的点,面a1、a2、a3、a4、a6、a7、a8解构分别得到环r1、r2、r3、r4、r8、r9、r
10
,面a5解构得到三个环r5、r6、r7,环r6与环r8完全重合,环r9和r
10
与环r7部分重合;
92.所述步骤a中的数据预处理中的冗余点处理,环线上除了首尾点外的、连续的、重复点即为冗余点;
93.在本实施例1中,这里的重复是指在一定容差范围内的重复,即两点之间的空间距离d小于一定的容差d
ε
就认为是重复的;其中,距离利用欧式距离公式(1)计算,式中(xj,yj),(xk,yk)分别是环上相邻的几何点pj和pk的坐标;如果二者距离d小
94.图3是冗余点处理的示意图;以图3为例进行说明,图3(a)是面解构得到的环线,由6个点组成,其中p1、p6分别是首、尾点;p3、p4之间的距离为0,是冗余点;图3(b)是经过冗余点处理后的环,由5个点组成;与图3(a)相比,删除了冗余的p4点,环线上没有其他冗余点了;
95.所述步骤a中的数据预处理中的环分割检测每个环线是否是简单环,即每个环线本身在首尾处点仅重复一次,其他位置不能有重复点;
96.当本实施例1检测到环线存在重复点时,在重复点处将原环线分割为两个新环线;再对新生成的环线重复上述检测分割过程,直至最终结果都是简单环,具体实施时,在本实施例1中,这里“重复”的含义和步骤a数据预处理中冗余点处理中的含义相同;
97.图4是环分割的示意图;以图4为例进行说明,图4(a)是环进行分割处理前的形状,由11个点组成,其中其中p1、p1分别是首、尾点;由于p4、p9之间的距离为0且不连续,因此是重复点,需对环在p4、p9处进行分割;
98.图4(b)是分割后得到的两个环,第一个新环由p1、p2、p3、p4、p
10
、p
11
六个点组成,其中p1、p
11
分别是首、尾点,环上其他无重复点;第二个新环由p4、p5、p6、p7、p8、p9六个点组成,其中p4、p9分别是首、尾点,环上无其他重复点;分割得到的两个新环除首尾点外均无其他重复点,因此不再做环分割;
99.步骤b:全局点序化,根据有重复、无实体信息的几何点生成无重复、含实体信息的有序全局点集;
100.所述全局点序化过程是为了将环线上有重复、无实体信息的几何点转换为无重复、含实体信息的全局点集,本实施例1的具体步骤如下:
101.步骤1:创建rtree,用于对点进行建树索引;
102.步骤2:从环线集合r中取一个未处理的环ri;
103.步骤3:取ri上的几何点pj、根据pj的空间位置在rtree中搜索,判断搜索结果是否为空;
104.步骤4:如果为空,则根据pj及其关联的实体信息,如关联的环ri,ri所在的原始几何,pj在ri上的索引等信息,按照globalpoint的格式创建一个全局点gm,放入全局点集合g中;并在rtree中记录pj;
105.如果不为空,根据搜索结果得到已创建的全局点gn,根据pj关联的实体信息补充gm中的“关联的原始几何信息”、“关联的环线信息”、“点在环线上的索引信息”项等;
106.步骤5:对ri上的所有点重复步骤3、4;
107.步骤6:对环线集合r中的所有环重复步骤2-步骤5,直至所有环都处理为止;
108.如图所示,图5为本发明连续铺盖数据的拓扑快速构建算法步骤b中的全局点序化的示意图;本实施例1,以图5为例,简单说明全局点序化过程;图5(a)表示原始面;图5(b)表示解构得到的环和环上的几何点;图5(c)表示转化得到的全局点;由原始面a1、a2得到的环r1、r2上分别有四个几何点:p
1-1
至p
1-4
和p
2-1
至p
2-4

109.首先取r1上的点p
1-1
,在rtree中进行搜索,得到结果为空;创建全局点g1={point=p
1-1
,geometryindex={1},ringindex={1},pointindex={1},issearched=false};将g1放入全局点集合g中,并在rtree中记录g1;类似的根据p
1-2
、p
1-3
、p
1-4
创建全局点g2={point=p
1-2
,geometryindex={1},ringindex={1},pointindex={2},issearched=
false},g3={point=p
1-3
,geometryindex={1},ringindex={1},pointindex={3},issearched=false},g4={point=p
1-4
,geometryindex={1},ringindex={1},pointindex={4},issearched=false},至此环r1上的点全部进行了全局点序化;
110.然后对r2上的点进行全局点序化,取p
2-1
在rtree中进行搜索,得到之前创建的全局点g2,将当前关联的实体信息补充到g2中,更新后的g2={point=p
1-2
,geometryindex={1、2},ringindex={1、2},pointindex={2、1},issearched=false};以此类推,通过p
2-2
得到全局点g5={point=p
2-2
,geometryindex={2},ringindex={2},pointindex={2},issearched=false},通过p
2-3
得到g6={point=p
2-3
,geometryindex={2},ringindex={2},pointindex={3},issearched=false},通过p
2-4
更新g3={point=p
1-3
,geometryindex={1、2},ringindex={1、2},pointindex={3、4};
111.如图所示,图6为本发明连续铺盖数据的拓扑快速构建算法步骤c中分裂点的示意图;
112.分裂点是一种关键的全局点,作为弧段搜索的起点,具体可分为如下三种:
113.①
一类分裂点sp-i:这类分裂点的特征是它对应的几何点是环的首结点:如图6中的g
18
可以作为分裂点,而g
22
不作为分裂点;
114.②
二类分裂点sp-ii:这类分裂点的特征是关联至少两个环且最多关联一个共享边;如图6中的g2、g5、g7等;而g4点虽然关联两个环,但是邻近的全局点只有g3、g5两个,所以它不是分裂点;
115.③
三类分裂点sp-iii:这类分裂点的特征是至少关联三个环且至少关联三个共享边;如图6中的g3、g
26
、g
27

116.具体到本发明实施例1中,图6中,

一类分裂点sp-i为g
18


二类分裂点sp-ii为g2、g5、g7、g
10
、g
11
、g
14


三类分裂点sp-iii为g3、g
26
、g
27
;图6中,除上述三类点外,其余点均为一般全局点;
117.如图所示,图7为本发明连续铺盖数据的拓扑快速构建算法步骤d中弧段搜索原则的示意图;图8为本发明连续铺盖数据的拓扑快速构建算法步骤d中弧段搜索的示例图;
118.④
搜索原则:弧段搜索是从分裂点开始,遵循空间连续性和属性一致性的原则沿着它所在环的点串进行路径搜索,记录搜索过程中有序点集以及关联的实体信息;
119.本实施例1具体以图7为例进行说明;空间连续性是指两个全局点包含的几何点在其关联的所有环线上都是空间连续的;
120.如图7(a)表示的是三个原始面数据,图7(b)中表示的是对应的三个环r1(p
1-1-p
1-6
)、r2(p
2-1-p
2-8
)、r3(p
3-1-p
3-5
),全局点有g
1-g
12
,其中全局点g2对应几何点p
1-2
和p
2-1
,全局点g3对应几何点p
1-3
和p
2-8
,全局点g4对应几何点p
1-4
和p
2-5
,全局点g5对应几何点p
1-5
和p
2-4

121.其中全局点g2、g3具有空间连续性,因为它们对应的几何点p
1-2
、p
1-3
在r1上是连续的,p
2-1
、p
2-8
在r2上也是连续的;而全局点g3、g4则不具有空间连续性,因为它们对应的几何点p
1-3
、p
1-4
在r1上是连续的,但是对应的几何点p
2-8
、p
2-5
在r2上是不连续的;
122.所述属性一致性是指搜索路径扩展过程中需保证实体信息的一致性,不新增、不缺失;如图7(b)中,当g4为当前点,判断g5是否是可扩展点时,由于g4关联r1、r2两个环,而g5关联r1、r2、r3三个环,因此搜索路径到g5中断;
123.⑤
扩展点追踪:若如果两点关联的环信息是一致的,且在对应的环上是几何连续
的,那两点之间的路径是可扩展的,路径对应的属性信息就是对应关联的环信息;但是对于首尾段的扩展条件及保留的属性信息有特殊判断和处理;
124.本实施例1具体以图8为例进行说明;对于路径首段:
125.(1)如果两点关联的环完全一致且点是连续的,则是可扩展的;属性信息保留关联的所有环信息;如图8中的g
6-g
12
路径可扩展,保留r3和r4的属性信息;
126.(2)如果两点关联的环信息不一致且互不包含,取共同关联且在几何上相邻的环信息作为扩展路径的属性信息:如g
3-g8路径可扩展,保留共同关联的r2和r5的属性信息;
127.(3)如果当前点关联的环信息包含了待扩展点关联的环信息,首先判断两点在待扩展点关联的环上是否几何连续;如果存在不连续的则不能扩展;如果都是连续的,则可扩展,属性信息保留待扩展点关联的所有环信息;如g
8-g9路径可扩展,保留r2和r3的属性信息;
128.(4)同理如果待扩展点关联的环信息包含了当前点关联的环信息,判断两点在当前点关联的环上是否是几何连续的,如果存在不连续的情况则不能扩展,如果都是连续的,则可扩展,属性信息保留待扩展点关联的所有环信息;如g
7-g8路径可扩展,保留r3和r5的属性信息;
129.对于非首段:
130.(1)首先判断当前点和待扩展点在对应的环上是否几何连续的,不连续则不可扩展,如g
15-g
20-g
23
,在r8上不是连续的点,因此不可扩展;如果几何连续,则继续判断属性信息;
131.(2)如果待扩展点关联的环信息和当前路径关联的环信息一致,待扩展点可添加到当前路径中,并把待扩展点作为当前点继续判断:如g
6-g
10-g
11

132.(3)如果待扩展点关联的环信息包含了当前路径关联的环信息,待扩展点可添加到当前路径中,结束路径搜索:如g
5-g
9-g8;
133.(4)如果当前路径关联的环信息包含了待扩展点关联的环信息,待扩展点不可添加到当前路径中,结束路径搜索:如g
6-g
12-g7;
134.(5)如果当前路径关联的环信息和待扩展点关联的环信息不一致且互不包含,待扩展点不可添加到当前路径中,结束路径搜索:如g
6-g
12-g7;
135.对于多边形洞环的首结点形成的分裂点,如果路径搜索过程中又回到了起始的分裂点,则说明环线是孤立的,即可结束搜索:如通过g
16
经过g
17
、g
18
、g
19
回到g
16
,其关联的环信息是孤立环r6、r7;
136.⑥
搜索算法:弧段搜索步骤如下:
137.步骤1:取一个分裂点作为当前点g
cur
,得到其关联的信息;
138.步骤2:取g
cur
关联的一个环ri,沿环线的方向取当前点的相邻点(前点或后点),找到它对应的全局点g
nxt
作为待扩展点;
139.步骤3:检查g
cur
和g
nxt
之间的路径是否已经作为首尾路径进行了搜索,是则结束搜索,否则进入步骤4;
140.步骤4:根据2.4.2所述情况判断g
cur
和g
nxt
之间的路径是否是可扩展的;
141.如果是不可扩展的,则结束当前搜索路径,记录路径的首尾段;如果是可扩展的,则创建或追加更新搜索路径path{},创建时记录当前路径实体信息attri{},更改g
nxt
的搜
索标记为已搜;把g
nxt
作为g
cur
,重复步骤2至步骤4,直到遇到不可扩展点;
142.步骤5:通过步骤2至步骤4,如果得到的是一条路径结果(即只有前点方向或后点方向可扩展),则记录结果路径、结束点等信息;如果得到的是两条路径结果(即前点、后点方向均可扩展),判断两路径关联的环信息是否一致;不一致时,分别记录两条路径结果;一致时,检查与起始分裂点的环关联信息是否相同,相同时可以合并为一条路径,不相同的话还是要分别记录两段路径结果;
143.步骤6:对g
cur
关联的所有环做步骤2至步骤5的处理,直到所有关联环都处理过为止;
144.步骤7:对所有分裂点重复步骤1至步骤6;
145.具体到本实施例1,以图8为例,其中g3、g8是sp-iii类分裂点,g2、g4、g5、g6、g7、g
12
、g
14
、g
15
、g
20
、g
23
是sp-ii类分裂点,g
16
是sp-i类分裂点;g3关联r1、r2、r5三个环,在r1上的邻点对应的全局点有g2和g4;
146.当以g3为当前点、g2为待扩展点在r1上开始搜索时,由于是首段,当前点g3的关联信息包含了待扩展点g2的关联信息,因此路径可扩展,路径的实体信息为g2关联的实体信息,即r1、r2,创建path1={g3,g2},attri1={r1、r2};当以g2作为当前点、g1作为待扩展点时,由于g1的实体信息只有r1,因此不可扩展,当前路径到此结束;
147.同理,当以g3为当前点、g4为待扩展点在r1上进行搜索时,得到path2={g3,g4},attri2={r1、r5};由于attri1、attri2不同,两条路径不能合并;以上完成的是在r1上的路径搜索;
148.同理,在r2上进行路径搜索时,以g3为当前点、g2为待扩展点的路径已搜索过不再处理;以g3为当前点、g8为待扩展点时,由于是首段,当前点g3的关联信息和待扩展点g8的关联信息有共同部分但互不包含,因此路径可扩展,路径的实体信息为g3、g8共同关联的实体信息,即r2、r5,创建path3={g3,g8},attri1={r2、r5},当前路径到此结束;
149.如图所示、图9为本发明连续铺盖数据的拓扑快速构建算法步骤d中闭合弧处理的示意图;
150.弧段搜索的结果是多组有序的全局点集合及其对应的属性信息;把每一组有序的全局点集转化为几何线,赋值对应路径的实体属性,就可得到初始的结果弧段;完成一般弧段的生成后对孤立环弧做处理,在一般扩展路径搜索过程中,记录下所有搜索路径涉及的环的首节点,最后从数据所有环线的首节点集合中排除已搜的首节点,剩下的即是sp-i类分裂点;
151.其中:
152.(1)如果一个sp-i类分裂点关联的环信息只有一个,直接根据关联的环几何和对应的实体信息生成弧段;
153.(2)如果一个sp-i类分裂点关联多个环信息,需检查一下当前环线邻近点是否也含有相同的多实体信息,如果不是,则对生成的岛弧赋单实体信息,而非多实体信息,因为可能只是环在首点处共点而已;如图9(a)所示,p
1-1
对应的全局点是sp-i类分裂点,其关联了两个弧,但是创建的岛弧只能赋值r1的实体信息;
154.(3)对已经搜索过的环洞不需要再重复构弧,防止一个环几何相同,但首点不同多次构建弧段;如图9(b)中所示p
1-1
、p
2-1
分别是环r1、r2的首点,对应的全局点都是sp-i类分裂
点,为防止产生两条重合的岛弧,在使用p
1-1
对应的分裂点搜索过程中记录下路径经过了p
2-1
对应的分裂点,不再作为分裂点进行搜索。
155.综上所述,本专利技术方案,不同于以往的拓扑构建算法在处理大数据量的铺盖数据时,由于共边情况较多,会涉及到大量的相交判断和计算,也要应对大量的弧段共线的处理,因此算法效率较低;本发明的连续铺盖数据具有全覆盖、无重叠、无缝隙的空间分布特征,共边线上的几何点基本是符合一致的,并且连续铺盖数据形成的拓扑结构中,拓扑弧段在几何上对应面的公共边,其首尾结点对应着公共边的起始、终止点;处理的是特定的数据域,算法执行效率高,耗费的计算资源少,应用范围广,可以高效的利用收集的地图数据。
156.以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员,无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的试验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

技术特征:
1.一种连续铺盖数据的拓扑快速构建算法,其特征在于,包括如下步骤:步骤a:数据预处理,将原始的连续铺盖的面数据解构成环线集合,然后检测处理环线冗余点、环分割问题;步骤b:全局点序化,根据有重复、无实体信息的几何点生成无重复、含实体信息的有序全局点集;步骤c:识别分裂点,从全局点中识别出分裂点,作为后续弧段搜索的起点;步骤d:弧段搜索,从分裂点开始,沿其关联的环线搜索并记录有序点集、关联实体信息;步骤e:构建拓扑,根据搜索的结果生成拓扑弧段,构建拓扑结构。2.如权利要求1所述算法,其特征在于,所述步骤a的数据预处理方法分为以下几步:步骤a1:重复点、两点之间的空间距离小于设定的容差就认为是重复点;步骤a2:冗余点、环线上除了首尾点外的、连续的、重复点;步骤a3:解构、取原始连续铺盖的面数据的外环线和其所有洞环线,形成环线集合;步骤a4:冗余点处理、按照点在环线上的顺序进行检测,当出现冗余点时,舍弃其中一点;步骤a5:环分割、当检测到环线存在非首尾点的重复点时,在重复点处将原环线分割为两个新环线;再对新生成的环线重复上述检测分割过程,直至最终结果都是简单环。3.如权利要求1所述算法,其特征在于,所述步骤b的全局点序化处理分为以下几步:步骤b1:创建rtree,用于对点进行建树索引;步骤b2:从环线集合r中取一个未处理的环r
i
;步骤b3:取r
i
上的几何点p
j
,根据p
j
的空间位置在rtree中搜索,判断搜索结果是否为空;步骤b4:如果为空,则根据p
j
及其关联的实体信息,如关联的环r
i
,r
i
所在的原始几何,p
j
在r
i
上的索引信息,按照globalpoint的格式创建一个全局点g
m
,放入全局点集合g中,并在rtree中记录p
j
;如果不为空,根据搜索结果得到已创建的全局点g
n
,根据p
j
关联的实体信息补充g
m
中的“关联的原始几何信息”、“关联的环线信息”、“点在环线上的索引信息”项;步骤b5:对r
i
上的所有点重复步骤b3、b4;步骤b6:对环线集合r中的所有环重复步骤b2-b5,直至所有环都处理为止。4.如权利要求1所述算法,其特征在于,所述步骤c的分裂点识别分为以下几步:步骤c1:三种类型的分裂点包括:

一类分裂点sp-i、

二类分裂点sp-ii、

三类分裂点sp-iii;所述一类分裂点对应的几何点是环的首结点;所述二类分裂点关联至少两个环且最多关联一个共享边;所述三类分裂点至少关联三个环且至少关联三个共享边。5.如权利要求1所述算法,其特征在于,所述步骤d中,弧段搜索的方法分为以下几步:
步骤d1:弧段搜索的基本原则:

空间连续性:两个全局点包含的几何点在其关联的所有环线上都是空间连续的;

属性一致性:搜索路径扩展过程中需保证实体信息的一致性,不新增、不缺失;步骤d2:扩展点追踪;步骤d3:弧段搜索。6.如权利要求1所述算法,其特征在于,所述步骤d2,若两点关联的环信息是一致的,且在对应的环上是几何连续的,那两点之间的路径是可扩展的,路径对应的属性信息就是对应关联的环信息;所述步骤d2对于首尾段的扩展条件及保留的属性信息有特殊判断和处理;所述步骤d2对于路径首段的处理方法如下:

如果两点关联的环完全一致且点是连续的,则是可扩展的;属性信息保留关联的所有环信息;

如果两点关联的环信息不一致且互不包含,取共同关联且在几何上相邻的环信息作为扩展路径的属性信息;

如果当前点关联的环信息包含了待扩展点关联的环信息,首先判断两点在待扩展点关联的环上是否几何连续;如果存在不连续的则不能扩展;如果都是连续的,则可扩展,属性信息保留待扩展点关联的所有环信息;

同理如果待扩展点关联的环信息包含了当前点关联的环信息,判断两点在当前点关联的环上是否是几何连续的,如果存在不连续的情况则不能扩展,如果都是连续的,则可扩展,属性信息保留待扩展点关联的所有环信息。7.如权利要求1所述算法,其特征在于,所述步骤d2对于路径非首段的处理方法如下:

首先判断当前点和待扩展点在对应的环上是否几何连续的,不连续则不可扩展;如果几何连续,则继续判断属性信息;

如果待扩展点关联的环信息和当前路径关联的环信息一致,待扩展点可添加到当前路径中,并把待扩展点作为当前点继续判断;

如果待扩展点关联的环信息包含了当前路径关联的环信息,待扩展点可添加到当前路径中,结束路径搜索;

如果当前路径关联的环信息包含了待扩展点关联的环信息,待扩展点不可添加到当前路径中,结束路径搜索;

如果当前路径关联的环信息和待扩展点关联的环信息不一致且互不包含,待扩展点不可添加到当前路径中,结束路径搜索;对于多边形洞环的首结点形成的分裂点,如果路径搜索过程中又回到了起始的分裂点,则说明环线是孤立的,即可结束搜索。8.如权利要求1所述算法,其特征在于,所述步骤d3:弧段搜索分为以下几步:

取一个分裂点作为当前点g
cur
,得到其关联的信息;

取g
cur
关联的一个环r
i
,沿环线的方向取当前点的相邻点(前点或后点),找到它对应的全局点g
nxt
作为待扩展点;

检查g
cur
和g
nxt
之间的路径是否已经作为首尾路径进行了搜索:是则结束搜索,否则进入步骤



判断g
cur
和g
nxt
之间的路径是否是可扩展的:如果是不可扩展的,则结束当前搜索路径,记录路径的首尾段;如果是可扩展的,则创建或追加更新搜索路径path{},创建时记录当前路径实体信息attri{},更改g
nxt
的搜索标记为已搜;把g
nxt
作为g
cur
,重复步骤
②‑④
,直到遇到不可扩展点;

经过步骤
②‑
步骤

,如果得到的是一条路径结果(即只有前点方向或后点方向可扩展),则记录结果路径、结束点的信息;如果得到的是两条路径结果(即前点、后点方向均可扩展),判断两路径关联的环信息是否一致;若不一致时,分别记录两条路径结果;一致时,检查与起始分裂点的环关联信息是否相同,相同时可以合并为一条路径,不相同的话还是要分别记录两段路径结果;

对g
cur
关联的所有环做步骤

至步骤

的处理,直到所有关联环都处理过为止;

对所有分裂点重复步骤
①‑
步骤

。9.如权利要求1所述算法,其特征在于,所述步骤e中,构建拓扑方法包括:弧段搜索的结果是多组有序的全局点集合及其对应的属性信息;把每一组有序的全局点集转化为几何线,赋值对应路径的实体属性,就可得到初始的结果弧段;完成一般弧段的生成后对孤立环弧做处理,在一般扩展路径搜索过程中,记录下所有搜索路径涉及的环的首节点,最后从数据所有环线的首节点集合中排除已搜的首节点,剩下的即是sp-i类分裂点。10.如权利要求1所述算法,其特征在于,所述步骤e中,如果一个sp-i类分裂点关联的环信息只有一个,直接根据关联的环几何和对应的实体信息生成弧段;如果一个sp-i类分裂点关联多个环信息,需检查一下当前环线邻近点是否也含有相同的多实体信息,如果不是,则对生成的岛弧赋单实体信息,而非多实体信息,因为可能只是环在首点处共点而已;对已经搜索过的环洞不需要再重复构弧,防止一个环几何相同,但首点不同多次构建弧段。

技术总结
本发明的连续铺盖数据的拓扑快速构建算法,算法步骤包括:数据预处理、全局点序化、识别分裂点、弧段搜索、构建拓扑;本发明的算法中的连续铺盖数据具有全覆盖、无重叠、无缝隙的空间分布特征,共边线上的几何点基本是符合一致的,并且连续铺盖数据形成的拓扑结构中,拓扑弧段在几何上对应面的公共边,其首尾结点对应着公共边的起始、终止点;处理的是特定的数据域,算法执行效率高,耗费的计算资源少,应用范围广,可以高效的利用收集的地图数据。可以高效的利用收集的地图数据。可以高效的利用收集的地图数据。


技术研发人员:殷勇 郭沛沛 武鹏达
受保护的技术使用者:中国测绘科学研究院
技术研发日:2023.03.16
技术公布日:2023/7/12
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐