CN110704550B - 一种高效提取大数据量无拓扑矢量多边形公共边方法 - Google Patents
一种高效提取大数据量无拓扑矢量多边形公共边方法 Download PDFInfo
- Publication number
- CN110704550B CN110704550B CN201810639937.1A CN201810639937A CN110704550B CN 110704550 B CN110704550 B CN 110704550B CN 201810639937 A CN201810639937 A CN 201810639937A CN 110704550 B CN110704550 B CN 110704550B
- Authority
- CN
- China
- Prior art keywords
- line segment
- polygon
- adjacent
- node
- polygons
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000000605 extraction Methods 0.000 claims abstract description 26
- 239000013598 vector Substances 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 9
- 239000000284 extract Substances 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种高效提取大数据量无拓扑矢量多边形公共边方法,包括提取两个以上多边形公共边的步骤,所述两个以上多边形均有m个节点和m条线段,按照四个步骤进行提取。本发明提供的相邻多边形公共边提取方法相比传统方法效率更高,可以更好的满足大数据量无拓扑矢量多边形公共边高效提取的需求。
Description
技术领域
本发明涉及矢量数据处理技术领域,具体为一种高效提取大数据量无拓扑矢量多边形公共边方法。
背景技术
栅格数据与矢量数据是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的反向延长线上,进一步的判断节点bi+1的位置。若节点bi+1也在线段a0-a1的反向延长线上,则在多边形B上取紧邻bi-bi+1后面的线段bi+1-bi+2与线段a0-a1进行判断。若节点bi+1在线段a0-a1上,则进一步的判断节点bi+1与节点a1是否重合,若重合分别从第一个多边形和多边形B中取出线段a1-a2和bi+1-bi+2进行判断,若不重合从多边形B中取出bi+1-bi+2与a0-a1进行判断。若节点bi+1在线段a0-a1的延长线上,则从第一个多边形中取出紧邻a0-a1后面的线段a1-a2与线段bi-bi+1进行判断;
若节点bi在线段a0-a1内部,进一步的判断节点bi+1的位置。若节点bi+1在线段a0-a1上,判断节点bi+1与节点a1是否重合,若重合分别从第一个多边形和多边形B中取出紧邻a0-a1和bi-bi+1后面的线段a1-a2和bi+1-bi+2进行判断,若不重合从多边形B中取出紧邻bi-bi+1后面线段bi+1-bi+2与线段a0-a1进行判断。若节点bi+1在线段a0-a1的延长线上,从第一个多边形中取出紧邻a0-a1后面的线段a1-a2与线段bi-bi+1进行判断;
若节点bi在线段a0-a1的延长线上,从第一个多边形中取出紧邻a0-a1后面的线段a1-a2与线段bi-bi+1进行判断。
(三)有益效果
本发明提供了一种高效提取大数据量无拓扑矢量多边形公共边方法,具备以下有益效果:
(1)、通过以上叙述可知,本发明提供的高效提取大数据量无拓扑矢量多边形公共边方法提出的同步增加节点方法,在提取相邻多边形公共边时,相比传统的公共边提取方法循环次数减少,效率得到提高;
(2)、该高效提取大数据量无拓扑矢量多边形公共边方法,提出多边形按照包含的节点数量由多到少排序之后,再进行公共边的提取,进一步减少了循环的次数,提高了处理的效率。
综上可得:本发明提供的多边形公共边提取方法相比传统方法效率更高,可以更好的满足大数据量矢量多边形公共边高效提取的需求。
附图说明
图1为相邻多边形示意图;
图2为利用同步增加节点方法提取公共边的示意图;
图3为本发明方法与传统方法对比的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明提供一种技术方案:一种高效提取大数据量无拓扑矢量多边形公共边方法,包括多边形A、多边形B、多边形C以及提取步骤。其中,多边形A包含12个节点和12条线段,多边形B包含6个节点和6条线段,多边形C包含7个节点和7条线段。为了更清晰的显示本发明提供的同步增加节点方法在提取公共边时的优势,下面对多边形在不按照节点数量排序情况下,即与传统方法按照相同顺序情况下,只采用本发明提出的同步增加节点方法提取多边形A与其相邻多边形的公共边。
提取步骤为:
第一步,取出多边形A存储的第一个节点a0和第二个节点a1之间的线段a0-a1,查找该线段是否存在相邻多边形。若存在,则从相邻多边形的起始节点开始,依次取出一条线段与线段a0-a1进行公共部分的判断,一旦发现相邻多边形的某条线段与线段a0-a1包含公共部分则停止查找,继而采用同步增加节点的方法以该条线段和线段a0-a1分别为起始线段,判断提取多边形A和该相邻多边形的公共部分,直到多边形A的线段与相邻多边形上的线段不再包含公共部分,进入第二步。若线段a0-a1与其相邻多边形的存储方向相反,则将该多边形存储的节点重新排序后再采用同步增加节点的方法提取公共部分。若不存在,则该步循环次数为0,直接进入第二步;
此处,查找到线段a0-a1与多边形B相邻,则将线段a0-a1先与线段b0-b1判断,不包含公共部分,继续取线段b1-b2与a0-a1判断,包含公共部分且方向相同,则停止对多边形B包含线段的查找,即不再取线段b2-b3与a0-a1判断,而是以线段a0-a1和线段b1-b2分别为多边形A与多边形B公共部分判断提取的起始线段提取公共部分b1-b2(a1),再采用同步增加节点的方法,依次取线段a1-a2、线段b2-b3判断提取公共部分b2(a1)-b3(a2),取线段a2-a3、线段b3-b4判断提取公共部分b3(a2)-b4。因为此时线段b3-b4的端点b3在线段a2-a3内部,b4在线段a2-a3上且与a3不重合,则下一步取线段a2-a3与b4-b5判断提取公共部分,发现两者不再包含公共部分,则停止提取。然后,取线段a2-a3进入第二步。该步骤共提取出公共部分b1-b2(a1)-b3(a2)-b4,存储于多边形A和B的公共边,此处记循环5次;
该步骤总的循环次数可记为j+s=1+4=5次,其中,j为查找到与相邻多边形某线段包含公共部分之前的判断次数,如线段a0-a1在查找到相邻多边形B且与相邻多边形上的线段bp-bq包含公共部分时,线段bp-bq的起始节点bp与相邻多边形B的起始节点b0之间包含的线段个数(此处线段a0-a1与b1-b2包含公共部分,bp=b1,所以j=1),s为查找到公共部分后的判断次数(此处为4);
第二步,取线段a2-a3,采用与第一步相同的方法,查找到与线段a2-a3相邻的多边形有B和C,因为线段a2-a3与多边形B的公共边已提取完毕,因此此处只处理多边形C。从多边形C的起始节点开始每次取出一条线段与线段a2-a3进行公共部分的判断,一旦发现多边形C的某条线段与线段a2-a3包含公共部分则停止查找,继而采用同步增加节点的方法以该线段和线段a2-a3为起始线段判断提取多边形C和A的公共部分,直到多边形A的线段与多边形C的线段不再包含公共部分,进入第三步。同样的若多边形C包含节点的存储顺序与线段a2-a3相反,则将该多边形C存储的节点按照第一步所示的方法重新排序后再判断提取公共部分,若线段a2-a3没有查找到相邻多边形,则该步循环次数为0,直接进入第三步;
如此处只记线段a2-a3与多边形C相邻,则将线段a2-a3先与线段c0-c1判断,包含公共部分且方向相同,则停止对多边形C包含线段的查找,即不再取线段c0-c1与a2-a3判断,而是以线段a2-a3和线段c0-c1分别为多边形A与多边形C公共部分判断和提取的起始线段提取公共部分c0-c1(a3),再采用同步增加节点法,依次取线段a3-a4、线段c1-c2判断提取公共部分c1(a3)-c2(a4),取线段a4-a5、线段c2-c3判断提取公共部分c2(a4)-c3(a5),再取线段a5-a6、线段c3-c4,发现两者不再包含公共部分则停止提取,再取线段a5-a6进入第三步。该步共提取出公共部分c0-c1(a3)-c2(a4)-c3(a5),存储于多边形A和C的公共边,此处记循环4次;
该步骤总的循环次数可记为j+s=0+4=4次,其中,j为当线段a2-a3查找到相邻多边形且与相邻多边形上的线段cp-cq包含公共部分时,线段cp-cq的起始节点cp与多边形C起始节点c0之间包含的线段个数(此处为线段a2-a3与c0-c1包含公共部分,cp=c0,所以j=0),s为查找到公共部分后的判断次数(此处为4);
第三步,取线段a5-a6,采用与第一和二步相同的方法,发现查找不到与其相邻的多边形,则依次多边形A上a5-a6后面的线段a6-a7,……,a11-a0也没有查找到相邻多边形,则按照约定该步骤循环次数记为0。
下面我们对提取多边形A与相邻多边形公共边总的循环次数,采用一个统一的表达式表示。因为每一步的循环次数可用j+s表示,在不影响结果的情况下,不妨让总的循环次数用(j1+…+jk)+S表示,jk代表采用本发明提供的公共边提取方法中,多边形A中需要查找相邻多边形且可以查找到相邻多边形的线段,在查找到与相邻多边形的某条线段包含公共部分之前与相邻多边形包含线段判断的次数,k代表与多边形A相邻的多边形个数。如本实例j1为线段a0-a1查找到相邻多边形B,在找到与线段a0-a1包含公共部分的线段b1-b2之前与多边形B包含线段判断的次数(因为a0-a1与b1-b2包含公共部分,所以之前只与b0-b1判断,j1=1),j2为线段a2-a3查找到相邻多边形C,在找到与线段a2-a3包含公共部分的线段c0-c1之前与多边形C包含线段判断的次数(因为线段a2-a3与多边形C中第一条线段c0-c1就包含公共部分,所以j2=0)。S为每个步骤中查找到公共部分后提取多边形A与所有相邻多边形公共部分时判断的次数之和(4+4=8),也可以表示为Gab+Gac+k。其中,Gab代提取的多边形A与B的公共边上记录的所有节点组成的线段,Gac为多边形A和C的公共边上所有节点组成的线段,k代表采用同步增加节点法提取公共部分时最后一次判断(如a2-a3与b4-b5,a5-a6和c3-c4),等于与多边形A相邻的多边形个数,此处为2。所以提取多边形A与其相邻多边形的公共边总的循环次数为(j1+…+jk)+S=(1+0)+8=(j1+…+jk)+Gab+Gac+k=(1+0)+3+3+2=9次。
理论最大循环计算:
虽然多边形间整体的位置关系没有变化,但是若多边形节点存储的位置不同,或者说b0-b1不一定非在图中的位置,该位置有可能是b3-b4,也就是说a0-a1与相邻多边形B中包含公共部分的线段不一定是b1-b2有可能是b4-b5,那么对采用本发明提供方法提取公共边的循环次数就会产生影响。如线段a0-a1查找到多边形B中包含公共部分的线段之前不一定只遍历了b0-b1这1条线段有可能是4条线段,也有可能存在其他情况,极端情况下可能遍历了多边形B包含的所有线段,同理线段a2-a3极端情况下也可能便利了多边形C包含的所有线段。所以为了公平起见,现对本发明提供方法循环次数的通用表达式(j1+…+jk)+Gab+Gac+k确定理论最大循环次数,即j1,……,jk都为极端情况下遍历相邻多边形包含的所有线段。如果这样的话,统计的次数就一定包含了k值,所以总循环次数理论最大值的表达式为。其中,Nb代表与多边形A相邻的多边形B包含的线段总数,Nc代表与多边形A相邻的多边形C包含的线段总数。所以,采用本发明提供方法中的提出的同步增加节点方法提取多边形A与其相邻多边形的公共边,理论最大循环次数为6+7+Gab+Gac=6+7+3+3=19次。
根据背景技术的介绍可知,传统公共边提取方法提取多边形A与其相邻多边形的公共边,需要公共边上多边形A的每一条线段都与其相邻多边形包含的所有线段判断提取公共部分,共需循环39次。而在相同情况下,本发明提供的同步增加节点方法,一旦某线段在相邻多边形上查找到包含公共部分的线段,则停止查找。紧接着公共部分的提取只需要按照长度补齐的原则,每次从两个多边形上各取两条线段判断提取即可。本发明提供的同步增加节点法在提取多边形A与相邻多边形的公共边时,循环次数为9,理论最大循环次数也只有19次。由此可总结,在相同情况下,采用本发明提出的同步增加节点方法提取公共边时,相比传统公共边提取算法,可以明显减少判断的次数,提升提取的效率。
为进一步体现本发明提供的公共边提取方法中提出的排序思想的优势,现通过两个实施例,分别对本发明提供的公共边提取算法中,只采用同步增加节点方法和包含了排序方法的提取效率进行对比。此处共选取3个多边形A、B和C,分为两个实例。其中,多边形A包含1000个节点和1000条线段,多边形B包含300个节点和300条线段,多边形C包含7个节点和7条线段。下面将两者在提取所有相邻多边形公共边时,线段间的判断次数进行统计。
实施例一
只采用本发明提供方法中提出的同步增加节点方法,而不对多边形按照包含节点数量多少的顺序排序,如随机的按照多边形B、C、A的顺序依次提取相邻多边形间的公共边:
第一步,提取多边形B与其相邻多边形的公共边,该步骤的理论最大循环次数为Nc+Na+Gbc+Gba=1007+Gbc+Gba次;第二步,提取多边形C与其相邻多边形的公共边,同理,多边形B已经处理完毕,该步骤不再与其比较,因此,该步骤理论最大循环次数为Na+Gca=1000+Gca次;第三步,提取多边形A与其相邻多边形的公共边,同理多边形B和C的公共边提取完毕,且多边形A是最后一个多边形,因此,多边形A的公共边也已经提取完毕,该步骤不需要循环。
由此可知,在未排序的情况下,只采用本发明提供方法中提出的同步增加节点的方法提取多边形A、B、C之间的所有公共边,总计理论最大循环了1007+Gbc+Gba+1000+Gca=2007+Gbc+Gba+Gca次。
实施例二
对3个多边形按照包含节点数量由多到少的顺序排序为A、B、C,再采用同步增加节点的方法依次提取多边形A、B、C与其相邻多边形的公共边:第一步,提取多边形A与其相邻多边形的公共边,该步骤的理论最大循环次数为Nb+Nc+Gab+Gac=307+Gab+Gac次;第二步,提取多边形B与其相邻多边形的公共边,该步骤的理论最大循环次数为Nc+Gbc=7+Gbc次;
第三步,提取多边形C与其相邻多边形的公共边,需循环0次。
由此可以,采用本发明提供的方法提取多边形A、B、C之间的所有公共边,总计理论最大循环了307+Gab+Gac+7+Gbc=314+Gab+Gac+Gbc次。
由此总结,只采用本发明提供的同步增加节点方法提取多边形A、B、C间的所有公共边,理论最大循环了2007++Gbc+Gba+Gca次,而本发明提供的公共边提取方法理论最大循环了314+Gab+Gac+Gbc次。因为,Gba与Gab,Gca与Gac相等,所以采用本发明提供的公共边提取方法,相对于只采用同步增加节点方法提取公共边,总的理论最大循环次数又减少了1693次。由此可见,本发明提供的公共边提取算法,在提出了同步增加节点方法的同时,又提出了将多边形按照包含节点数量由多到少的顺序排序,大大减少了循环的次数,提高了公共边提取的效率。
请参阅图2,模拟本发明提供的同步增加节点方法提取多边形A与相邻多边形公共边的过程。首先,将多边形A、B、C包含的节点分别按照顺序和图1中所示的位置关系排列,然后,将参与判断的线段标记为红色部分,其中,判断后存在公共部分的线段将公共部分记录为红色实线,判断后不存在公共部分的线段记录为红色虚线。具体过程为:
(1)、首先取线段a0-a1,查找到与多边形B相邻,则取a0-a1与b0-b1进行公共部分的判断,没有公共部分记为虚线,再将a0-a1与b1-b2判断,包含公共部分的部分记为实线,然后采用同步增加节点法,依次取a1-a2与b2-b3,a2-a3与b3-b4,a2-a3与b4-b5判断提取公共部分;
(2)、取线段a2-a3查找与多边形C相邻,依次取线段a2-a3与c0-c1,a3-a4与c1-c2,a4-a5与c2-c3,a5-a6与c3-c4判断提取公共部分。
请参阅图3,为清晰对比本发明提供的同步增加节点方法提取多边形A与相邻多边形公共边时的优势,现对本发明提供的同步增加节点法和传统方法在提取多边形A与相邻多边形间的公共边时多边形A中每一条线段参与判断的次数及与其判断的线段进行统计。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (3)
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所述的一种高效提取大数据量无拓扑矢量多边形公共边方法,其特征在于:所述线段与其相邻多边形的某线段包含公共部分,而存储方向相反,则将相邻多边形存储的节点重新排序后再采用同步增加节点的方法提取公共部分;如若线段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个节点。
3.根据权利要求1所述的一种高效提取大数据量无拓扑矢量多边形公共边方法,其特征在于:所述线段a0-a1若识别出与多边形B相邻,且查找到多边形B中线段bi-bi+1与a0-a1包含公共部分,且节点存储顺序相同,则采用同步增加节点的方法,以线段a0-a1和线段bi-bi+1分别为第一多边形与相邻多边形公共部分判断提取的起始线段,提取公共部分;其中,当前两条线段a0-a1和bi-bi+1处理完成后,可按照如下原则在两个多边形中分别选取线段进行公共部分的判断和提取;若节点bi在线段a0-a1的反向延长线上,进一步的判断节点bi+1的位置;
若节点bi+1也在线段a0-a1的反向延长线上,则在多边形B上取紧邻bi-bi+1后面的线段bi+1-bi+2与线段a0-a1进行判断;若节点bi+1在线段a0-a1上,则进一步的判断节点bi+1与节点a1是否重合,若重合分别从第一个多边形和多边形B中取出线段a1-a2和bi+1-bi+2进行判断,若不重合从多边形B中取出bi+1-bi+2与a0-a1进行判断;若节点bi+1在线段a0-a1的延长线上,则从第一个多边形中取出紧邻a0-a1后面的线段a1-a2与线段bi-bi+1进行判断;若节点bi在线段a0-a1内部,进一步的判断节点bi+1的位置;若节点bi+1在线段a0-a1上,判断节点bi+1与节点a1是否重合,若重合分别从第一个多边形和多边形B中取出紧邻a0-a1和bi-bi+1后面的线段a1-a2和bi+1-bi+2进行判断,若不重合从多边形B中取出紧邻bi-bi+1后面线段bi+1-bi+2与线段a0-a1进行判断;若节点bi+1在线段a0-a1的延长线上,从第一个多边形中取出紧邻a0-a1后面的线段a1-a2与线段bi-bi+1进行判断;/>若节点bi在线段a0-a1的延长线上,从第一个多边形中取出紧邻a0-a1后面的线段a1-a2与线段bi-bi+1进行判断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810639937.1A CN110704550B (zh) | 2018-06-21 | 2018-06-21 | 一种高效提取大数据量无拓扑矢量多边形公共边方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810639937.1A CN110704550B (zh) | 2018-06-21 | 2018-06-21 | 一种高效提取大数据量无拓扑矢量多边形公共边方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110704550A CN110704550A (zh) | 2020-01-17 |
CN110704550B true CN110704550B (zh) | 2023-12-15 |
Family
ID=69192159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810639937.1A Active CN110704550B (zh) | 2018-06-21 | 2018-06-21 | 一种高效提取大数据量无拓扑矢量多边形公共边方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110704550B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10188001A (ja) * | 1996-12-19 | 1998-07-21 | Brother Ind Ltd | 図形のクリッピング方式 |
CN101488141A (zh) * | 2008-12-16 | 2009-07-22 | 南京莱斯大型电子系统工程有限公司 | 电子地图数据处理方法 |
CN102522043A (zh) * | 2011-12-12 | 2012-06-27 | 光庭导航数据(武汉)有限公司 | 基于线段拓扑关系的多边形压缩方法 |
CN102930561A (zh) * | 2012-10-22 | 2013-02-13 | 南京大学 | 一种基于Delaunay三角网的栅格地图矢量化方法 |
CN103415851A (zh) * | 2011-03-08 | 2013-11-27 | 康奈可关精株式会社 | 用于形成表面处理数据的方法和装置 |
CN106202174A (zh) * | 2016-06-27 | 2016-12-07 | 国家基础地理信息中心 | 一种多边形场景拓扑关系表达方法 |
CN107730103A (zh) * | 2017-10-01 | 2018-02-23 | 苏州中科蓝迪软件技术有限公司 | 空间数据处理流程控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7907726B2 (en) * | 2006-01-19 | 2011-03-15 | Microsoft Corporation | Pseudorandom number generation with expander graphs |
-
2018
- 2018-06-21 CN CN201810639937.1A patent/CN110704550B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10188001A (ja) * | 1996-12-19 | 1998-07-21 | Brother Ind Ltd | 図形のクリッピング方式 |
CN101488141A (zh) * | 2008-12-16 | 2009-07-22 | 南京莱斯大型电子系统工程有限公司 | 电子地图数据处理方法 |
CN103415851A (zh) * | 2011-03-08 | 2013-11-27 | 康奈可关精株式会社 | 用于形成表面处理数据的方法和装置 |
CN102522043A (zh) * | 2011-12-12 | 2012-06-27 | 光庭导航数据(武汉)有限公司 | 基于线段拓扑关系的多边形压缩方法 |
CN102930561A (zh) * | 2012-10-22 | 2013-02-13 | 南京大学 | 一种基于Delaunay三角网的栅格地图矢量化方法 |
CN106202174A (zh) * | 2016-06-27 | 2016-12-07 | 国家基础地理信息中心 | 一种多边形场景拓扑关系表达方法 |
CN107730103A (zh) * | 2017-10-01 | 2018-02-23 | 苏州中科蓝迪软件技术有限公司 | 空间数据处理流程控制方法 |
Non-Patent Citations (4)
Title |
---|
A triangulated spatial model for detection of spatial characteristics of GIS data;Jingzhong Li 等;2010 IEEE International Conference on Progress in Informatics and Computing;155-159 * |
Douglas-Peucker算法在无拓扑矢量数据压缩中的新改进;谢亦才 等;计算机应用与软件;141-144 * |
无拓扑遥感影像矢量化数据公共边提取算法;金良益 等;测绘与空间地理信息;37-40 * |
矢量化多边形优化方法;金良益;江南;张亚军;范林林;;测绘科学技术学报(第03期);325-330 * |
Also Published As
Publication number | Publication date |
---|---|
CN110704550A (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263659B (zh) | 一种基于三元组损失和轻量级网络的指静脉识别方法及系统 | |
US9396247B2 (en) | Method and device for processing a time sequence based on dimensionality reduction | |
JP2012530319A5 (zh) | ||
US20130046793A1 (en) | Fast matching of image features using multi-dimensional tree data structures | |
JP2005032246A (ja) | 画像グループの表現方法および表現方法によって導出される記述子、探索方法、装置、コンピュータプログラム、ならびに記憶媒体 | |
CN110070121A (zh) | 一种基于树策略与平衡k均值聚类的快速近似k近邻方法 | |
CN106780579B (zh) | 一种超大规模图像特征点匹配方法及系统 | |
Botea et al. | Path planning with compressed all-pairs shortest paths data | |
CN109951846A (zh) | 无线网络识别方法、装置、存储介质及计算机设备 | |
CN105069457A (zh) | 图像识别方法和装置 | |
CN110704550B (zh) | 一种高效提取大数据量无拓扑矢量多边形公共边方法 | |
CN105359142A (zh) | 哈希连接方法、装置和数据库管理系统 | |
CN109976888A (zh) | 一种数据扫描方法、装置、设备和存储介质 | |
CN111385805A (zh) | 射频指纹信息库生成、栅格定位方法及装置 | |
CN111708921B (zh) | 一种号码选择的方法、装置、设备和存储介质 | |
CN111143587B (zh) | 一种数据检索方法、装置及电子设备 | |
CN108009111A (zh) | 数据流连接方法及装置 | |
CN113515674B (zh) | 时序图随机游走的采样方法及装置 | |
CN108765503A (zh) | 一种肤色检测方法、装置及终端 | |
CN112000844A (zh) | 一种自底向上广度优先搜索的向量化方法、系统及装置 | |
CN112100446A (zh) | 搜索方法、可读存储介质和电子设备 | |
CN112835943A (zh) | 一种深度优先搜索算法的优化方法 | |
CN112948591A (zh) | 适用于有向图的子图匹配方法及系统、电子设备 | |
CN102402692B (zh) | 一种特征字符串识别方法及系统 | |
KR102320310B1 (ko) | 이진트리 기반 고속 다종 분류 회로 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221222 Address after: Room 201, Room 101, Building 1, No. 18, Daoyuan Road, High-tech Zone, Suzhou City, Jiangsu Province, 215000 Applicant after: SUZHOU ZHONGKETIANQI REMOTE SENSING TECHNOLOGY CO.,LTD. Address before: 215000 Suzhou hi tech Zone, Jiangsu Province, No. 78 Applicant before: SUZHOU ZHONGKELANDI SOFTWARE TECHNOLOGY CO.,LTD. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |