专利名称:一种电子地图路名生成方法
技术领域:
本发明涉及一种电子地图技术,尤其是涉及一种电子地图路名生成方法。
背景技术:
理想状态下,导航仪中的电子地图要求具有地图和路名能快速生成、能根据不同状况动态生成地图、生成的路名不重叠且方便观看的性能。然后对现有的一些电子地图技术虽然能够实现上面的一个或者两个效果,但是却不能综合有效实现上述三个效果。现有的电子地图生成方法存在下面几个问题。数据生成时需要预先定义路名显示所用的字体信息,如果显示实时用的字体类型、字体大小及字间距与所生成数据中的定义不同的话,会出现字符重叠,或者字间距过大等问题,严重影响最终显示效果。当地图角度发生改变时,预生成的数据很难保证“从左到右,从上到下”的路名显示原则,需要根据实时地地图角度对,路名字符的顺序,及字符的方向进行动态调整。尤其是在使用非等宽字体,或英文/拼音路名的情况下,由于路名各字符的宽度不一致,调整字符顺序无法保证字间距的一致,影响显示效果。数据生成时需针对不同比例尺生成不同的路名数据,生成的数据量非常大;如果同时实现路名各字符方向与所在道路方向平行的效果时,需要在数据生成时生成额外的角度数据。数据量过大会提高对使用设备的要求。如果在不同比例尺间切换需要平滑的过渡效果时,由于过渡效果的显示使用的可能是非预定义的比例尺,此时路名显示只能使用某个预定义比例尺的数据。而由于缩放系数的不同会,非预定义比例尺使用预定义比例尺数据会造成明明间距过大或过小的问题, 影响最终显示效果。现有技术中,对前文所述的字符重复的解决方法有外接矩形碰撞检测过滤方法, 这个方法虽然能够检测出重叠的字符,并过滤掉,但是一旦电子地图所涉及的道路数量较大的时候,所需处理的时间很长,严重影响了电子地图的实时性,严重影响导航系统的综合性能。市场急盼一种具备快速、动态生成地图和路名且生成路名方便观看的电子地图技术。
发明内容
本发明针对上述电子地图生成的缺点,提出一种动态、快速、不重叠的电子地图路名生成方法。本发明采取的设计方案为
一种电子地图路名生成方法,包括以下步骤
获取显示范围内的矢量数据;
进行实时变换数据,得到屏幕坐标数据;使用所述的屏幕坐标数据绘制道路;
使用所述的屏幕坐标数据进行一条道路路名沿道路方向生成,并保存所有适合显示的路名;
使用前一步骤遍历显示范围内的所有道路,直到完成显示范围内所有道路路名的生
成;
绘制路名。一种优选方案,所述的进行一条道路路名沿道路方向生成之后还包括进行阅读趋势过滤,所述的阅读趋势过滤可以过滤不适合显示的路名。一种优选方案,所述的阅读趋势过滤包括以下步骤
选择一条道路上的一个路名,计算该路名的每个字符的位置及方向;
进行阅读趋势过滤,阅读趋势过滤规则是路名的后一个字符前进方向与前一个字符前进方向所成的夹角大于等于45度,则过滤掉该路名;
如果通过阅读趋势过滤,则保存适合显示的路名记录;
完成该道路所有路名的阅读趋势过滤。一种优选方案,所述的进行一条道路路名沿道路方向生成包括以下步骤
计算一条道路在屏幕上的长度;
计算道路路名在屏幕上的长度;
过滤过短道路,如果道路在屏幕显示长度大于等于路名在屏幕显示长度,是则进入下一步骤,否则,过滤该道路路名,并则跳回上两步骤;
设置路名间距,计算路名重复频率;
计算各路名显示区间的起点和终点,并选择合适的点作为路名生成的起点;
完成路名的生成。一种优选方案,所述的绘制路名可以包括外包矩形碰撞过滤
绘制路名时,根据路名的每个字符的矩形框计算出一个能包含该路名所有字符的外包大矩形框;
如果外包大矩形框和已绘制的路名字符发生碰撞,则舍弃这条记录,如果外包大矩形框没有和已绘制的路名字符发生碰撞,则绘制外包大矩形框里边的路名字符。一种优选方案,所述的实时变换数据包括以下步骤
获取电子地图的显示参数,包括有角度、比例尺、地图中心的纬度值;
根据获得的显示参数,将所述的矢量数据变成屏幕坐标数据。综上所述,本发明具有以下显著的有益效果
(1)动态,本申请的电子地图是实时生成的,不同于一些电子地图,他们将处理好的电子地图是存储在存储设备,使用的时候从存储器获取。本申请的电子地图动态生成技术可以根据不同的显示区域与不同的显示比例尺选择最合适的方式向用户显示道路和路名,改变了僵硬显示方式,本发明可以适应更加复杂的路况;
(2)快速,本发明道路路名经过“过滤过短道路”和“阅读趋势过滤”可以减少进入路名绘制阶段的路名数量,可以使得路名生成时间整体上加快。在中国国情下,我们这种技术优势体现的淋漓尽致,我国山多,道路曲折,在电子地图上显示很多道路都是歪歪扭扭的, 通过“过滤过短道路步骤”和“阅读趋势过滤”可以过滤很大一部分的道路路名,并且这两个步骤计算量小,而“外接矩形碰撞过滤”这个步骤计算量大,所以在“外接矩形碰撞过滤” 之前加上“过滤过短道路”和“阅读趋势过滤”,非但不会减慢路名生成速度,反而是生成速度大幅提高,这产生了二加一小于一的效果,并且本申请对“外接矩形碰撞过滤”方法进行了优化,本申请使用了整条路名字符的外接矩形框进行碰撞检测,减少参与碰撞检测的字符数目,提高碰撞检测的效率;
(3)不重叠,电子地图路名生成过程中,有可能产生一些路名重叠现象,本发明通过外接矩形碰撞过滤步骤,能够有效的过滤掉重叠的路名,使得展现给用户的界面上路名整体清楚有序,不凌乱,可以向用户一种良好的视觉感受。电子地图路名不重叠,可以避免司机因为道路路名难以分辨而分神。说明书附图
附图I为本发明所述一种电子地图路名生成方法的流程图。
具体实施例方式为了让本领域的技术人员更好地理解本发明的技术方案,下面结合附图对本发明作进一步阐述。本发明一种电子地图路名生成方法,包括以下步骤
第一步获取显示范围内的矢量数据,从存储装置中获取用于生成地图的矢量数据,所述的矢量数据为记载了地图上每个点的经纬度信息的数据;
第二步实时变换数据,具体的,获取电子地图的显示参数,包括角度、比例尺、地图中心的纬度值等,根据前一步骤获得的显示参数,将矢量数据变成屏幕坐标数据,所述的屏幕坐标数据为记载了地图每个点在屏幕上坐标位置数据;
第三步使用屏幕坐标数据绘制道路;
第四步进行一条道路的路名沿道路方向生成,所述的沿道路方向生成为道路路名走向跟道路走向一致,具体的,
选择一条道路,从第二步所述的屏幕坐标数据中,逐条分析道路形状点数据,计算道路在屏幕显不长度(RoadLength),
计算道路路名在屏幕显示长度(LabelWidth),路名在屏幕的显示长度可以根据实际情况设置,
过滤过短道路,如果道路在屏幕显示长度大于等于路名在屏幕显示长度,既 RoadLength 会是则进入下一步骤,否则,既 RoadLength < LabelWidth 过滤该
道路路名,并则跳回上两步骤,既是回到单一道路的路名生成步骤的开始,
设置路名间距LabelSpace,路名间距可以根据实际情况设计,如,在屏幕分辨率为 800x480的设备上,我们希望达到同一路名水平方向上重复次数不超过3次,垂直方向上不超过2次,可以将LabelSpace定义为300,根据路名间距LabelSpace计算路名重复频率 RepeatCount, RepeatCount = RoadLength / (Labelffidth + LabelSpcace),
计算路名起点StartOffset^l^; EndPoint,完成单一道路路名的生成,估算每段可以显示路名区间的起始点,
第一个区间的起点的确定方法如下
StartOffset = (RoadLenght - (Labelffidth + LabelSpcace)* RepeatCount) /2(该区间并非严格的路名显示范围,由于道路形状的影响,可能会出现路名超出该区间的情况)判断各路名区间起始点的相对位置,通过“从左到右,从上到下”的路名显示原则,选择一个点作为路名的起点StartPoint,另一个点记作EndPoint,以StartPoint为起点,向 EndPoint方向计算路名中各字符的位置,和所在道路的方向,并根据所在道路的方向确定各字符的显示方向;
第五步进行阅读趋势过滤,所述的阅读趋势过滤可以过滤不适合显示的路名,具体的, 选择一条道路,即是第四步骤所处理的道路,从该道路中选择一个路名,计算该路名的每个字符的位置及方向,
进行阅读趋势过滤,阅读趋势是指阅读一段文字的方向。阅读趋向改变即指所阅读的文字并非按照直线排布,从一个文字阅读到另外一个文字的方向发生了改变,阅读趋势过滤规则是路名的后一个字符前进方向与前一个字符前进方向所成的夹角大于等于四十五度,则过滤掉该路名,
如果通过阅读趋势过滤,则保存适合显示的路名记录,
判断该道路的路名是否都经过阅读趋势过滤,是则进入下一步骤,否则回到阅读趋势判断过滤的开始步骤;
第六步使用前两步骤遍历显示范围内的所有道路,直到完成显示范围内所有道路路名沿道路方向的生成;
第七步绘制路名,具体的,
绘制路名前,根据所要绘制的路名的每个字符的矩形框,计算能包含整个路名所有字符的外包矩形框,
如果新生成的外包矩形框和已绘制的路名字符发生碰撞,则舍弃这条记录,如果新的外包矩形框没有和已绘制的路名字符发生碰撞,则绘制新的外包矩形框里边的路名字符, 并且路名按照等级从高到低的顺序进行绘制。本申请中,单个路名中字符之间并没有经过是否重叠的碰撞检测,因为单个路名中字符之间重叠的情况基本通不过阅读趋势过滤。绘制路名时,用整条路名记录的外包矩形框进行外包矩形碰撞过滤,可以减少参与外包矩形碰撞过滤的记录条数,提高碰撞检测的效率。由于路名不是显示在同一水平或垂直直线上,整条路名记录的外包矩形框覆盖面积太大,会碰撞掉原本可以显示的路名。虽然该方法会丢失路名,但是根据路名等级从高到低的顺序来进行路名绘制,可以优先将高等级的路名显示出来。需要说明的是,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种电子地图路名生成方法,其特征在于,包括以下步骤获取显示范围内的矢量数据;进行实时变换数据,得到屏幕坐标数据;使用所述的屏幕坐标数据绘制道路;使用所述的屏幕坐标数据进行一条道路路名沿道路方向生成,并保存所有适合显示的路名;使用前一步骤遍历显示范围内的所有道路,直到完成显示范围内所有道路路名的生成;绘制路名。
2.根据权利要求I所述的一种电子地图路名生成方法,其特征在于所述的进行一条道路路名沿道路方向生成之后还包括进行阅读趋势过滤,所述的阅读趋势过滤是过滤不适合显示的路名。
3.根据权利要求2所述的一种电子地图路名生成方法,其特征在于,所述的阅读趋势过滤包括以下步骤选择一条道路上的一个路名,计算该路名的每个字符的位置及方向;进行阅读趋势过滤,阅读趋势过滤规则是路名的后一个字符前进方向与前一个字符前进方向所成的夹角大于等于45度,则过滤掉该路名;如果通过阅读趋势过滤,则保存适合显示的路名记录;完成该道路所有路名的阅读趋势过滤。
4.根据权利要求3所述的一种电子地图路名生成方法,其特征在于,所述的进行一条道路路名沿道路方向生成包括以下步骤计算一条道路在屏幕上的长度;计算道路路名在屏幕上的长度;过滤过短道路,如果道路在屏幕显示长度大于等于路名在屏幕显示长度,是则进入下一步骤,否则,过滤该道路路名,并则跳回上两步骤;设置路名间距,计算路名重复频率;计算各路名显示区间的起点和终点,并选择合适的点作为路名生成的起点;完成路名的生成。
5.根据权利要求4所述的一种电子地图路名生成方法,其特征在于,所述的绘制路名可以包括外包矩形碰撞过滤绘制路名时,根据路名的每个字符的矩形框计算出一个能包含该路名所有字符的外包大矩形框;如果外包大矩形框和已绘制的路名字符发生碰撞,则舍弃这条记录,如果外包大矩形框没有和已绘制的路名字符发生碰撞,则绘制外包大矩形框里边的路名字符。
6.根据权利要求5所述的一种电子地图路名生成方法,其特征在于,所述的实时变换数据包括以下步骤获取电子地图的显示参数,包括有角度、比例尺、地图中心的纬度值;根据获得的显示参数,将所述的矢量数据变成屏幕坐标数据。
全文摘要
本发明公开了一种电子地图路名生成方法,包括以下步骤获取显示范围内的矢量数据;实时变换数据;使用实时变换后的数据绘制道路;使用实时变换后的数据,逐条生成沿道路方向的路名;进行阅读趋势判断,过滤不适合显示的路名;获取所有适合显示的路名,绘制路名,路名生成结束。本发明公开的一种电子地图路名生成方法,具有动态、快速、生成路名不重叠的优点。
文档编号G01C21/32GK102538803SQ20111041225
公开日2012年7月4日 申请日期2011年12月13日 优先权日2011年12月13日
发明者谭广华 申请人:惠州市德赛西威汽车电子有限公司