基于线段拓扑关系的多边形压缩方法技术

技术编号:7468443 阅读:234 留言:0更新日期:2012-06-30 04:48
本发明专利技术提供一种基于线段拓扑关系的多边形压缩方法,包括:1)多边形拆解,将多边形变换成以线段进行描述的方式;2)多边形之间的公共边界识别,将相邻多边形的公共边界识别出来;3)多边形的边界拼接,将基于线段描述方式的多边形进行线段拼接,形成若干条折线段;4)线边界的分段压缩,将拼接后的若干条折线段分别进行压缩;5)多边形形状还原,按照多边形的原始顺序,用压缩后的折线段组成新的多边形数据。本发明专利技术提供的方法,当存在有多个多边形,且它们之间有公共边界或部分公共边界时,能在形点压缩时有效的减少或消除这些边界上产生的缝隙。

【技术实现步骤摘要】
1/4页
本专利技术属于电子地图领域,特别是涉及一种导航电子地图数据格式转换过程。技术背景在制作电子地图数据格式过程中,为了削减数据容量,通常会对各种地图要素进行形点压缩处理,以删除多余形点。在对多边形数据进行形点压缩时,一般的压缩算法都只针对单个多边形进行处理,对于形变的控制也只能基于单个图形,无法防止相邻的多个多边形之间由于个体形变的不同造成的边界处的缝隙,使得压缩后的多个多边形无法精密的吻合在一起,造成显示效果不佳。相关名词解释1.线段连接不在同一位置的两点之间的组成部分,成为线段。2.折线段由若干条线段依次首尾相连组成的线状图形,将其称为折线段。折线段的首尾点可以相同,也可以不相同。3.形点压缩为了在地图要素的形状和数据容量之间取得一个平衡,需要用形点压缩算法去除不必要的形状点。现在常用的形点压缩算法有道格拉斯形点压缩算法和距离限差形点压缩算法。4.多边形导航地图中为了描述面状地图要素(如湖泊、公园、行政区等)所使用的几何图形,由一串坐标点记录,表示每两个相邻坐标点之间的线段所围成的图形。5.多边形的公共边(界)如果一条线段(或折线段)被两个多边形共有,则称这条线段(或这线段)是这两个多边形的公共边界。每条公共边界至少被两个多边形共有,而两个(或多个)多边形之间可以有多条公共边界。6.多边形的部分公共边(界)如果一条线段(或折线段)只有一部分被两个(或多个)多边形共有,则称这条线段(或折线段)是这两个(或多个)多边形的部分公共边界。7.多边形的非公共边(界)某个多边形不与其他多边形形成公共边界的剩余部分,都称为这个多边形的非公共边界。8.多边形的缝隙(裂缝)形点压缩之前,两个(或多个)多边形的公共边界由于坐标完全一致,所以是紧密相邻的;形点压缩之后,由于一般的形点压缩算法是对整个多边形的形点串进行处理,所以,两个(或多个)多边形在公共边界上对形点的删除情况可能不同,导致原本坐标一致的公共边界不在完全紧密相邻,则称为这两个(或多个)多边形之间有缝隙(裂缝)存在。
技术实现思路
本专利技术所提供的压缩方法,针对有邻接关系的多个多边形进行统一的线段化,并根据线段的拓扑关系对多边形分段压缩,能消除一般压缩算法中由于个体压缩结果的差异而造成的缝隙问题。本专利技术所要解决的问题是提供一种多边形的无缝压缩方法,使用该方法在导航电子地图转换过程中,能在大量减少或消除由于形点压缩而产生的多边形之间的缝隙。为了实现本专利技术的技术效果,本专利技术提供一种用于导航地图中形点压缩后多边形的公共边界区分,包括以下步骤步骤一、多边形拆解,将多边形变换成以线段进行描述的方式;步骤二、公共边界识别,将多边形之间的公共边界进行识别;步骤三、多边形的边界拼接,将上述步骤多边形拆解后的线段进行拼接,形成新的边界;步骤四、折线段构成的边界进行分段压缩;将拼接后的若干条折线段分别使用形点压缩算法进行压缩;步骤五、多边形形状还原,按照多边形的原始顺序,用压缩后的折线段组成新的多边形数据。优选的,上述步骤二中识别多个多边形之间的公共边界线段,如果是有部分边界的情况,会增加形点形成新的公共边界;优选的,上述步骤三在步骤二的基础上,将基于线段描述方式的多边形按照其原始顺序进行线段拼接,形成若干条折线段,这些折线段为边界;其中,公共边界至少为两个多边形共有,非公共边界必须为单个多边形独有。优选的,上述步骤二具体包括21)通过比较两个多边形的外接矩形是否有交集,来判断两多边形是否相邻,如果两多边形的外接矩形有交集,则说明它们相邻,才进行后续处理,否则跳过这一对多边形, 继续判断下一对多边形;22)对两个多边形的每两条线段,通过比较坐标判断两条线段是否存在公共部分;23)如果两条线段不是完全包含,而只有部分公共区间,则通过增加形点的方式, 使原来的一条线段分裂为非公共部分和完全公共部分;对于公共部分,并将当前的两个多边形加入该公共部分的共有多边形集合内;24)将两个多边形的线段表示方式进行更新,记录每条线段是否是公共线段。优选的,上述步骤三具体包括31)对于按线段表示的多边形,将其相邻的非公共线段进行合并,成为一条非公共边界;32)将其相邻的公共线段也进行合并,成为一条公共边界,其中合并的前提是相邻的2条公共线段所包含的共有多边形集合完全相同。优选的,上述步骤四中采用任意指定的形点压缩算法去掉不必要的形点。优选的,上述步骤五是按照步骤三中合并完成后的边界顺序,依次将每条边界的形点串连起来,得到还原后的多边形的形点信息。本专利技术的优点是当存在有多个多边形,且它们之间有公共边界或部分公共边界时,能在形点压缩时有效的减少或消除这些边界上产生的缝隙。附图说明图1为本专利技术对多边形进行公共边界识别的实施例示意图2为本专利技术对多边形进行边界拼接的实施例示意图3为本专利技术实施流程图4为本专利技术实施效果图。具体实施方式为了便于本领域普通技术人员理解和实施本专利技术,下面结合附图及具体实施方式对本专利技术作进一步的详细描述。如图3所示,本专利技术的实现方式,在开始之后包括以下步骤1)多边形拆解多边形拆解目的是为了将输入的以形点串方式描述的多边形数据变换成基于线段描述的方式,为后续进行边的相交、重合等判断提供便利。对于所有的多边形,从多边形的首形点开始,按形点的排列顺序将每2个相邻形点组成一个线段并记入多边形的线段列表中。2)公共边界识别公共边界识别的目的是为了将多边形集合当中任意两个(或多个)多边形的所有公共边界标记出来,以方便在形点压缩时,对公共边界和非公共边界分别压缩。该过程初始时,所有多边形的线段列表中的所有线段都被标记为非公共边界。对于公共边界,要记录其所属的所有多边形列表。首先从多边形集合重取一对尚未处理过的多边形,判断两个多边形的外接矩形是否有交集,如果有交集存在则继续,否则跳过这一对多边形,重新取一对新的多边形进行比较。依照多边形的线段组成顺序从两个多边形中各取一条线段进行处理,如果任一条线段被标记为公共边界,则继续判断这条公共边界的共有多边形记录中是否包含正在处理的两个多边形,如果两个多边形均被包含,则说明该公共边已经是当前两个多边形的公共边,跳过该线段,继续下一条。对这两条线段进行交点计算,可能得到以下结果a)0个交点,说明2个线段不相交,没有公共部分b)l个交点,说明2个线段相交,但不共线,也没有公共部分c)⑴个交点,说明2个线段相交,且共线,存在有公共部分如果两条线段没有公共部分,则继续处理下一对线段;如果两条线段有公共部分, 则要对这两条线段分别进行分割,为了简化描述,以下仅对两条线段进行描述。如图1,两个多边形的线段分为为Sl和S2 1) Sl和S2有一部分公共区间,且Sl和S2均不完全包含对方。公共边的标识如图5ICase 1.2) Sl完全包含S2,且两线段无公共端点,公共边的标识如图lCase2.3) Sl完全包含S2,且两线段有1个公共端点,公共边的标识如图ICase 3.4) Sl和S2完全重合,公共边的标识如图ICase 4.经过以上处理之后,多边形的一条边会被区分为公共边界和非公共边界,将两个多边形添加到每段公共边界的共有多边形列表中。如果Sl (或幻)处理前已经是公共边界, 则遍历其共有多边形列表,将每个多边形的线段Sl (或S2)替换为分割后的线段集本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:朱敦尧王鹏
申请(专利权)人:光庭导航数据武汉有限公司
类型:发明
国别省市:

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

1
相关领域技术