CN102819581A - 一种地理信息系统拓扑集中的多边形链生成方法 - Google Patents

一种地理信息系统拓扑集中的多边形链生成方法 Download PDF

Info

Publication number
CN102819581A
CN102819581A CN2012102615228A CN201210261522A CN102819581A CN 102819581 A CN102819581 A CN 102819581A CN 2012102615228 A CN2012102615228 A CN 2012102615228A CN 201210261522 A CN201210261522 A CN 201210261522A CN 102819581 A CN102819581 A CN 102819581A
Authority
CN
China
Prior art keywords
directed edge
segmental arc
chain
search
polygonal chain
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.)
Granted
Application number
CN2012102615228A
Other languages
English (en)
Other versions
CN102819581B (zh
Inventor
邹滨
曾永年
邱永红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Central South University
Original Assignee
Central South University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Central South University filed Critical Central South University
Priority to CN201210261522.8A priority Critical patent/CN102819581B/zh
Publication of CN102819581A publication Critical patent/CN102819581A/zh
Application granted granted Critical
Publication of CN102819581B publication Critical patent/CN102819581B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种地理信息系统拓扑集中的多边形链生成方法,在一趟多边形链搜索中,如果某一弧段会经过两次,则判定该弧段为悬挂弧段,所述悬挂弧段对应的有向边不能参与构成多边形链;利用一趟多边形链搜索中同一悬挂弧段对应的两条有向边之间的可用有向边构建多边形链,所述可用有向边是指不包括悬挂弧段对应的有向边、以及已被用于构建多边形链的有向边在内的有向边。该地理信息系统拓扑集中的多边形链生成方法易于实施,且能显著提高多边形链的生成效率。

Description

一种地理信息系统拓扑集中的多边形链生成方法
技术领域
本发明涉及一种地理信息系统拓扑集中的多边形链生成方法。
背景技术
地理信息系统(Geographic Information System,GIS)的矢量数据模型主要两种类型,即Spaghetti数据模型和拓扑数据模型(陈述彭等:地理信息系统导论,科学出版社,2000年,P31-43)。拓扑模型的基本实体类型包括结点、弧段和区域,其中,结点(node)位于弧段的端点或多条弧段连接点;弧段(edge)是由至少两个点(即节点)顺序地连接而成的曲线,它始于起始结点、终于终止结点;区域(area)是用弧段来描述的,是以一条或多条弧段为边界围成的一个连通域。基于拓扑数据模型的拓扑集中的结点、弧段和区域要素之间相互关联,而且定义了严格的拓扑一致性约束,如同类要素之间不重叠、相交等。
在拓扑模型中,除了存储坐标数据外,还需要记录要素之间拓扑关系,如结点的关联弧段、弧段的起始和终止结点、组成区域的弧段等。
为了完整描述要素之间拓扑关系,用于实现拓扑数据模型的数据结构通常需要包括以下内容:
弧段(edge):E={path,from,to,left,right},其中,path为弧段的路径;from,to分别表示起始和终止结点;left,right分别为弧段的左、右区域。同一拓扑集中的弧段的起点和终点都在所述拓扑集中的结点上,所述拓扑集中的任意两条弧段之间不存在除端点外的其它交点
有向边,也称关联弧段(EI):EI={e,f},其中e为弧段标识,f为方向标识。对于结点的有向边,若f为正方向标识,表示所述结点为弧段e的起始结点,当f为反方向标识,表示所述结点为弧段e的终止结点;对于多边形链中的有向边,若f为正方向标识,表示在多边形链中弧段e按正方向连接,当f为反方向标识,表示在多边形链中弧段e按反方向连接。GIS拓扑集中的每一条弧段都对应两条有向边,其中的一条有向边的方向与该弧段相同,该有向边的起点和终点分别对应该弧段的起点和终点,另一条有向边的方向与该弧段相反,该有向边的起点和终点分别对应其使用的弧段的终点和起点。
结点(node):N={location,edges},其中location表示结点位置;edges为有向边(EI)表,其中的有向边(EI)按其始端连接向量与x轴正向在逆时针方向上的夹角大小排序。所述有向边的始端连接向量是指由有向边的终点到与该终点顺序上邻近的节点的向量。
区域(area):A={main,holes},其中,main表示区域的外边界,是一个多边形链;holes为用于存储描述区域内边界的多边形链数组。
多边形链(CHAIN)是一个关联弧段(EI)表,其中的关联弧段(EI)按其在构成多边形时的连接顺序排序。
在一个拓扑数据集中,并非所有弧段都可参与构成多边形链,通常将不能参与构成多边形链的弧段称为悬挂弧段。另外,有向边(EI)的末端结点是指,与有向边的对应弧段e在其方向标识f指定方向上的末端结点,即当f标识为正方向时,指的是弧段e的终止结点;当f标识为反方向时,指e的起始结点;左转有向边是指,当前有向边绕其末端结点顺时针方向旋转遇到的第一条有向边。
在Spaghetti模型中,点用一个二维空间坐标表示,线由一串坐标(称为节点或顶点,vertex)组成,面是由一条或多条线所围成的闭合多边形区域。Spaghetti模型中,只存储实体的坐标数据,不记录实体间的拓扑信息。
GIS矢量数据处理的一项重要内容是利用线数据生成拓扑数据集或Spaghetti模型的面数据。在拓扑数据集的建立过程涉及区域数据的生成;而利用线数据生成Spaghetti模型面数据时,则通常需要先建立拓扑区域数据,然后利用拓扑区域数据生成面数据。因而,拓扑区域数据的建立是利用线数据生成面数据的关键。
利用线数据生成拓扑数据集的建立步骤可归结为:线数据的预处理;结点的匹配和弧段连接关系的建立;同一结点上弧-弧拓扑关系的建立;多边形链搜索、构建及包含关系的确定等。这些环节中,多边形链的搜索、构建是影响拓扑区域数据构建效率的关键因素之一,其目的是利用拓扑数据集中弧段生成用于描述区域边界的所有多边形链。
多边形链搜索算法主要涉及两个方面,一是起始有向边的选择;二是单个多边形链的搜索和构建。选择起始有向边时,要求从这些有向边出发,能构造出所有多边形链,同时构造出的多边形链不应与已有多边形链相同。
当无悬挂弧段时,GIS多边形拓扑模型中的每条弧段由两个且仅由两个多边形所公共(GIS中多边形图拓扑信息生成的数学基础,《测绘学报》,1996年第4期,P267-271),即每条弧段都沿正反两个方向分别参与构成不同区域边界的多边形链。因而需要遍历每条弧段,对尚未使用的弧段,沿其正反两个方向进行搜索,分别构建多边形链。
当不存在悬挂弧段时,多边形链搜索和构建的一般思路为:从指定有向边出发,到达末端结点时,则按左转算法,沿绕该结点顺时针方向旋转遇到的第一条有向边(即左转有向边)继续搜索,直至回到起始有向边,依次访问过的有向边即构成一个多边形链。
实际应用中,拓扑数据集中往往存在悬挂弧段,因而,单个多边形链构建的关键在于悬挂弧段的处理。
当拓扑数据集中存在悬挂弧段时,由于悬挂弧段不参与构建多边形链,因而必须在构建多边形链时必须排除悬挂弧段。为达到这一目的,传统方法是通过预处理事先排除悬挂弧段,以便在进行单个多边形链搜索、构建时不必考虑悬挂弧段的影响。
由于悬挂弧段的判定需要采用类似于多边形链搜索的算法,通过额外的搜索计算来完成,因而这种方法会增加通过访问结点确定左转有向边的次数,由于左转有向边的确定需要查找算法确定当前有向边在结点关联弧段表中的位置,时间复杂度高,从而降低了整个拓扑数据集中多边形链生成的时间效率。
为此,有必要提供一种全新的地理信息系统拓扑集中的多边形链生成方法,以提高多边形链的生成效率。
发明内容
本发明所要解决的技术问题是提供一种地理信息系统拓扑集中的多边形链生成方法,该地理信息系统拓扑集中的多边形链生成方法易于实施,且能显著提高多边形链的生成效率。
发明的技术解决方案如下:
一种地理信息系统拓扑集中的多边形链生成方法,所述拓扑集中包括至少一个结点,每一个结点采用一个点来表示它的位置,所述拓扑集中的不同结点的位置不相同;
所述拓扑集中还包括至少一条弧段,用以连接所述拓扑集中的结点,所述弧段是由至少两个节点顺序地连接而成的曲线,所述拓扑集中的弧段的起点和终点都在所述拓扑集中的结点上,所述拓扑集中的任意两条弧段之间不存在除端点外的其它交点;
所述拓扑集中的每一条弧段都对应两条有向边,其中的一条有向边的方向与该弧段相同,该有向边的起点和终点分别对应该弧段的起点和终点,另一条有向边的方向与该弧段相反,该有向边的起点和终点分别对应其使用的弧段的终点和起点;
指定任一有向边作为一趟多边形链搜索的起始有向边【所述有向边可被选择作为一趟多边形链搜索的起始有向边】,所述一趟多边形链搜索的过程是指:从起始有向边出发,不经过其他弧段,或历经至少一条其他弧段,直到再次回到所述起始有向边的多边形链搜索过程;
所述多边形链包括至少一条有向边,这些有向边按其在构成多边形链时的连接顺序排序;
多边形链的生成方法包括以下步骤:
在一趟多边形链搜索中,如果某一弧段会经过两次,则判定该弧段为悬挂弧段,所述悬挂弧段对应的有向边不能参与构成多边形链;
利用一趟多边形链搜索中同一悬挂弧段对应的两条有向边之间的可用有向边构建多边形链,所述可用有向边是指不包括悬挂弧段对应的有向边、以及已被用于构建多边形链的有向边在内的有向边。
从起始有向边出发搜索和生成多边形链,使用一个搜索链来记录所经过的有向边,所述搜索链是一个有向边表;包括以下步骤:
先清空搜索链,并指定所述起始有向边作为当前有向边,然后执行以下步骤:【此时,当前有向边尚未加入搜索链】
步骤1:指定当前有向边所使用的弧段作为当前弧段;【重置当前弧段,此时,当前有向边尚未加入搜索链】
步骤2:检查搜索链中是否存在使用一条当前弧段的有向边,如果存在,则判定当前弧段为悬挂弧段,进入步骤3【处理悬挂弧段】;否则,转到步骤5【跳过步骤3、4,将当前有向边加入搜索链】;
步骤3:检查所述使用当前弧段的有向边是否位于搜索链的末尾,若是,则将该有向边从搜索链中删除;否则,利用搜索链中该有向边所在位置之后的有向边构建多边形链,并从搜索链中删除该有向边及之后的有向边;【回溯可用有向边】
步骤4:转到步骤6;【跳过步骤5,当前有向边不再加入搜索链】
步骤5:将当前有向边加入到搜索链末尾;
步骤6:指定当前有向边的左转有向边作为当前有向边;【重置当前有向边】
步骤7:判定当前有向边与起始有向边是否相同【回到起始有向边?】,若是,转到步骤8【结束搜索】;否则,返回步骤1【继续搜索】;
步骤8:检查搜索链是否为空,如果空,则直接结束搜索过程;【如果不空,则不构建多边形链结束搜索】如果不为空,则利用其中的【剩下的】全部有向边构建多边形链。【结束搜索】
其中所述当前有向边的左转有向边是指:以所述当前有向边的末端连接向量绕其终点所在的结点顺时针旋转大于零度角度【大于零度角度的目的,是避开当前有向边的反向有向边,以便只有该结点上只有当前有向边的对应弧段连接时,才会选择当前有向边的反向有向边,相当于:对于当前有向边,其反向有向边的始端连接向量的旋角是360度】的方向上遇到的第一个始端连接向量的有向边【定义左转有向边】,该始端连接向量的起点是所述末端连接向量的终点,其中所述有向边的末端连接向量是指由有向边上的、与其终点顺序上邻近的节点到该终点的向量【定义末端连接向量】,所述有向边的始端连接向量是指由有向边的终点到与该终点顺序上邻近的节点的向量【定义始端连接向量】。【定义左转有向边】
本发明的主要思想是,利用一趟搜索得到的搜索链中,悬挂弧段会出现两次,来识别悬挂弧段;利用多边形链与同一悬挂弧段对应的有向边的嵌套关系,来提取并构建多边形链,并从搜索链中删除该悬挂弧段对应的有向边及之后的有向边;一趟搜索结束的条件是回到起始有向边。
有益效果:
本发明的地理信息系统拓扑集中的多边形链生成方法与现有技术相比,其优点在于:可不必通过预处理来排除悬挂弧段,而是在多边形链搜索、构建过程中完成悬挂弧段的识别和排除,这样,每个弧段结点只需访问两次,减少拓扑数据集中弧段的遍历次数和访问结点查找左转关联弧段的次数,从而提高多边形链的生成效率,加快拓扑数据集的构建速度。
附图说明
图1示出了一个GIS拓扑数据集图形实例;
图2示出了拓扑数据集存在悬挂弧段时的三种典型情况(分别对应图a-c);
图3示出了根据本发明实施例的从起始有向边出发搜索和构建多边形链的方法流程;
图4示出了根据本发明实施例的利用一拓扑数据集中的弧段构建多边形链的方法流程。
表1示出了图1所示的GIS拓扑数据集存储结构;
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明:
实施例1:
本实施例在计算机上实现,其中的GIS拓扑数据集中的弧段和结点需要首先被创建或装载到计算机上。
图1示出了一个GIS拓扑数据集图形实例100。该GIS拓扑数据集包括5个结点,它们是N01、N02、N03、N04和N05;6条弧段,即E01、E02、E03、E04、E05和E06;3个区域:A01、A02和A03;图中V01~V11为弧段的节点。
为了便于相关领域的人员进一步理解本发明中所述GIS拓扑数据集,图2示出了图1所示的GIS拓扑数据集存储结构200。包括结点表201、区域表202和弧段表【即表1】。结点表201中每一行表示一个结点,该表中ID为该结点的唯一标识;弧段属性的值为与该结点关联的弧段的ID,一个结点可以有一个或多条关联弧段,其中正值表示起始端、负值表示终止端;坐标属性的值表示该结点的坐标,第一个为x坐标,第二个为y坐标。弧段表中每一行表示一条弧段,表中ID为该弧段的唯一标识;起始结点、终止结点属性值为与结点表ID属性对应的结点标识;左区域、右区域属性值为与区域表ID属性对应的区域标识,其中的空值表示对应的区域不存在;节点属性值为该弧段的节点序列。区域表中每一行表示一个区域,表中的ID为该区域的唯一标识;弧段属性值表示围成该区域的有向边表,该有向边表可以分为多组,每一组表示一个多边形链,由一个或多个有向边的对应弧段ID组成,其中弧段ID前的负号表示对该有向边的方向标识为反方向,否则为正方向,这些多边形链中的第一个为外边界的多边形链,其它为内边界的多边形链,外边界的多边形链为反时针方向,内边界的多边形链为顺时针方向。
为了便于相关领域的人员进一步理解本发明中关于从起始有向边出发搜索和构建多边形链的思想,图3示出了存在悬挂弧段时的几种典型情况300,如果从弧段e1出发,沿其正方向进行搜索,则在图中301,302,303三种情形下得到的弧段序列分别为
(1){e1,e3,-e3,-e2,e5,-e5,-e4,e4,e2,-e1};
(2){e1,e3,-e3,-e2,-e4,e2,-e1};
(3){e1,-e2,-e4,e5,-e6,-e5,e3,e2}。
其中的负号表示经过弧段的方向与弧段自身的方向相反。显然,序列(1)完全由悬挂弧段组成,为非闭合链;序列(2)含一个多边形链,但有由悬挂弧段构成的支链与其连接;而序列(3)则包括两条悬挂弧段和由这两条弧段串起来的三个多边形链,形成一个多边形串。这些结果在拓扑构建中都是不可接受的。
通过分析这三个弧段序列不难发现:在一趟搜索得到的搜索链中,悬挂弧段会沿不同方向出现两次,而非悬挂弧段则只出现了一次。因此,可以根据在一趟搜索中经过的次数来判定悬挂弧段,然后将它们从搜索链中剔除。但是,理想的多边形链搜索策略必须能直接得到单个的多边形链,以避免额外的多边形识别和分离计算。而对于图303中从弧段e1出发,沿其正方向进行的搜索,若在弧段序列{e1,-e2,-e4,e5,-e6,-e5,e3,e2}生成后,再删除其中的悬挂弧段e2,e5的对应记录,则余下的序列为{e1,-e4,-e6,e3},显然不能直接构成单个的多边形链,而且要将其拆分成单个的闭合链也比较困难。但若注意到多边形链与悬挂弧段对应的两条有向边之间嵌套关系,在搜索过程中,按照悬挂弧段对应的第二条有向边加入搜索链的先后顺序,依次取其前后两条对应记录之间的非空子序列构建多边形链,同时将此两条记录及它们之间的记录从原序列中删除,则可依次得到{-e6}、{-e4,e3}和{e1}三个多边形链。采用同样策略,对于图302也可相应地得到多边形链{-e4},而图301则不会有多边形链产生。
为了便于相关领域的人员理解本发明中关于从起始有向边出发搜索和构建多边形链的思想,图3示出了根据其实施例的处理方法流程300。该方法先进行初始化,以清空搜索链、将当前有向边初始化为起始有向边(步骤302)、当前弧段初始化为当前有向边所使用的弧段(步骤303),然后检查搜索链中是否存在使用当前弧段的有向边(步骤304),如果搜索链中不存在使用当前弧段的有向边,则将当前有向边加入到搜索链末尾(步骤305),并重新指定当前有向边的左转有向边作为当前有向边(步骤309);如果搜索链中存在一条使用当前弧段的有向边,则说明当前弧段为悬挂弧段,不参与构建多边形链,于是进一步检查该条使用当前弧段的有向边是否位于搜索链的末尾(步骤306),如果是,则将该条有向边从搜索链中删除(步骤308),并重新指定当前有向边的左转有向边作为当前有向边(步骤309);否则,利用搜索链中该有向边所在位置之后的有向边构建多边形链,并从搜索链中删除该有向边及其所在位置之后的有向边(步骤307),并重新指定当前有向边的左转有向边作为当前有向边(步骤309)。重新指定当前有向边的左转有向边作为当前有向边(步骤309)之后,再检查当前有向边与起始有向边是否相同(步骤310),如果不相同,则进一步指定当前有向边所使用的弧段作为当前弧段(步骤303),继续搜索;如果当前有向边与起始有向边相同,则说明已经回到起始有向边,于是进一步检查搜索链是否为空(步骤311),如果空,则直接结束搜索过程(步骤313);如果不为空,则利用搜索链中的全部有向边构建多边形链(步骤312),再结束搜索过程(步骤313)。
为了便于相关领域的人员理解本发明中涉及的关于利用GIS拓扑集中的所有弧段搜索和构建多边形链的思想,图5示出了根据其实施例的处理方法流程500。该方法先将当前弧段初始化为拓扑集中弧段表的第一条弧段(步骤502),然后检查当前弧段是否存在(步骤503),如果不存在,则结束搜索(步骤504);如果存在,则取当前弧段作为当前有向边的对应弧段(步骤505),并将当前有向边标记为正方向(步骤506),接着检查当前有向边是否已访问过(步骤507),若当前有向边未访问过,将当前有向边标记为反方向(步骤508),继续;否则,若当前有向边未访问过,则以当前有向边为起始有向边采用图3所示方法(300)搜索和构造多边形链(步骤509),接着将当前有向边标记为反方向(步骤508)。
将当前有向边标记为反方向(步骤508)后,接着检查当前有向边是否已访问过(步骤510),若当前有向边已访问过,则将当前弧段重置为弧段表中当前弧段的下一条弧段(步骤512);否则,若当前弧段为访问过,则以当前有向边为起始有向边搜索和构造多边形链(步骤511),并将当前弧段重置为弧段表中当前弧段的下一条弧段(步骤512)。
将当前弧段重置为弧段表中当前弧段的下一条弧段(步骤512)后,返回步骤503继续。
为方便进一步说明本发明核心内容的细节,在下面的关于本发明的实施例的描述中主要采用了类C和C++算法描述语言。为方便代码阅读,下述代码中采用的数据结构未经优化,高效的实现方法可使用更优秀的数据结构和算法。
表1给出了本实施例涉及到的主要数据结构,其中EIS为有向边表;EIS为结点;EDGE为弧段;EI为有向边。
表1
Figure BDA00001937250900091
Figure BDA00001937250900101
程序01:将有向边ei标记为已访问。
Figure BDA00001937250900102
程序02:检查有向边ei是否已访问。
Figure BDA00001937250900103
程序03:在搜索链eis中查找对应弧段为e的有向边的位置。
Figure BDA00001937250900112
程序04:将有向边ei标记加入搜索链eis中,同时将有向边ei的对应弧段标记为已访问。
Figure BDA00001937250900113
程序05:删除搜索链eis中第iei及之后的有向边,同时将这些有向边的对应弧段标记为未访问。
Figure BDA00001937250900114
程序06:清空搜索链,同时将其中有向边的对应弧段标记为未访问。
Figure BDA00001937250900121
程序07:利用有向边数组eis创建多边形链。
Figure BDA00001937250900122
程序08:从起始有向边ei出发搜索和构建多边形链。
Figure BDA00001937250900123
为了便于相关领域的人员进一步理解本发明中关于从起始有向边出发搜索和构建多边形链的思想,程序01-08给出了按图3的实施例的处理方法流程300设计的多边形链生成算法代码,及其主要函数代码。基本思路是,先清理搜索链eis,然后采用迭代算法,从起始有向边ei出发,按左转法则进行开始搜索,对搜索路径上经过的有向边,先将其标识为已访问(set_used),再通过“if(ei.e-bSearched)”考察其对应弧段是否已访问,如果未访问,则将其加入搜索链eis表尾;如果已访问,则回溯当前弧段在搜索链中的第一次记录,再取此记录之后的子序列(如果不为空)创建多边形链(make_chain(eis.eis+iei+1,eis.nei-iei-1)),然后调用pop2删除从搜索链中删除该子序列及当前弧段的第一次记录;再沿下一有向边(left_edge(ei))继续搜索,直到回到起始有向边(used(ei)返回true)。最后,利用搜索链中的有向边构建多边形链(make_chain(eis.eis,eis.nei))。
程序09:利用一拓扑数据集中的弧段构建多边形链。
为了便于相关领域的人员进一步理解本发明中关于利用一拓扑数据集中的弧段构建多边形链的思想,程序09给出了按图4的实施例的处理方法流程500设计的多边形链生成的部分代码。
程序09中,变量ei用于定义每次搜索的起始弧段和搜索方向;代码行”for(ei.e=first_e();ei.e;ei.e=next_e())”用于实现对弧段的遍历,并指定每次搜索的起始弧段ei.e;”ei.f=1”和”ei.f=-1”分别表示沿弧段ei.e的正、反方向;为了避免以已经处理过的有向边为起始有向边进行重复搜索,在每次执行search_ring(ei)进行搜索之前,先检查相应有向边ei是否标识为已访问;函数search_ring(ei)用于实现按ei.f指定的方向,沿弧段ei.e构建多边形链(程序08)。
表1.
Figure BDA00001937250900141
在以上对本发明的详细介绍中,应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (3)

1.一种地理信息系统拓扑集中的多边形链生成方法,所述拓扑集中包括至少一个结点,每一个结点采用一个点来表示它的位置,所述拓扑集中的不同结点的位置不相同;
所述拓扑集中还包括至少一条弧段,用以连接所述拓扑集中的结点,所述弧段是由至少两个节点顺序地连接而成的曲线,所述拓扑集中的弧段的起点和终点都在所述拓扑集中的结点上,所述拓扑集中的任意两条弧段之间不存在除端点外的其它交点;
所述拓扑集中的每一条弧段都对应两条有向边,其中的一条有向边的方向与该弧段相同,该有向边的起点和终点分别对应该弧段的起点和终点,另一条有向边的方向与该弧段相反,该有向边的起点和终点分别对应其使用的弧段的终点和起点;
指定任一有向边作为一趟多边形链搜索的起始有向边,所述一趟多边形链搜索的过程是指:从起始有向边出发,不经过其他弧段,或历经至少一条其他弧段,直到再次回到所述起始有向边的多边形链搜索过程;
所述多边形链包括至少一条有向边,这些有向边按其在构成多边形链时的连接顺序排序;
其特征在于,多边形链的生成方法包括以下步骤:
在一趟多边形链搜索中,如果某一弧段会经过两次,则判定该弧段为悬挂弧段,所述悬挂弧段对应的有向边不能参与构成多边形链;
利用一趟多边形链搜索中同一悬挂弧段对应的两条有向边之间的可用有向边构建多边形链,所述可用有向边是指不包括悬挂弧段对应的有向边、以及已被用于构建多边形链的有向边在内的有向边。
2.根据权利要求1所述的地理信息系统拓扑集中的多边形链生成方法,其特征在于,从起始有向边出发搜索和生成多边形链,使用一个搜索链来记录所经过的有向边,所述搜索链是一个有向边表;包括以下步骤:
先清空搜索链,并指定所述起始有向边作为当前有向边,然后执行以下步骤:
步骤1:指定当前有向边所使用的弧段作为当前弧段;
步骤2:检查搜索链中是否存在使用一条当前弧段的有向边,如果存在,则判定当前弧段为悬挂弧段,进入步骤3;否则,转到步骤5;
步骤3:检查所述使用当前弧段的有向边是否位于搜索链的末尾,若是,则将该有向边从搜索链中删除;否则,利用搜索链中该有向边所在位置之后的有向边构建多边形链,并从搜索链中删除该有向边及之后的有向边;
步骤4:转到步骤6;
步骤5:将当前有向边加入到搜索链末尾;
步骤6:指定当前有向边的左转有向边作为当前有向边;
步骤7:判定当前有向边与起始有向边是否相同,若是,转到步骤8;否则,返回步骤1;
步骤8:检查搜索链是否为空,如果空,则直接结束搜索过程;如果不为空,则利用其中的全部有向边构建多边形链。
3.如权利要求2所述的方法,其特征在于,其中所述当前有向边的左转有向边是指:以所述当前有向边的末端连接向量绕其终点所在的结点顺时针旋转大于零度角度的方向上遇到的第一个始端连接向量的有向边,该始端连接向量的起点是所述末端连接向量的终点,其中所述有向边的末端连接向量是指由有向边上的、与其终点顺序上邻近的节点到该终点的向量,所述有向边的始端连接向量是指由有向边的终点到与该终点顺序上邻近的节点的向量。
CN201210261522.8A 2012-07-26 2012-07-26 一种地理信息系统拓扑集中的多边形链生成方法 Active CN102819581B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210261522.8A CN102819581B (zh) 2012-07-26 2012-07-26 一种地理信息系统拓扑集中的多边形链生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210261522.8A CN102819581B (zh) 2012-07-26 2012-07-26 一种地理信息系统拓扑集中的多边形链生成方法

Publications (2)

Publication Number Publication Date
CN102819581A true CN102819581A (zh) 2012-12-12
CN102819581B CN102819581B (zh) 2014-07-02

Family

ID=47303692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210261522.8A Active CN102819581B (zh) 2012-07-26 2012-07-26 一种地理信息系统拓扑集中的多边形链生成方法

Country Status (1)

Country Link
CN (1) CN102819581B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301678A (zh) * 2017-06-29 2017-10-27 中国水利水电科学研究院 一种地质块体的三维建模方法
CN111274344A (zh) * 2020-01-20 2020-06-12 东南大学 对各弧段进行有规律的取舍的多目标缓冲区合并方法
CN111680376A (zh) * 2020-06-08 2020-09-18 中国科学院地理科学与资源研究所 线要素构建多边形的方法、装置及系统
CN111932653A (zh) * 2019-05-13 2020-11-13 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及可读存储介质
CN114842033A (zh) * 2022-06-29 2022-08-02 江西财经大学 一种用于智能ar设备的图像处理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050049783A1 (en) * 2003-08-29 2005-03-03 Hunzinger Jason F. Iterative logical renewal of navigable map database
CN101251929A (zh) * 2008-02-29 2008-08-27 浙江大学 基于Delaunay三角网技术的区域拓扑关系构建方法
CN101359337A (zh) * 2008-10-06 2009-02-04 邱永红 用于交互式地编辑gis拓扑数据集的方法
CN101634988A (zh) * 2008-07-22 2010-01-27 中国科学院计算技术研究所 一种gis空间叠加分析方法
CN102103759A (zh) * 2011-03-31 2011-06-22 浙江大学 一种无拓扑结构矢量图形的多边形快速合并方法
CN102193998A (zh) * 2011-05-05 2011-09-21 河南理工大学 一种含边拓扑信息的不规则三角网弧扫式构建方案

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050049783A1 (en) * 2003-08-29 2005-03-03 Hunzinger Jason F. Iterative logical renewal of navigable map database
CN101251929A (zh) * 2008-02-29 2008-08-27 浙江大学 基于Delaunay三角网技术的区域拓扑关系构建方法
CN101634988A (zh) * 2008-07-22 2010-01-27 中国科学院计算技术研究所 一种gis空间叠加分析方法
CN101359337A (zh) * 2008-10-06 2009-02-04 邱永红 用于交互式地编辑gis拓扑数据集的方法
CN102103759A (zh) * 2011-03-31 2011-06-22 浙江大学 一种无拓扑结构矢量图形的多边形快速合并方法
CN102193998A (zh) * 2011-05-05 2011-09-21 河南理工大学 一种含边拓扑信息的不规则三角网弧扫式构建方案

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邱永红 等: "一种GIS拓扑多边形链搜索的改进算法", 《计算机工程与应用》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107301678A (zh) * 2017-06-29 2017-10-27 中国水利水电科学研究院 一种地质块体的三维建模方法
CN111932653A (zh) * 2019-05-13 2020-11-13 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及可读存储介质
CN111932653B (zh) * 2019-05-13 2023-12-15 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及可读存储介质
CN111274344A (zh) * 2020-01-20 2020-06-12 东南大学 对各弧段进行有规律的取舍的多目标缓冲区合并方法
CN111680376A (zh) * 2020-06-08 2020-09-18 中国科学院地理科学与资源研究所 线要素构建多边形的方法、装置及系统
CN111680376B (zh) * 2020-06-08 2023-08-11 中国科学院地理科学与资源研究所 线要素构建多边形的方法、装置及系统
CN114842033A (zh) * 2022-06-29 2022-08-02 江西财经大学 一种用于智能ar设备的图像处理方法
CN114842033B (zh) * 2022-06-29 2022-09-02 江西财经大学 一种用于智能ar设备的图像处理方法

Also Published As

Publication number Publication date
CN102819581B (zh) 2014-07-02

Similar Documents

Publication Publication Date Title
CN106527448B (zh) 适用于仓库环境的改进a*机器人最优路径规划方法
US20220018669A1 (en) A method for searching the shortest path of must-pass nodes
CN102819581B (zh) 一种地理信息系统拓扑集中的多边形链生成方法
CN101650191B (zh) 道路网络拓扑抽象的方法及装置
Gouveia et al. Load-dependent and precedence-based models for pickup and delivery problems
Gutiérrez et al. Labeling algorithm for the shortest path problem with turn prohibitions with application to large-scale road networks
CN110619426B (zh) 一种路网模型的构建方法、装置、设备和存储介质
CN107389079A (zh) 高精度路径规划方法和系统
CN113554120B (zh) 一种多目标点的物流路径快速规划方法
CN105740964A (zh) 一种城市路网数据组织与最短路径快速计算方法
CN105978711A (zh) 一种基于最小生成树的最佳交换边查找方法
Wu The linear arboricity of series-parallel graphs
CN107016459A (zh) 一种基于网络社区信息的点到点最短路径计算方法
Bandelt et al. Ramified rectilinear polygons: coordinatization by dendrons
CN103885842A (zh) 一种带加速节点的片上网络的优化整体的任务映射方法
Yang et al. Geometry‐Experiment Algorithm for Steiner Minimal Tree Problem
CN113918676B (zh) 上下行道路合并方法、装置、电子设备及存储介质
Bampas et al. Robustness of the rotor–router mechanism
Ahmed Graph routing problem using Euler’s theorem and its applications
CN101308028B (zh) 一种适合路况信息加载的导航数据库概化方法
Wei et al. Accelerating the shortest-path calculation using cut nodes for problem reduction and division
Hu et al. Ir design for application-specific natural language: a case study on traffic data
Sun et al. Solution to shortest path problem using a connective probe machine
KR102653311B1 (ko) 직교 다각 장애물 환경에서 건물 사이의 최소 링크를 가진 최단 경로 탐색 방법
Bose et al. Constrained routing between non-visible vertices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant