一种高效提取大数据量无拓扑矢量多边形公共边方法技术

技术编号:23149192 阅读:69 留言:0更新日期:2020-01-18 13:31
本发明专利技术公开了一种高效提取大数据量无拓扑矢量多边形公共边方法,包括提取两个以上多边形公共边的步骤,所述两个以上多边形均有m个节点和m条线段,按照四个步骤进行提取。本发明专利技术提供的相邻多边形公共边提取方法相比传统方法效率更高,可以更好的满足大数据量无拓扑矢量多边形公共边高效提取的需求。

An efficient method to extract the common edge of large data non topological vector polygon

【技术实现步骤摘要】
一种高效提取大数据量无拓扑矢量多边形公共边方法
本专利技术涉及矢量数据处理
,具体为一种高效提取大数据量无拓扑矢量多边形公共边方法。
技术介绍
栅格数据与矢量数据是GIS领域空间数据组织的两种最基本的方式。其中,矢量数据是GIS空间分析应用的基础。栅格数据的矢量化是矢量数据的主要来源,然而由此直接矢量化产生的矢量数据大都呈现锯齿状且存在严重的数据冗余,很难形象、准确的表达真实的地理实体边界,满足空间分析的需求。因此,栅格数据矢量化产生的多边形通常需要进行平滑、压缩等后处理。但是,矢量化产生的多边形不包含面与边的拓扑关系,也就是相邻多边形的公共边均采用各自多边形包含的节点存储,即对于相同的位置两个多边形分别用该位置各自存储的节点表示。所以,若直接进行平滑、压缩处理会产生空隙。因此,对于矢量化产生的多边形,往往需要先提取相邻多边形的公共边,构建面、边之间的拓扑关系。传统的公共边提取方法:第一步:取出一个任意多边形A存储的第一个节点a0和第二个节点a1之间的线段a0-a1,查找该线段是否存在相邻多边形。若存在到则依次遍历相邻多边形包含的所有线段与线段a0-a1进行公共部分的判断提取。如此处查找到与线段a0-a1相邻的多边形为B,且多边形B包含m个节点,则遍历多边形B包含的所有线段b0-b1,b1-b2,……,bm-b0与线段a0-a1进行公共部分的判断和提取,遍历完毕后进入第二步。若每进行两条线段公共部分的判断提取记循环1次,则此处共循环m次。若不存在相邻多边形,则直接进入第二步,记循环为0次;>因为传统的公共边提取方法和本专利技术提供的公共边提取方法均在构建R树索引结构的基础上,通过索引查找与其相邻的多边形,并进一步的筛选出与某一线段相邻的多边形。即两者均采用相同的方法查找与某线段相邻的多边形,且查找相邻多边形产生的判断次数远远小于线段间公共部分判断提取的次数,所以所有的介绍均忽略查找相邻多边形这部分的判断次数。第二步:取出多边形A中紧邻线段a0-a1后面的线段a1-a2,采用同样的方法查找是否存在与线段a1-a2相邻的多边形。若存在且查找到的相邻多边形为多个,则按照查找到的相邻多边形的先后顺序,依次遍历每个相邻多边形包含的所有线段与线段a1-a2进行公共部分的判断提取,遍历完毕后进入第三步。由此可见,每步的循环次数等于与该线段所有相邻多边形包含的线段总数。第三步:取多边形A中紧邻线段a1-a2后面的线段a2-a3,采用同样的方法查找出与线段a2-a3相邻的多边形,同样的遍历相邻多边形包含的所有线段与线段a2-a3进行公共部分的判断提取。依次类推,直到处理完多边形A包含的所有线段。由此可见,采用传统方法提取某多边形与相邻多边形的公共边时,只要该多边形上查找到相邻多边形的线段,都需要与其相邻多边形包含的所有线段逐一进行公共部分的判断提取。虽然,该方法可以较为准确的提取多边形间的公共边。但是,相邻多边形间的公共边往往具有一定的连续性,也就是若某两条线段包含公共部分其后面紧邻的两条线段也一般包含公共部分,若每一条线段都与其相邻多边形包含的所有线段判断提取公共部分,势必降低效率。也就是说,如果与某线段相邻的多边形包含10万条线段,而实际情况下与该线段包含公共部分的线段通常只有个位数条,但却需要与其余99990多条线段都进行公共部分的判断。所以,这种传统的公共边提取方法会产生大量不必要的判断,当数据量比较大时,会大大降低处理的效率。因此,传统的多边形公共边提取方法无法满足大数据量无拓扑矢量多边形快速自动处理的需求。
技术实现思路
(一)解决的技术问题针对现有技术的不足,本专利技术提供了一种高效提取大数据量无拓扑矢量多边形公共边方法,解决了大数据量矢量多边形公共边提取效率较低,无法满足快速自动化处理需求的问题。(二)技术方案为实现上述目的,本专利技术提供如下技术方案:一种高效提取大数据量无拓扑矢量多边形公共边方法,包括提取两个以上多边形公共边的步骤,所述两个以上多边形均有m个节点和m条线段,所述提取步骤为:第一步,对两个以上多边形按照其包含节点数量由多到少的顺序排序;第二步,取出第一个多边形存储的第一个节点a0和第二个节点a1之间的线段a0-a1,判断线段a0-a1是否存在相邻多边形。若不存在,取紧邻其后面的线段a1-a2继续查找相邻多边形。若存在多边形B与其相邻,则从相邻多边形B的起始节点开始,依次取出一条线段与线段a0-a1进行公共部分的判断识别,一旦相邻多边形的某条线段bi-bi+1与线段a0-a1包含公共部分则停止识别,即不再取线段bi+1-bi+2与a0-a1判断,而是采用同步增加节点的方法,以线段bi-bi+1和线段a0-a1分别为起始线段,判断识别并提取第一个多边形与该相邻多边形B的公共部分。之后,一旦发现第一个多边形的当前线段ai-ai+1与相邻多边形B的当前线段不再包含公共部分,则进入步骤三;第三步,取线段ai-ai+1,采用与第一步相同的方法,查找到与线段ai-ai+1相邻的多边形。若查找到与线段ai-ai+1相邻的多边形有多个,且仍包含第一步中处理过的相邻多边形B,则此处只处理多边形B之外的相邻多边形,但后面的处理不做约束。因为,不排除第一个多边形中后面的线段与多边形B再次相邻。同样的,从与线段ai-ai+1相邻多边形的起始节点开始,依次取出一条线段与线段ai-ai+1进行公共部分的判断识别,一旦相邻多边形的某条线段与线段ai-ai+1包含公共部分则停止识别,继而采用同步增加节点的方法以该条线段和线段ai-ai+1分别为起始线段,判断识别并提取第一个多边形与该相邻多边形的公共部分。之后,一旦发现第一个多边形的当前线段aj-aj+1与该相邻多边形的当前线段不再包含公共部分,则直接进入步骤三。其中,线段aj-aj+1为第一个多边形中ai-ai+1后面的某条线段;第四步,依次取线段aj-aj+1和其后面的线段,采用与第二和三步相同的方法进行判断提取,直到处理完第一个多边形包含的所有线段。优选地,所述线段与其相邻多边形的某线段包含公共部分,而存储方向相反,则将相邻多边形存储的节点重新排序后,再采用同步增加节点的方法提取公共部分。如若线段a0-a1与相邻多边形B的线段bi-bi+1包含公共部分,但相邻多边形B的节点存储顺序与线段a0-a1相反,则需要首先将相邻多边形B的存储节点排序为bi+1-bi-bi-1-...-b0-bm-bm-1-...-bi+2-bi+1。其中,多边形B共包含m个节点。进一步地,所述线段a0-a1若识别出与多边形B相邻,且查找到多边形B中线段bi-bi+1与a0-a1包含公共部分,且节点存储顺序相同,则采用同步增加节点的方法,以线段a0-a1和线段bi-bi+1分别为第一多边形与相邻多边形公共部分判断提取的起始线段,提取公共部分。其中,当前两条线段a0-a1和bi-bi+1处理完成后,可按照如下原则在两个多边形中分别选取线段进行公共部分的判断和提取;若节点bi在线段a0-a1的反向延长线上,进一步的判本文档来自技高网...

【技术保护点】
1.一种高效提取大数据量无拓扑矢量多边形公共边方法,其特征在于:包括提取两个以上多边形公共边的步骤,所述两个以上多边形均有m个节点和m条线段,所述提取步骤为:/n第一步,对两个以上多边形按照其包含节点数量由多到少的顺序排序;/n第二步,取出第一个多边形存储的第一个节点a

【技术特征摘要】
1.一种高效提取大数据量无拓扑矢量多边形公共边方法,其特征在于:包括提取两个以上多边形公共边的步骤,所述两个以上多边形均有m个节点和m条线段,所述提取步骤为:
第一步,对两个以上多边形按照其包含节点数量由多到少的顺序排序;
第二步,取出第一个多边形存储的第一个节点a0和第二个节点a1之间的线段a0-a1,判断线段a0-a1是否存在相邻多边形;若不存在,取紧邻其后面的线段a1-a2继续查找相邻多边形;
若存在多边形B与其相邻,则从相邻多边形B的起始节点开始,依次取出一条线段与线段a0-a1进行公共部分的判断识别,一旦相邻多边形的某条线段bi-bi+1与线段a0-a1包含公共部分则停止识别,即不再取线段bi+1-bi+2与a0-a1判断,而是采用同步增加节点的方法,以线段bi-bi+1和线段a0-a1分别为起始线段,判断识别并提取第一个多边形与该相邻多边形B的公共部分;之后,一旦发现第一个多边形的当前线段ai-ai+1与相邻多边形B的当前线段不再包含公共部分,则进入步骤三;
第三步,取线段ai-ai+1,采用与第一步相同的方法,查找到与线段ai-ai+1相邻的多边形;
若查找到与线段ai-ai+1相邻的多边形有多个,且仍包含第一步中处理过的相邻多边形B,则此处只处理多边形B之外的相邻多边形,但后面的处理不做约束;因为,不排除第一个多边形中后面的线段与多边形B再次相邻;同样的,从与线段ai-ai+1相邻多边形的起始节点开始,依次取出一条线段与线段ai-ai+1进行公共部分的判断识别,一旦相邻多边形的某条线段与线段ai-ai+1包含公共部分则停止识别,继而采用同步增加节点的方法以该条线段和线段ai-ai+1分别为起始线段,判断识别并提取第一个多边形与该相邻多边形的公共部分;之后,一旦发现第一个多边形的当前线段aj-aj+1与该相邻多边形的当前线段不再包含公共部分,则直接进入步骤三;其中,线段aj-aj+1为第一个多边形中ai-ai+1后面的某条线段;
第四步,依次取线段aj-aj+1和其后面的线段,采用与第二和三步相同的方法进行判断提取,直到处理完第一个多边形包含的所有线段。


2.根据权利要求1所述的一种高效提取大数据量无拓扑矢量多边形公共边方法,其特征在于:所述线段与其相邻多边形的某线段包含公共部分,而存储方向相反,则将相邻多边形...

【专利技术属性】
技术研发人员:张亚军林巍凌刘小春王瑞瑞
申请(专利权)人:苏州中科蓝迪软件技术有限公司
类型:发明
国别省市:江苏;32

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

1