专利名称:对电子地图的双线道路进行单线化处理的方法及其装置的制作方法
技术领域:
本发明涉及电子地图显示技术,尤其涉及对电子地图数据进行简化处理而使双线 道路单线化显示的方法和装置。
背景技术:
电子地图提供商(以下简称图商)在制作电子地图时,一般用一条单线表达一条道 路;考虑到物理的、法定的隔离栏因素,有时会将一条道路抽象为两条线,用两条方向相反 的双线分别代表两个不同的交通流方向。一般在制作显示数据时,根据道路的等级定义,在 不同的显示比例尺下,显示不同范围的道路等级。在显示高比例尺下的数据时,双线道路不 仅会增加显示数据的大小,同时也会使得显示效果受到影响。因此,图商提供的电子地图数 据直接用来显示高比例尺会不合适,需要对数据进行简化,将双线化的道路转换成单线。
发明内容
因此,本发明提供的一种对电子地图的双线道路进行单线化处理的方法和装置, 能将双线化的道路单线化显示,从而提供一份简洁的显示数据,以弥补图商提供的电子地 图数据在显示高比例尺下的不足。本发明的技术方案包括一种方法和一种装置,具体是 对电子地图的双线道路进行单线化处理的方法,包括如下步骤 步骤A 导入电子地图进行预处理,剔除电子地图中一些冗余的道路; 步骤B 确定电子地图中道路双线;
步骤C 确定电子地图中与道路双线平行的另一条道路双线;
步骤D 为电子地图中平行的道路双线进行单线化处理,生成道路单线;
步骤E 保持电子地图中道路的连通性;
步骤F:为电子地图中的结果单线进行道路切割,保持原始道路的属性。所述的步骤A的进一步的步骤流程是遍历电子地图中所有道路,若当前道路是 双线、普通道路、环岛、路口内连接,则进行保存,对其他类型道路做一标记,为冗余的道路, 该步骤于后台运行操作,不显示于显示画面中。所述的步骤B的进一步的步骤流程是遍历电子地图中所有双线道路,对该道路 进行前后延伸,寻找与之平行的其它双线道路或者是路口内连接,直到无满足条件的道路; 将满足条件的道路序列合并成新的单独的道路,记为道路双线;同时全部做标记,该步骤于 后台运行操作,不显示于显示画面中。所述的步骤C的进一步的步骤流程是从道路双线集合中取出一条道路双线,记 为Li,判断道路双线Ll与另一条道路双线L2是否满足以下一条
Cl:道路双线Ll与道路双线L2交于同一个点,且角度满足平行关系;
C2:道路双线Ll与道路双线L2交于同一个路口内连接,且角度满足平行关系;
C3:道路双线Ll与道路双线L2交于同一个环岛,且角度满足平行关系;C4:道路双线Ll与道路双线L2两者平行的部分超过各自总长的0.62倍; 若道路双线Li、道路双线L2满足以上任意一条,则将它们设为平行的道路双线。所述的步骤D的进一步的步骤流程是将成对的平行的道路双线分三个阶段进行 处理道路头部处理、道路中间段处理、道路尾部处理;道路的头部和尾部处理方法是相同 的,将单线化后的道路记为道路单线;其中,
(1)道路头或尾部的处理,有以下4种基本的连接模型及处理方法
①模型1两条道路双线头或尾节点重合;
②模型2两条道路双线头或尾节点交于同一个环岛;
③模型3两条道路双线头或尾节点交于同一路口内连接;
④模型4:其它,
在模型1下,取重合点作为道路单线的头或尾节点; 在模型2、3、4下处理方法用以下步骤进行
I .取两条道路双线中点个数较多的那条道路双线作为主线,先判断主线的第2个点 与头或尾节点组成的直线是否与另外一条道路双线平行;
II.若平行则由该点向另外一条道路双线做投影,最后求取该点与投影点的中值点作 为辅助直线的第一个点;
III.若不平行,则按顺序往前再取主线的另外一个点,继续判断相邻两点组成的直线 是否与另外一条道路双线平行;
IV.以此类推,当取到两个中值点后停止判断平行关系,由取到的这两个中值点组成 辅助直线,计算该辅助直线和环岛或路口内连接或道路双线的头或尾节点组成的直线的交 点,该交点即为单线在环岛或路口内连接或道路双线的头或尾节点组成的直线上的交点, 当在头或尾节点处出现由于该节点所在道路双线与另外一条道路双线不平行而导致投影 无法求取情况时,可用该节点直接作为道路单线上的头尾点,即应确保头或尾节点在道路 单线上的映射点存在;
(2)道路双线道路中间部分的处理,分3个步骤进行
I.对主线逐一分线段判断与另外一条直线是否平行;
II.在平行的条件下,计算该主线上的每个点到另外一条道路双线上的投影,且计算 时对该点到投影的距离加以限制;
III.求出主线上各点和对应投影点的中值,即为道路单线中间部分的点集。所述的步骤E的进一步的步骤流程是连通的道路分以下几类处理
El:双线道路Dl直接连接着双线道路D2,则将双线道路Dl对应的道路单线延伸到双 线道路D2对应的道路单线上;
E2:双线道路Dl连接的道路都是被删除的,这些删除的道路连接着双线道路D2,则将 双线道路Dl对应的道路单线延伸到双线道路D2对应的道路单线上;
E3 普通道路P直接连接在双线道路D上,则将普通道路P延伸到双线道路D对应的道 路单线上;
E4:普通道路P连接的道路都是被删除的,这些删除的道路连接着双线道路D,则将普 通道路P延伸到双线道路D对应的道路单线上。所述的步骤F的进一步的步骤流程是对道路单线进行切割,根据原始双线道路和路口内连接信息,将道路单线切割成与之相对应的线段,为每个线段生成一条新的道路, 该道路属性为原来原始双线道路或路口内连接道路的属性。本发明还提出一种对电子地图的双线道路进行单线化处理的装置,包括如下模 块
剔除冗余道路模块,用于导入电子地图进行预处理,剔除电子地图中一些冗余的道
路;
确定第一道路双线模块,用于确定电子地图中道路双线;
确定第二道路双线模块,用于确定电子地图中与道路双线平行的另一条道路双线; 单线化处理模块,用于电子地图中平行的道路双线进行单线化处理,生成道路单线; 道路连通模块,用于保持电子地图中道路的连通性;
以及道路切割模块,用于电子地图中的结果单线进行道路切割,保持原始道路的属性。本发明对电子地图的双线道路进行单线化处理的方法和装置生成的导航电子地 图数据可以完全满足精细的显示数据的需要,不仅能有效减少显示数据量,也克服了图商 提供的电子地图数据在显示高比例尺数据上的不足。
图1为本发明的方法中的一种路口内连接的示意图。图2为本发明的方法中的另一种路口内连接的示意图。图3为本发明的方法中的原始双线道路和路口内连接的示意图。图4为本发明的方法中的道路双线、道路单线的示意图。图5为本发明的方法中的道路切割结果的示意图。图6为本发明的方法的一个实施例总体过程的步骤流程示意图。图7为本发明的方法的步骤A的详细步骤流程示意图。图8为本发明的方法的步骤B的详细步骤流程示意图。图9为本发明的方法的步骤C的详细步骤流程示意图。图10为平行双线头(尾)节点重合的道路模型示意图。图11为平行双线头(尾)节点交于同一个环岛的道路模型示意图。图12为平行双线头(尾)节点交于同一路口内连接的第一种道路模型示意图。图13为平行双线头(尾)节点交于同一路口内连接的第二种道路模型示意图。图14为平行双线头(尾)节点的其它道路模型示意图。图15为本发明的方法中单线化处理的范例(平行双线序列和环岛相交的情况)的 示意图。图16为本发明的方法的步骤D的详细步骤流程示意图。图17为本发明的方法的步骤E的详细步骤流程示意图。图18为本发明的方法的步骤F的详细步骤流程示意图。图19为本发明的装置的模块结构示意图。
具体实施例方式现结合附图和
具体实施方式
对本发明进一步说明。
先说明我们将要或已经使用的名词术语。路口内连接由于双线的存在,往往在路口处会交汇形成属于路口内部的道路线。 如图1和图2中虚线部分代表着路口内的道路线,这些道路线的属性是路口内连接。环岛即实际的转盘。环岛内的道路线,其属性为环岛。道路双线合并属于同一个双线道路序列的所有道路的道路就称之为道路双线。 图3所示为原始道路数据,由双线道路和路口内连接构成的一个道路序列,图4中的实线是 合并这个道路序列后生成的新的道路,记为道路双线;
道路单线一对平行的道路双线的单线化结果,图4的虚线部分即为两条道路双线单 线化后的结果,记为道路单线。图5是将图4中根据原始双线道路和路口内连接信息,将道路单线切割成与之相 对应的线段,为每个线段生成一条新的道路,该道路属性为原来原始双线道路或路口内连 接道路的属性。如图6所示,本发明双线道路单线化的方法一个实施例总体的过程,包括如下步 骤
步骤A 导入电子地图进行预处理,剔除电子地图中一些冗余的道路; 步骤B 确定电子地图中道路双线;
步骤C 确定电子地图中与道路双线平行的另一条道路双线;
步骤D 为电子地图中平行的道路双线进行单线化处理,生成道路单线;
步骤E 保持电子地图中道路的连通性;
步骤F:为电子地图中的结果单线进行道路切割,保持原始道路的属性。步骤A是将图商的电子地图导入内存中,将该剔除的冗余道路做个标记。这里冗 余道路主要是指不是双线、普通道路、环岛、路口内连接的道路。该步骤是遍历电子地图中 所有道路,若当前道路是双线、普通道路、环岛、路口内连接,则进行保存,对其他类型道路 做一标记,为冗余的道路,该步骤于后台运行操作,不显示于显示画面中。如图7所示,步骤A具体的步骤流程是 步骤100,进入本过程,转步骤101 ;
步骤101,从内存中的电子地图的道路集合中顺序取出一条道路,转步骤102 ; 步骤102,检查该道路是否前道路是双线,是则转步骤107 ;否则转步骤103 ; 步骤103,检查该道路是否前道路是普通道路,是则转步骤107 ;否则转步骤104 ; 步骤104,检查该道路是否前道路是环岛,是则转步骤107 ;否则转步骤105 ; 步骤105,检查该道路是否前道路是路口内连接,是则转步骤107 ;否则转步骤106 ; 步骤106,标记为冗余的道路,转步骤101 ; 步骤107,保存道路,转步骤101 ; 步骤108,退出本过程。步骤B是遍历电子地图中所有双线道路,对该道路进行前后延伸,寻找与之平行 的其它双线道路或者是路口内连接,直到无满足条件的道路;将满足条件的道路序列合并 成新的单独的道路,记为道路双线;同时全部做标记,该步骤于后台运行操作,不显示于显 示画面中。如图8所示,步骤B具体的步骤流程是步骤200,进入本过程,转步骤201 ;
步骤201,从内存中的电子地图的道路集合中顺序取出一条道路,转步骤202 ; 步骤202,检查该道路是否为空,是则所有路口点已全部遍历完毕,转步骤213 ;否则转 步骤203 ;
步骤203,检查该道路是否是双线,且未被标记,是则转步骤204 ;否则转步骤201 ; 步骤204,以该道路为当前道路,转步骤205 ; 步骤205,以当前道路的起点往前找与之相连的道路,转步骤206 ; 步骤206,检查是否存在与当前道路平行的双线或者是路口内连接,是转步骤207 ;否 则转步骤208 ;
步骤207,将平行的道路做一个标记,并加入到双线道路序列中,转步骤204; 步骤208,将从道路集合中取出的道路做一个标记,加入到双线道路序列中,并将它设 置为当前道路,转步骤209;
步骤209,以当前道路的终点往后找与之相连的道路,转步骤210 ; 步骤210,检查是否存在与当前道路平行的双线或者是路口内连接,是转步骤211 ;否 则转步骤212 ;
步骤211,将平行的道路做一个标记,并加入到双线道路序列中,转步骤209 ; 步骤212,将双线道路序列集合中的道路合并成一个道路双线,转步骤201 ; 步骤213,结束本过程。步骤C是从道路双线集合中取出一条道路双线(记为Li),判断Ll与另一条道路双 线(记为L2)是否满足以下一条L1与L2交于同一个点,且角度满足平行关系;Ll与L2交 于同一个路口内连接,且角度满足平行关系;Ll与L2交于同一个环岛,且角度满足平行关 系;Ll与L2两者平行的部分超过各自总长的0. 62倍。若Li,L2满足以上任意一条,则将 它们设为平行的道路双线。如图9所示,步骤C具体的步骤流程是 步骤300,进入本过程,转步骤301 ;
步骤301,从内存中的道路双线集合中顺序取出一条道路双线,记为Li,转步骤302 ; 步骤302,检查Ll是否为空,是则所有道路双线已全部遍历完毕,转步骤313 ;否则转步 骤 303 ;
步骤303,检查该道路是否已被标记,是则转步骤301 ;否则转304 ; 步骤304,从内存中的道路双线集合中顺序取出一条道路双线,记为L2,转步骤305 ; 步骤305,检查L2是否为空,是则所有道路双线已全部遍历完毕,转步骤301 ;否则转步 骤 306 ;
步骤306,判断是否L1==L2或者L2已标记,是则转步骤304 ;否则转步骤307 ; 步骤307,判断Ll与L2是否交于同一个点,是则转步骤311 ;否则转步骤308 ; 步骤308,判断Ll与L2是否交于同一个路口内连接,是则转步骤311 ;否则转步骤
309 ;
步骤309,判断Ll与L2是否交于同一个环岛,是则转步骤311,否则转步骤310 ; 步骤310,检查Ll与L2彼此平行的道路长度是否足够长(这里认为需满足Ll和L2道 路总长的0. 62倍),是则转步骤312 ;否则转步骤304 ;步骤311,检查Ll与L2是否满足平行关系,是则转步骤312,否则转步骤304 ; 步骤312,将Ll与L2设置为平行的道路双线,同时标记Li,L2,转步骤301 ; 步骤313,,退出本过程。步骤D是为双线道路的单线化方法具体流程,将一对道路双线的单线化过程分为 三个阶段进行道路头部处理、道路中间段处理、道路尾部处理。由对称性,道路的头部和尾 部处理方法是相同的。(1)道路头(尾)部的处理,分析道路双线头部及尾部特点,有以下4种基本的连 接模型及处理方法
①模型1如图10所示,两条道路双线头(尾)节点重合; 在该模型1下,取重合点作为道路单线的头(尾)节点;
②模型2:如图11所示,两条道路双线头(尾)节点交于同一个环岛;
③模型3:如图12和图13所示,两条道路双线头(尾)节点交于同一路口内连接;
④模型4:如图14所示,其它。模型2、3、4这三种模型下的处理方法类似,用以下步骤进行
I .取两条道路双线中点个数较多的那条道路双线作为主线,先判断主线的第2个点 与头(尾)节点组成的直线是否与另外一条道路双线平行;
II.若平行则由该点向另外一条道路双线做投影,最后求取该点与投影点的中值点作 为辅助直线的第一个点;
III.若不平行,则按顺序往前再取主线的另外一个点,继续判断相邻两点组成的直线 是否与另外一条道路双线平行;
IV.以此类推,当取到两个中值点后停止判断平行关系。由取到的这两个中值点组成 辅助直线,计算该辅助直线和环岛(或路口内连接;或道路双线的头(或尾)节点组成的直 线)的交点,该交点即为单线在环岛(或路口内连接;或道路双线的头(或尾)节点组成的 直线)上的交点。当在首(尾)节点处出现由于该节点所在道路双线与另外一条道路双线 不平行而导致投影无法求取情况时,可用该节点直接作为道路单线上的头尾点,即应确保 首(尾)节点在道路单线上的映射点存在。(2)道路双线道路中间部分的处理,分3个步骤进行
I.对主线逐一分线段判断与另外一条直线是否平行
因为道路双线不是严格意义上的平行线,所以在处理时要先对主线分线段逐一判断该 线段与另外一条道路双线上的线段是否平行;
II.点投影计算
在平行的条件下,计算该主线上的每个点到另外一条道路双线上的投影,为了防止出 现环形道路中,投影有两点而出现的错误,在计算时还应对该点到投影的距离加以限制,当 该点到投影的距离大于30米时,则可判断认为该投影点不是正确的投影点,应继续计算另 外一个投影点。当该点在另外一条道路双线的投影存在多解情况时,应考虑求取最佳投影
点;
III.求出主线上各点和对应投影点的中值,即为道路单线中间部分的点集。如图16所示,步骤D具体的步骤流程是(记Ll和L2为一对平行的道路双线) 步骤400,进入本过程,转步骤401 ;步骤401,分析头部节点类型(见图10-图14),转步骤402 ;
步骤402,根据头部节点分析结果,分4种模型进行处理若为模型1,转步骤403 ;若为 模型2、3、4,转步骤404 ;
步骤403,道路单线的头、尾节点采用重合点即可。转步骤409 ; 步骤404,见图15例,取道路双线中点个数较多的直线L2作为主线,先判断主线L2的 第1、2个点组成的线段是否与另外一条道路双线Ll平行。若平行,转步骤405 ;若不平行, 转步骤406 ;
步骤405,由主线L2中线段的第1个点向另外一条平行双线Ll做投影,求取该点与投 影点的中值点作为辅助直线的第一个点。转步骤408 ;
步骤406,按顺序往前再取直线L2的下一个点,继续判断相邻两点组成的线段是否与 另外一条道路双线Ll平行,若平行,转步骤405 ;若不平行,继续往前取点,直到平行为止, 转步骤405。若在L2上找不到线段与另外一条道路双线平行而导致投影无法求取时,转步 骤 407 ;
步骤407,用该节点直接作为单线上的头(尾)点,以确保头(尾)节点在单线上的映射 点存在。处理完毕后,转步骤409;
步骤408,以此类推,当取到两个中值点后停止判断平行关系。在图17例中,能够取到 L2中的第3、4个点,S卩p3、p4对应的中值点。由取到的这两个中值点组成辅助直线,计算该 辅助直线和环岛L3的交点ρ’,该交点ρ’即为单线L’在环岛L3上的交点。转步骤409;
步骤409,处理中间段数据,判断主线L2上的分线段与另外一条道路双线Ll是否平行。 因为道路双线不是严格意义上的平行线,所以在处理时要先逐一判断主线L2上的各线段 与另外一条道路双线Ll上的线段是否平行。若不平行,转步骤410,若平行,转步骤411 ; 步骤410,继续在主线L2上向前取线段,转步骤409 ;
步骤411,点投影计算。在平行的条件下,计算主线L2上的点到另外一条道路双线Ll 上的投影,转步骤412;
注为了防止出现环形道路中,投影有两点而出现的错误,在计算时还应对该点到投影 的距离加以限制,当该点到投影的距离大于30米时,则可判断认为该投影点不是正确的投 影点,应继续计算另外一个投影点。当该点在另外一条道路双线的投影存在多解情况时,应 考虑求取最佳投影点;
步骤412,求出主线L2上的点和对应投影点的中值,即为单线L’上的点。判断该点是 否是主线L2上的最后1个点,若不是,转步骤410 ;若是最后1个点,转步骤413 ; 步骤413,分析尾部节点类型(见图10-图14),转步骤414;
步骤414,根据尾部节点分析结果,分4种模型进行处理(具体方法同头部节点),转步 骤 415 ;
步骤415,退出本过程。 步骤E需要对由于连接着双线道路或者是不显示的道路而引起的连通性丢失的 道路进行道路连通,从而保持显示数据不失真。连通的道路分以下几类双线道路Dl直接 连接着双线道路D2,此时需要将Dl对应的道路单线延伸到D2对应的道路单线上;双线道 路Dl连接的道路都是被删除的,而这些删除的道路连接着双线道路D2,此时需要将Dl对应 的道路单线延伸到D2对应的道路单线上;普通道路P直接连接在双线道路D上,则将P延伸到D对应的道路单线上;普通道路P连接的道路都是被删除的,而这些删除的道路连接着 双线道路D,则将P延伸到D对应的道路单线上。如图17所示,步骤E具体的步骤流程是 步骤500,进入本过程,转步骤501 ;
步骤501,从内存中的电子地图的道路集合中顺序取出一条道路,转步骤502 ; 步骤502,检查该道路是否为空,是则所有道路已全部遍历完毕,转步骤512 ;否则转步 骤 503 ;
步骤503,检查该道路是否是双线,是则转步骤504 ;否则转步骤505 ; 步骤504,找到其对应的道路双线,然后再找到对应的道路单线,记为P1,转步骤507 ; 步骤505,检查该道路是否是普通道路,是转步骤506 ;否则转步骤501 ; 步骤506,将当前道路记为P,转步骤507 ;
步骤507,检查P (Pl)是否直接连接着双线道路,是则转步骤508 ;否则转步骤511 ; 步骤508,找到双线道路对应的道路双线,转步骤509 ; 步骤509,找到道路双线对应的道路单线,记为P2,转步骤510 ; 步骤510,延伸P (Pl)到P2上,保持道路连通,转步骤501 ;
步骤511,检查P (Pl)连接的道路是否都被删除,且删除的道路直接连接着双线道路, 是则转步骤508 ;否则转步骤501 ; 步骤512,退出本过程。步骤F对道路单线进行切割,根据原始双线道路和路口内连接信息,将道路单线 切割成与之相对应的线段,为每个线段生成一条新的道路,该道路属性为原来原始双线道 路或路口内连接道路的属性。如图18所示,步骤F具体的步骤流程是 步骤600,进入本子过程,转步骤601 ;
步骤601,从内存中的道路单线集合中顺序取出一条道路单线,记为P,转步骤602 ; 步骤602,检查P是否为空,是则转步骤608 ;否则转步骤603 ; 步骤603,从P中保存的双线道路序列(这里可能是双线道路或者是路口内连接)中取 出一条道路,记为D,转步骤604 ;
步骤604,若P中双线道路序列已全部遍历完毕,转步骤607 ;否则转步骤605 ; 步骤605,获取D的起终点在P的道路点集上的投影,转步骤606 ; 步骤606,以起终点投影之间的道路点集生成一条新的道路,该道路的属性为D的道路 属性,转步骤603 ;
步骤607,对P进行标记,最后数据不进行显示,转步骤601 ; 步骤608,退出本子过程。如图19所示,本发明还提出一种对电子地图的双线道路进行单线化处理的装置, 包括如下模块
剔除冗余道路模块1,用于导入电子地图进行预处理,剔除电子地图中一些冗余的道
路;
确定第一道路双线模块2,用于确定电子地图中道路双线;
确定第二道路双线模块3,用于确定电子地图中与道路双线平行的另一条道路双线;单线化处理模块4,用于电子地图中平行的道路双线进行单线化处理,生成道路单线; 道路连通模块5,用于保持电子地图中道路的连通性;
以及道路切割模块6,用于电子地图中的结果单线进行道路切割,保持原始道路的属性。详细的,所述的剔除冗余道路模块1执行如下操作
遍历电子地图中所有道路,若当前道路是双线、普通道路、环岛、路口内连接,则进行保 存,对其他类型道路做一标记,为冗余的道路,该步骤操作运行于模块中,不显示于显示画 面中。详细的,所述的确定第一道路双线模块2执行如下操作
遍历电子地图中所有双线道路,对该道路进行前后延伸,寻找与之平行的其它双线道 路或者是路口内连接,直到无满足条件的道路;将满足条件的道路序列合并成新的单独的 道路,记为道路双线;同时全部做标记,该步骤操作运行于模块中,不显示于显示画面中。详细的,所述的确定第二道路双线模块3执行如下操作
从道路双线集合中取出一条道路双线,记为Li,判断路双线Ll与另一条道路双线L2 是否满足以下一条
Cl:道路双线Ll与道路双线L2交于同一个点,且角度满足平行关系; C2:道路双线Ll与道路双线L2交于同一个路口内连接,且角度满足平行关系; C3:道路双线Ll与道路双线L2交于同一个环岛,且角度满足平行关系; C4:道路双线Ll与道路双线L2两者平行的部分超过各自总长的0. 62倍; 若道路双线Li、道路双线L2满足以上任意一条,则将它们设为平行的道路双线。详细的,所述的单线化处理模块4执行如下操作
将一对道路双线的单线化过程分为三个阶段进行道路头部处理、道路中间段处理、道 路尾部处理。由对称性,道路的头部和尾部处理方法是相同的。(1)道路头(尾)部的处理,分析道路双线头部及尾部特点,有以下4种基本的连 接模型及处理方法
①模型1如图10所示,两条道路双线头(尾)节点重合; 在该模型1下,取重合点作为道路单线的头(尾)节点;
②模型2如图11所示,两条道路双线头(尾)节点交于同一个环岛;
③模型3如图12和图13所示,两条道路双线头(尾)节点交于同一路口内连接;
④模型4:如图14所示,其它。模型2、3、4这三种模型下的处理方法类似,用以下步骤进行
I .取两条道路双线中点个数较多的那条道路双线作为主线,先判断主线的第2个点 与头(尾)节点组成的直线是否与另外一条道路双线平行;
II.若平行则由该点向另外一条道路双线做投影,最后求取该点与投影点的中值点作 为辅助直线的第一个点;
III.若不平行,则按顺序往前再取主线的另外一个点,继续判断相邻两点组成的直线 是否与另外一条道路双线平行;
IV.以此类推,当取到两个中值点后停止判断平行关系。由取到的这两个中值点组成 辅助直线,计算该辅助直线和环岛(或路口内连接;或道路双线的头(或尾)节点组成的直线)的交点,该交点即为单线在环岛(或路口内连接;或道路双线的头(或尾)节点组成的 直线)上的交点。当在首(尾)节点处出现由于该节点所在道路双线与另外一条道路双线 不平行而导致投影无法求取情况时,可用该节点直接作为道路单线上的头尾点,即应确保 首(尾)节点在道路单线上的映射点存在。(2)道路双线道路中间部分的处理,分3个步骤进行
I.对主线逐一分线段判断与另外一条直线是否平行
因为道路双线不是严格意义上的平行线,所以在处理时要先对主线分线段逐一判断该 线段与另外一条道路双线上的线段是否平行;
II.点投影计算
在平行的条件下,计算该主线上的每个点到另外一条道路双线上的投影,为了防止出 现环形道路中,投影有两点而出现的错误,在计算时还应对该点到投影的距离加以限制,当 该点到投影的距离大于30米时,则可判断认为该投影点不是正确的投影点,应继续计算另 外一个投影点。当该点在另外一条道路双线的投影存在多解情况时,应考虑求取最佳投影占.
III.求出主线上各点和对应投影点的中值,即为道路单线中间部分的点集。详细的,所述的道路连通模块5执行如下操作 连通的道路分以下几类处理
El:双线道路Dl直接连接着双线道路D2,则将双线道路Dl对应的道路单线延伸到双 线道路D2对应的道路单线上;
E2:双线道路Dl连接的道路都是被删除的,这些删除的道路连接着双线道路D2,则将 双线道路Dl对应的道路单线延伸到双线道路D2对应的道路单线上;
E3 普通道路P直接连接在双线道路D上,则将普通道路P延伸到双线道路D对应的道 路单线上;
E4:普通道路P连接的道路都是被删除的,这些删除的道路连接着双线道路D,则将普 通道路P延伸到双线道路D对应的道路单线上。详细的,所述的道路切割模块6执行如下操作
对道路单线进行切割,根据原始双线道路和路口内连接信息,将道路单线切割成与之 相对应的线段,为每个线段生成一条新的道路,该道路属性为原来原始双线道路或路口内 连接道路的属性。尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明 白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对 本发明做出各种变化,均为本发明的保护范围。
权利要求
1.对电子地图的双线道路进行单线化处理的方法,其特征在于,包括如下步骤 步骤A 导入电子地图进行预处理,剔除电子地图中一些冗余的道路;步骤B 确定电子地图中道路双线;步骤C 确定电子地图中与道路双线平行的另一条道路双线;步骤D 为电子地图中平行的道路双线进行单线化处理,生成道路单线;步骤E 保持电子地图中道路的连通性;步骤F:为电子地图中的结果单线进行道路切割,保持原始道路的属性。
2.根据权利要求1所述的对电子地图的双线道路进行单线化处理的方法,其特征在 于,所述的步骤A的进一步的步骤流程是遍历电子地图中所有道路,若当前道路是双线、 普通道路、环岛、路口内连接,则进行保存,对其他类型道路做一标记,为冗余的道路,该步 骤于后台运行操作,不显示于显示画面中。
3.根据权利要求1所述的对电子地图的双线道路进行单线化处理的方法,其特征在 于,所述的步骤B的进一步的步骤流程是遍历电子地图中所有双线道路,对该道路进行前 后延伸,寻找与之平行的其它双线道路或者是路口内连接,直到无满足条件的道路;将满足 条件的道路序列合并成新的单独的道路,记为道路双线;同时全部做标记,该步骤于后台运 行操作,不显示于显示画面中。
4.根据权利要求1所述的对电子地图的双线道路进行单线化处理的方法,其特征在 于,所述的步骤C的进一步的步骤流程是从道路双线集合中取出一条道路双线,记为Li, 判断道路双线Ll与另一条道路双线L2是否满足以下一条Cl:道路双线Ll与道路双线L2交于同一个点,且角度满足平行关系; C2:道路双线Ll与道路双线L2交于同一个路口内连接,且角度满足平行关系; C3:道路双线Ll与道路双线L2交于同一个环岛,且角度满足平行关系; C4:道路双线Ll与道路双线L2两者平行的部分超过各自总长的0.62倍; 若道路双线Li、道路双线L2满足以上任意一条,则将它们设为平行的道路双线。
5.根据权利要求1所述的对电子地图的双线道路进行单线化处理的方法,其特征在 于,所述的步骤D的进一步的步骤流程是将成对的平行的道路双线分三个阶段进行处理 道路头部处理、道路中间段处理、道路尾部处理;道路的头部和尾部处理方法是相同的,将 单线化后的道路记为道路单线;其中,(1)道路头或尾部的处理,有以下4种基本的连接模型及处理方法①模型1两条道路双线头或尾节点重合,②模型2两条道路双线头或尾节点交于同一个环岛,③模型3两条道路双线头或尾节点交于同一路口内连接,④模型4:其它,在模型1下,取重合点作为道路单线的头或尾节点; 在模型2、3、4下处理方法用以下步骤进行I .取两条道路双线中点个数较多的那条道路双线作为主线,先判断主线的第2个点 与头或尾节点组成的直线是否与另外一条道路双线平行;II.若平行则由该点向另外一条道路双线做投影,最后求取该点与投影点的中值点作 为辅助直线的第一个点;III.若不平行,则按顺序往前再取主线的另外一个点,继续判断相邻两点组成的直线 是否与另外一条道路双线平行;IV.以此类推,当取到两个中值点后停止判断平行关系,由取到的这两个中值点组成 辅助直线,计算该辅助直线和环岛或路口内连接或道路双线的头或尾节点组成的直线的交 点,该交点即为单线在环岛或路口内连接或道路双线的头或尾节点组成的直线上的交点, 当在头或尾节点处出现由于该节点所在道路双线与另外一条道路双线不平行而导致投影 无法求取情况时,可用该节点直接作为道路单线上的头尾点,即应确保头或尾节点在道路 单线上的映射点存在;(2)道路双线道路中间部分的处理,分3个步骤进行I.对主线逐一分线段判断与另外一条直线是否平行;II.在平行的条件下,计算该主线上的每个点到另外一条道路双线上的投影,且计算 时对该点到投影的距离加以限制;III.求出主线上各点和对应投影点的中值,即为道路单线中间部分的点集。
6.根据权利要求1所述的对电子地图的双线道路进行单线化处理的方法,其特征在 于,所述的步骤E的进一步的步骤流程是连通的道路分以下几类处理El:双线道路Dl直接连接着双线道路D2,则将双线道路Dl对应的道路单线延伸到双 线道路D2对应的道路单线上;E2:双线道路Dl连接的道路都是被删除的,这些删除的道路连接着双线道路D2,则将 双线道路Dl对应的道路单线延伸到双线道路D2对应的道路单线上;E3 普通道路P直接连接在双线道路D上,则将普通道路P延伸到双线道路D对应的道 路单线上;E4:普通道路P连接的道路都是被删除的,这些删除的道路连接着双线道路D,则将普 通道路P延伸到双线道路D对应的道路单线上。
7.根据权利要求1所述的对电子地图的双线道路进行单线化处理的方法,其特征在 于,所述的步骤F的进一步的步骤流程是对道路单线进行切割,根据原始双线道路和路口 内连接信息,将道路单线切割成与之相对应的线段,为每个线段生成一条新的道路,该道路 属性为原来原始双线道路或路口内连接道路的属性。
8.对电子地图的双线道路进行单线化处理的装置,其特征在于,包括如下模块剔除冗余道路模块,用于导入电子地图进行预处理,剔除电子地图中一些冗余的道路;确定第一道路双线模块,用于确定电子地图中道路双线;确定第二道路双线模块,用于确定电子地图中与道路双线平行的另一条道路双线;单线化处理模块,用于电子地图中平行的道路双线进行单线化处理,生成道路单线;道路连通模块,用于保持电子地图中道路的连通性;以及道路切割模块,用于电子地图中的结果单线进行道路切割,保持原始道路的属性。
9.根据权利要求8所述的对电子地图的双线道路进行单线化处理的装置,其特征在 于,所述的剔除冗余道路模块执行如下操作遍历电子地图中所有道路,若当前道路是双线、普通道路、环岛、路口内连接,则进行保 存,对其他类型道路做一标记,为冗余的道路,该步骤操作运行于模块中,不显示于显示画面中。
10.根据权利要求8所述的对电子地图的双线道路进行单线化处理的装置,其特征在 于,所述的确定第一道路双线模块执行如下操作遍历电子地图中所有双线道路,对该道路进行前后延伸,寻找与之平行的其它双线道 路或者是路口内连接,直到无满足条件的道路;将满足条件的道路序列合并成新的单独的 道路,记为道路双线;同时全部做标记,该步骤操作运行于模块中,不显示于显示画面中。
11.根据权利要求8所述的对电子地图的双线道路进行单线化处理的装置,其特征在 于,所述的确定第二道路双线模块执行如下操作从道路双线集合中取出一条道路双线,记为Li,判断道路双线Ll与另一条道路双线 L2是否满足以下一条Cl:道路双线Ll与道路双线L2交于同一个点,且角度满足平行关系; C2:道路双线Ll与道路双线L2交于同一个路口内连接,且角度满足平行关系; C3:道路双线Ll与道路双线L2交于同一个环岛,且角度满足平行关系; C4:道路双线Ll与道路双线L2两者平行的部分超过各自总长的0.62倍; 若道路双线Li、道路双线L2满足以上任意一条,则将它们设为平行的道路双线。
12.根据权利要求8所述的对电子地图的双线道路进行单线化处理的装置,其特征在 于,所述的单线化处理模块执行如下操作将成对的平行的道路双线分三个阶段进行处理道路头部处理、道路中间段处理、道路 尾部处理;道路的头部和尾部处理方法是相同的,将单线化后的道路记为道路单线;其中, (1)道路头或尾部的处理,有以下4种基本的连接模型及处理方法①模型1两条道路双线头或尾节点重合,②模型2两条道路双线头或尾节点交于同一个环岛,③模型3两条道路双线头或尾节点交于同一路口内连接,④模型4:其它,在模型1下,取重合点作为道路单线的头或尾节点; 在模型2、3、4下处理方法用以下步骤进行I .取两条道路双线中点个数较多的那条道路双线作为主线,先判断主线的第2个点 与头或尾节点组成的直线是否与另外一条道路双线平行;II.若平行则由该点向另外一条道路双线做投影,最后求取该点与投影点的中值点作 为辅助直线的第一个点;III.若不平行,则按顺序往前再取主线的另外一个点,继续判断相邻两点组成的直线 是否与另外一条道路双线平行;IV.以此类推,当取到两个中值点后停止判断平行关系,由取到的这两个中值点组成 辅助直线,计算该辅助直线和环岛或路口内连接或道路双线的头或尾节点组成的直线的交 点,该交点即为单线在环岛或路口内连接或道路双线的头或尾节点组成的直线上的交点, 当在头或尾节点处出现由于该节点所在道路双线与另外一条道路双线不平行而导致投影 无法求取情况时,可用该节点直接作为道路单线上的头尾点,即应确保头或尾节点在道路 单线上的映射点存在;(2)道路双线道路中间部分的处理,分3个步骤进行I.对主线逐一分线段判断与另外一条直线是否平行;II.在平行的条件下,计算该主线上的每个点到另外一条道路双线上的投影,且计算 时对该点到投影的距离加以限制;III.求出主线上各点和对应投影点的中值,即为道路单线中间部分的点集。
13.根据权利要求8所述的对电子地图的双线道路进行单线化处理的装置,其特征在 于,所述的道路连通模块执行如下操作连通的道路分以下几类处理El 双线道路Dl直接连接着双线道路D2,则将双线道路Dl对应的道路单线延伸到双 线道路D2对应的道路单线上;E2:双线道路Dl连接的道路都是被删除的,这些删除的道路连接着双线道路D2,则将 双线道路Dl对应的道路单线延伸到双线道路D2对应的道路单线上;E3 普通道路P直接连接在双线道路D上,则将普通道路P延伸到双线道路D对应的道 路单线上;E4:普通道路P连接的道路都是被删除的,这些删除的道路连接着双线道路D,则将普 通道路P延伸到双线道路D对应的道路单线上。
14.根据权利要求8所述的对电子地图的双线道路进行单线化处理的装置,其特征在 于,所述的道路切割模块执行如下操作对道路单线进行切割,根据原始双线道路和路口内连接信息,将道路单线切割成与之 相对应的线段,为每个线段生成一条新的道路,该道路属性为原来原始双线道路或路口内 连接道路的属性。
全文摘要
本发明涉及电子地图显示技术。本发明的对电子地图的双线道路进行单线化处理的方法包含的过程有剔除电子地图中的冗余道路;确定电子地图中的道路双线;确定电子地图中与道路双线平行的另一条道路双线;为电子地图中平行的道路双线进行单线化处理,生成道路单线;保持电子地图中道路的连通性;为电子地图中道路单线进行切割,保持原始道路的属性。本发明的对电子地图的双线道路进行单线化处理的装置包括由剔除冗余道路模块、确定第一道路双线模块、确定第二道路双线模块、单线化处理模块、道路连通模块以及道路切割模块。本发明能有效减少显示数据量,克服图商提供的电子地图数据在显示高比例尺数据上的不足。
文档编号G09B29/00GK102136219SQ20111007228
公开日2011年7月27日 申请日期2011年3月24日 优先权日2011年3月24日
发明者季刚, 时宜, 曹辉标, 林江毅 申请人:厦门雅迅网络股份有限公司