一种电子海图中船舶电子标牌的自动排列方法_3

文档序号:8543781阅读:来源:国知局
5像素。
[0062]步骤3-3,如果是双列排列模式二,则在完成步骤3-1的基础上,对超出高度的电子标牌进行第二列排列。如图5所示,以船舶符号外接矩形的宽度的一半为间隔并加上标牌最大宽度,确定第二列起始位置的横坐标,以船舶符号外接矩形上部纵坐标丫^咸去常数值Cly1作为右侧船舶电子标牌区的纵坐标,从而确定第一个船舶电子标牌的屏幕位置,本发明中,常量(Iy1取值为80 ;然后沿第一个电子标牌下方依次排列下一个电子标牌,完成电子标牌重新排列,本发明中标牌间的间隔常数为5像素。
[0063]步骤3-4,如果是底部追加单行排列模式,则在完成步骤3-2的基础上,对超出高度的电子标牌进行底部追加单行排列。首先对剩余标牌进行以经度为关键值的希尔排序生成新的代排列序列,将经度值小的标牌排在序列前部,经度值大的排在后部;然后,如图6所示,根据电子标牌排列区域2的右侧横坐标和船舶符号外接矩形下方纵坐标确定第一个标牌的屏幕位置;接着沿第一个标牌右侧依次排列下一个电子标牌,完成电子标牌的重新排列,本发明中标牌间的间隔常数为5像素。
[0064]步骤4,处理完所有标牌位置后自动重新绘制标牌。
[0065]VTS台位软件根据更新后的标牌屏幕位置、宽度和高度,重新绘制标牌,如图10所示,为船舶标牌使用排序算法双列排列效果图。
[0066]本发明提供了一种电子海图中船舶电子标牌的自动排列方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
【主权项】
1.一种电子海图中船舶电子标牌的自动排列方法,其特征在于,包括如下步骤: 步骤1,对用户框选中的船舶电子标牌,在计算机内存中生成框选标牌所对应的船舶信息结构体列表,提取船舶信息结构体列表匹配船舶电子标牌排列模式; 步骤2,对用户框选中的聚集在一起的船舶电子标牌列表进行排序; 步骤3,遍历船舶电子标牌列表,根据步骤I中获得的匹配模式重排船舶电子标牌; 步骤4,处理完所有船舶电子标牌位置后自动重新绘制船舶电子标牌。
2.根据权利要求1所述的一种电子海图中船舶电子标牌的自动排列方法,其特征在于,步骤I包括: 步骤1-1,用户使用标牌框选功能,框选中船舶电子标牌,根据选中的船舶电子标牌找到其对应的船舶信息,在计算机内存中生成一个船舶信息结构体列表,船舶信息结构体中包括船舶当前的经玮度位置以及船舶电子标牌结构体信息; 步骤1-2,求出船舶符号位置在屏幕分布的最小外接矩形区域: 遍历船舶符号的屏幕坐标的横坐标X值和纵坐标Y值,记录横坐标的最小值X1、纵坐标的最小值Y1和横坐标的最大值X 2、纵坐标的最大值12,如果下一个船舶符号的横坐标X值小于当前船舶符号横坐标最小值X1,则更新最小值X1,如果横坐标X值大于当前最大值x2,则更新最大值X2,如果下一个船舶符号的纵坐标y值小于当前船舶符号纵坐标最小值Y1^iJ更新最小值yi,如果纵坐标I值大于当前最大值y2,则更新最大值y2,最后根据矩形左上角点(χι,yi)和矩形右下角点(χ2,y2)求出该矩形区域的宽度(X2-Xi)和高度(y2_yi); 步骤1-3,根据框选船舶电子标牌的累积高度匹配排列模型: 遍历船舶电子标牌结构体中的标牌高度属性,并计算出累积高度值Hsum ;计算屏幕右侧可利用区域的最大高度H1; 如果累积高度值Hsum小于右侧可利用区域的最大高度H1,那么匹配单列排列模式; 如果累积高度值Hsum大于屏幕右侧可利用区域的最大高度H1,那么对超出的高度值Hex进行判断,如果超出的高度值Hex小于第一阈值,第一阈值为矩形区域高度的一半(Y2-Y1)/2与矩形区域底部到屏幕下边框的高度dy2之和,那么匹配双列排列模式一; 如果超出的高度值Hex大于第二阈值,第二阈值为矩形区域高度的一半(y2_yi)/2与矩形区域底部到屏幕下边框高度dy2之和,但小于矩形区域高度(y2_yi)与矩形区域底部到屏幕下边框高度dy2之和,那么匹配双列排列模式二 ; 如果超出的高度值Hex大于矩形区域高度(y2_yi)与矩形区域底部到屏幕下边框高度dy2之和,那么匹配底部追加单行排列模式。
3.根据权利要求2所述的一种电子海图中船舶电子标牌的自动排列方法,其特征在于,步骤1-3中所述屏幕右侧可利用区域的最大高度氏为矩形区域高度(y2_yi),矩形区域底部到屏幕下边框的高度dy2,以及一个常量Cly1的三者之和,单位为屏幕像素。
4.根据权利要求3所述的一种电子海图中船舶电子标牌的自动排列方法,其特征在于,步骤2包括: 步骤2-1,以船舶信息结构体中存储的船舶玮度位置为关键值,对船舶信息结构体列表进行希尔排序,使得玮度值大的船舶信息结构体排在表列前部,玮度值小的标牌排在表列后部O
5.根据权利要求4所述的一种电子海图中船舶电子标牌的自动排列方法,其特征在于,步骤3包括: 步骤3-1,如果是单列排列模式,将船舶电子标牌排列在船舶符号右侧,以船舶符号外接矩形的宽度的一半为间隔,确定右侧船舶电子标牌区的起始横坐标,以船舶符号外接矩形上部纵坐标Y1减去常数值dy i作为右侧船舶电子标牌区的纵坐标,确定第一个船舶电子标牌的位置,然后沿第一个船舶电子标牌下方依次排列下一个船舶电子标牌,完成船舶电子标牌重新排列; 步骤3-2,如果是双列排列模式一,则在完成步骤3-1的基础上,对超出高度的船舶电子标牌进行第二列排列,遍历超出高度的船舶电子标牌,确定船舶电子标牌的最大宽度,在船舶符号外接矩形左侧,以船舶符号外接矩形的宽度的一半为间隔并加上标牌最大宽度,确定第二列起始位置的横坐标,以船舶符号外接矩形高度的一半作为第二列起始位置的纵坐标,确定第一个船舶电子标牌的屏幕位置,沿第一个船舶电子标牌下方依次排列下一个船舶电子标牌,完成船舶电子标牌重新排列; 步骤3-3,如果是双列排列模式二,则在完成步骤3-1的基础上,对超出高度的船舶电子标牌进行第二列排列,以船舶符号外接矩形的宽度的一半为间隔并加上标牌最大宽度,确定第二列起始位置的横坐标,以船舶符号外接矩形上部纵坐标Y1减去常数值dy i作为右侧船舶电子标牌区的纵坐标,从而确定第一个船舶电子标牌的屏幕位置,然后沿第一个船舶电子标牌下方依次排列下一个船舶电子标牌,完成船舶电子标牌重新排列; 步骤3-4,如果是底部追加单行排列模式,则在完成步骤3-2的基础上,对超出高度的船舶电子标牌进行底部追加单行排列:对剩余船舶电子标牌进行以船舶信息结构体中存储的船舶经度为关键值的希尔排序生成新的待排列序列,将经度值小的船舶电子标牌排在序列前部,经度值大的排在后部,然后根据船舶电子标牌排列区域的右侧横坐标和船舶符号外接矩形下方纵坐标确定第一个船舶电子标牌的屏幕位置,接着沿第一个船舶电子标牌右侧依次排列下一个船舶电子标牌,完成船舶电子标牌的重新排列。
【专利摘要】本发明公开了一种电子海图中船舶电子标牌的自动排列方法,特别是一种基于排序算法的将重叠标牌在指定区域对齐的标牌排列方法。本发明选取船舶在电子海图上重叠的信息标牌后,通过分析它们的宽度、高度,以及对应船舶的纬度信息,将这些重叠的标牌在电子海图上指定的空闲区域自动铺展排列的方法,解决了标牌重叠,干扰用户获得有效信息的问题。本发明不同于常规方法使用鼠标逐个拖动来分散重叠在一起的标牌,而是通过鼠标框选聚集在一起的大量标牌,然后在指定位置铺展排列的方法,解决了标牌重叠的问题。相对于手动分散,本方法不仅可以迅速解决大量的标牌重叠问题,而且排列后的标牌更加有序美观。
【IPC分类】G06F17-30
【公开号】CN104866583
【申请号】CN201510278118
【发明人】隋远, 韩晓宁, 丁康, 薛雯, 王盛朋
【申请人】中国电子科技集团公司第二十八研究所
【公开日】2015年8月26日
【申请日】2015年5月27日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1