一种新的线要素构面方法与流程

文档序号:11177270阅读:377来源:国知局
一种新的线要素构面方法与流程

本发明涉及一种空间几何线要素构面技术领域,特别是涉及一种新的线要素构面方法。



背景技术:

拓扑构面是地理数据建库、城市基础地理信息数据库更新、cad数据转换为gis数据以及dlg数据入库等过程中经常用到的功能,同时,拓扑构面也是数据库中拓扑关系建立过程中的重点和难点。众多学者都对拓扑构面进行了研究,目前的主要方法有左转算法(或右转算法)和节点依次搜索算法。前者利用节点连接线段的方位角,按照一定的方向自动搜索下一条线段,最终回到起始节点生成多边形;后者通过依次搜索节点和线段的连接信息,获得多边形。

上述算法在理想状态下可以进行拓扑构面,但在实际生产中,由于实际要素的复杂性,会导致一些问题。例如,多边形存在悬挂线段时,左转算法无法构面;存在假悬挂节点或假悬挂弧段和桥时,节点依次搜索算法会造成无效搜索和回退搜索;面中可能存在洞;搜索算法效率较低等情况。因此,我们需要一种能够解决以上问题的快速构面方法。



技术实现要素:

本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种新的线要素构面方法。

为了实现本发明的上述目的,本发明提供了一种新的线要素构面方法,包括以下步骤:

s1,判断输入的线要素是否相交,若是,则将所有线要素合并为线网,再对线网进行打散处理,去除重复节点,获得所有不重复的节点和线段;

否则,执行下一步;

s2,定义线段数据结构和节点数据结构;

线段数据结构包括线段id、线段实体、线段起点、线段终点、线段正方向和反方向是否被搜索标志之一或其任意组合;

节点数据结构包括节点id、节点实体、节点连接的线段和节点连接各线段的方位角之一或其任意组合;

遍历线段和节点,组成有向图;

s3,判断节点连接线段的个数是否为1个,若某个节点连接线段的个数为1个,则去除该节点和该节点连接的线段,并迭代,直至获得不包含悬挂线段和节点的有向图;

否则,执行下一步;

s4,选取任一节点作为起始节点,选取与起始节点连接的任一线段作为当前搜索线段,将搜索线段前进方向作为搜索方向,并判断该搜索方向是否为正方向,若是,则标记该线段正方向已搜索;否则标记该线段负方向已搜索;

且判断当前搜索线段在当前搜索线段上的另一节点上的方位角与在该节点上所有连接线段的方位角的大小;

若当前搜索线段在当前搜索线段上的另一节点上的方位角是该节点上所有线段中最小的方位角,则将该节点上最大方位角的线段作为下一搜索线段;

否则,将次小于当前搜索线段的方位角的线段作为下一搜索线段;直至回到起始节点,搜索到的所有线段形成多边形;

s5,重复步骤s4,若搜索到已标志相同方向线段时停止搜索,即可不产生重复面要素,重复步骤s5,直至搜索到所有多边形。

在本发明的一种优选实施方式中,有向图的获取方法为:通过节点id可以获得线段的连接信息,通过线段id可以获得其所连接的节点信息。

在本发明的一种优选实施方式中,根据有向图中线段和节点的方位角,按逆时针方向遍历所述有向图,获得多边形:选任选一节点作为当前节点,随机选择节点连接的线段作为前进方向,线段的终点作为当前节点,选择前进方向左侧夹角最小的线段为下一前进方向,直至回到起始节点,经过的线段组成一个多边形。

在本发明的一种优选实施方式中,还包括步骤s6:判断多边形是否按逆时针方向搜索,若是,则该多边形为有效多边形;

否则,该多边形为无效多边形,舍去。

在本发明的一种优选实施方式中,多边形是否有效可以根据多边形的夹角变换趋势判断:选择y轴坐标最小值的节点为起始节点,对多边形所有节点按照构造多边形时的顺序排列,根据第一个线段的方位角和最后一个线段的方位角可判断多边形是否符合逆时针计算的规定。

在本发明的一种优选实施方式中,还包括步骤s6:判断各个多边形之间的关系,若是属于包含关系,则将被包含的多边形作为洞,从大的多边形中挖去,形成有洞的多边形;

若是孤立的面要素,则处理为岛。

在本发明的一种优选实施方式中,所述线要素和/或面要素为对应的任一矢量格式的线状和/或面状地理信息数据。

在本发明的一种优选实施方式中,线状地理信息数据为道路线、河流线和地类界之一或者任意组合。

在本发明的一种优选实施方式中,面状地理信息数据包括道路面、河流面、植被面之一或者任意组合。

综上所述,由于采用了上述技术方案,本发明的有益效果是:本发明能够对多边形存在悬挂线段、假悬挂节点或假悬挂弧段和桥时,仍然可能快速构面。

附图说明

图1是本发明的构面流程示意图。

图2是本发明方位角定义的示意图。

图3是本发明构面结果的示意图。

图4是构面结果包含洞和岛的示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

本发明提供了一种新的线要素构面方法,如图1所示,该方法包括以下步骤:

第一步,判断输入的线要素是否相交,输入的线要素为空间信息中的矢量线段(例如道路、河流在地图中的具体表示),若是,则将所有线要素合并为线网,线要素提取完成后可设置程序自动合并为线网。再对线网进行打散处理,去除重复节点,获得所有不重复的节点和线段;否则,执行第二步。

第二步,定义线段数据结构和节点数据结构;线段数据结构包括线段id、线段实体、线段起点、线段终点、线段正方向和反方向是否被搜索标志;节点数据结构包括节点id、节点实体、节点连接的线段和节点连接各线段的方位角,在本实施方式中,每个线段的方位角都是固定的,具体可以为线段起点至线段终点的方向或者线段终点至线段起点的方向,在具体构面,优选线段的方位角同时为线段起点至线段终点的方向,或者同时为线段终点至线段起点的方向;遍历线段和节点,通过节点id可以获得线段的连接信息,通过线段id可以获得其所连接的节点信息,最终组成有向图。在本实施方式中,利用定义的节点数据结构和线段数据结构,将获得所有节点和线段构造成有向图。这个过程中需要遍历所有线段和节点,首先是给线段和节点编号,然后根据线段起点、终点坐标和节点坐标将线段和节点关联,使每个节点知道连接的线段。在构造有向图过程中为了消除悬挂线段的影响,需要迭代,将节点连接个数为1的节点和连接的线段移除,再次关联其余线段和节点,直到没有连接一个线段的节点,最后根据连接信息连成有向图。例如对线段1,id号(线段编号)为1,线段起点为p1,终点为p2,正方向为向量a,反方向为向量b。

在本实施方式中,方位角的计算方法如下:坐标系确定后,方位角由节点和该节点上的线段求出。方位角是以x正半轴为起始方向,沿逆时针方向到某一射线的角度,用α表示。如图2所示,oa的方位角αa和ob的方位角αb,方位角取值范围为[0,2π),不存在负值。

第三步,判断节点连接线段的个数是否为1个,若某个节点连接线段的个数为1个,则去除该节点和该节点连接的线段,并迭代,直至获得不包含悬挂线段和节点的有向图;否则,执行第四步。

第四步,选取任一节点作为起始节点,选取与起始节点连接的任一线段作为当前搜索线段,(应当注意的,节点选取的次数与该节点上连接的线段的个数相等,且已搜索相同方向的线段不再选取)将搜索线段前进方向作为搜索方向,并判断该搜索方向是否为正方向,若是,则标记该线段正方向已搜索;否则标记该线段负方向已搜索;且判断当前搜索线段在当前搜索线段上的另一节点上的方位角与在该节点上所有连接线段的方位角的大小;若当前搜索线段在当前搜索线段上的另一节点上的方位角是该节点上所有线段中最小的方位角,这里是找出该节点上所有线段中最小的方位角。则将该节点上最大方位角的线段作为下一搜索线段;否则,将次小于当前搜索线段的方位角的线段作为下一搜索线段;直至回到起始节点,搜索到的所有线段形成多边形。

第五步,重复第四步,若搜索到已标志相同方向线段时停止搜索,即可不产生重复面要素,重复第五步,直至搜索到所有多边形。

在本实施方式中,根据有向图中线段和节点的方位角,按逆时针方向遍历所述有向图,获得多边形:选任选一节点作为当前节点,随机选择节点连接的线段作为前进方向,线段的终点作为当前节点,选择前进方向左侧夹角最小的线段为下一前进方向,直至回到起始节点,经过的线段组成一个多边形。

在本实施方式中,还包括第六步,判断各个多边形是否按逆时针方向搜索,若是,则该多边形为有效多边形;否则,该多边形为无效多边形,舍去。多边形是否有效可以根据多边形的夹角变换趋势判断:选择y轴坐标最小值的节点为起始节点,对多边形所有节点按照构造多边形时的顺序排列,根据第一个线段的方位角和最后一个线段的方位角可判断多边形是否符合逆时针计算的规定。在本实施方式中,还包括第七步,如图4所示,判断多边形之间的关系,若是属于包含关系,则将被包含的多边形作为洞,从大的多边形中挖去,形成有洞的多边形;若是孤立的面要素,则处理为岛。即在程序中判定为岛,直接构面,处理成孤立岛面即完成构面。

在本发明的一种优选实施方式中,所述线要素为任一矢量格式的线状地理信息数据。

在本发明的一种更加优选实施方式中,线状地理信息数据包括道路线、河流线和地类界之一或者组合。

在本发明的一种优选实施方式中,所述面要素为任一矢量格式的面状地理信息数据。

在本发明的一种更加优选实施方式中,面状地理信息数据包括道路面、河流面、植被面之一或者组合。

下面举出相应的实施例:

如图3所示,以o点作为直角坐标系的原点建立直角坐标系,在节点o处,oa、od的方位角的大小关系为aod<aoa;相应的,将直角坐标系平移到节点a处,ab、ao的方位角大小关系为aab<aao;同理,将直角坐标系原点平移到节点b处,ba、bc、bd的方位角的大小关系为abc<aba<abd;将直角坐标系平移到节点c处,cb、cd的方位角大小关系为acb<acd;将直角坐标系原点平移到节点d处,d0、db、dc的方位角的大小关系为adc<adb<ado。

选取任一节点作为起始节点(例如节点o),选取节点o连接的线段od作为搜索线段;并同时标记搜索线段的方向,在节点d处,计算d0、db、dc的方位角,得出adc<adb<ado,故下一搜索线段为db;在节点b处,计算ba、bc、bd的方位角,得出abc<aba<abd,故下一搜索线段为ba;在节点a处,计算ab、ao的方位角,得出aab<aao,故下一搜索线段为ao;由于回到了起始节点o,所以搜索到的线段构成多边形odbao。

同理,选取节点o作为起始节点,选取节点o连接的线段oa作为搜索线段;并同时标记搜索线段的方向,在节点a处,计算ab、ao的方位角,得出aab<aao,故下一搜索线段为ab;在节点b处,计算ba、bc、bd的方位角,得出abc<aba<abd,故下一搜索线段为bc;在节点c处,计算cb、cd的方位角,得出acb<acd,故下一搜索线段为cd;在节点d处,计算dc、do的方位角,得出adc<ado,故下一搜索线段为do;由于回到了起始节点o,所以搜索到的线段构成多边形oabcdo。由于该多边形oabcdo不是逆时针方向搜索,故该多边形oabcdo为无效多边形。

选取节点d作为起始节点,选取节点d连接的线段dc作为搜索线段;并同时标记搜索线段的方向,在节点c处,计算cb、cd的方位角,得出acb<acd,故下一搜索线段为cb;在节点b处,计算ba、bc、bd的方位角,得出abc<aba<abd,故下一搜索线段为bd;由于回到了起始节点d,所以搜索到的线段构成多边形dcbd。

同理,选取节点d作为起始节点,选取节点d连接的线段db作为搜索线段;由于线段db的搜索方向已被标记搜索了,故停止本次搜索,重新搜索与节点d相连的其它线段或者未选取的其它节点。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1