[发明专利]一种电子海图中船舶电子标牌的自动排列方法有效
申请号: | 201510278118.5 | 申请日: | 2015-05-27 |
公开(公告)号: | CN104866583B | 公开(公告)日: | 2018-04-24 |
发明(设计)人: | 隋远;韩晓宁;丁康;薛雯;王盛朋 | 申请(专利权)人: | 中国电子科技集团公司第二十八研究所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 江苏圣典律师事务所32237 | 代理人: | 胡建华 |
地址: | 210007 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种电子海图中船舶电子标牌的自动排列方法,特别是一种基于排序算法的将重叠标牌在指定区域对齐的标牌排列方法。本发明选取船舶在电子海图上重叠的信息标牌后,通过分析它们的宽度、高度,以及对应船舶的纬度信息,将这些重叠的标牌在电子海图上指定的空闲区域自动铺展排列的方法,解决了标牌重叠,干扰用户获得有效信息的问题。本发明不同于常规方法使用鼠标逐个拖动来分散重叠在一起的标牌,而是通过鼠标框选聚集在一起的大量标牌,然后在指定位置铺展排列的方法,解决了标牌重叠的问题。相对于手动分散,本方法不仅可以迅速解决大量的标牌重叠问题,而且排列后的标牌更加有序美观。 | ||
搜索关键词: | 一种 电子 海图 船舶 标牌 自动 排列 方法 | ||
【主权项】:
一种电子海图中船舶电子标牌的自动排列方法,其特征在于,包括如下步骤:步骤1,对用户框选中的船舶电子标牌,在计算机内存中生成框选标牌所对应的船舶信息结构体列表,提取船舶信息结构体列表匹配船舶电子标牌排列模式;步骤2,对用户框选中的聚集在一起的船舶电子标牌列表进行排序;步骤3,遍历船舶电子标牌列表,根据步骤1中获得的匹配模式重排船舶电子标牌;步骤4,处理完所有船舶电子标牌位置后自动重新绘制船舶电子标牌;步骤1包括:步骤1‑1,用户使用标牌框选功能,框选中船舶电子标牌,根据选中的船舶电子标牌找到其对应的船舶信息,在计算机内存中生成一个船舶信息结构体列表,船舶信息结构体中包括船舶当前的经纬度位置以及船舶电子标牌结构体信息;步骤1‑2,求出船舶符号位置在屏幕分布的最小外接矩形区域:遍历船舶符号的屏幕坐标的横坐标x值和纵坐标y值,记录横坐标的最小值x1、纵坐标的最小值y1和横坐标的最大值x2、纵坐标的最大值y2,如果下一个船舶符号的横坐标x值小于当前船舶符号横坐标最小值x1,则更新最小值x1,如果横坐标x值大于当前最大值x2,则更新最大值x2,如果下一个船舶符号的纵坐标y值小于当前船舶符号纵坐标最小值y1,则更新最小值y1,如果纵坐标y值大于当前最大值y2,则更新最大值y2,最后根据矩形左上角点(x1,y1)和矩形右下角点(x2,y2)求出该矩形区域的宽度(x2‑x1)和高度(y2‑y1);步骤1‑3,根据框选船舶电子标牌的累积高度匹配排列模型:遍历船舶电子标牌结构体中的标牌高度属性,并计算出累积高度值Hsum;计算屏幕右侧可利用区域的最大高度H1;如果累积高度值Hsum小于右侧可利用区域的最大高度H1,那么匹配单列排列模式;如果累积高度值Hsum大于屏幕右侧可利用区域的最大高度H1,那么对超出的高度值Hex进行判断,如果超出的高度值Hex小于第一阈值,第一阈值为矩形区域高度的一半(y2‑y1)/2与矩形区域底部到屏幕下边框的高度dy2之和,那么匹配双列排列模式一;如果超出的高度值Hex大于第二阈值,第二阈值为矩形区域高度的一半(y2‑y1)/2与矩形区域底部到屏幕下边框高度dy2之和,但小于矩形区域高度(y2‑y1)与矩形区域底部到屏幕下边框高度dy2之和,那么匹配双列排列模式二;如果超出的高度值Hex大于矩形区域高度(y2‑y1)与矩形区域底部到屏幕下边框高度dy2之和,那么匹配底部追加单行排列模式;步骤1‑3中所述屏幕右侧可利用区域的最大高度H1为矩形区域高度(y2‑y1),矩形区域底部到屏幕下边框的高度dy2,以及一个常量dy1的三者之和,单位为屏幕像素;步骤2包括:步骤2‑1,以船舶信息结构体中存储的船舶纬度位置为关键值,对船舶信息结构体列表进行希尔排序,使得纬度值大的船舶信息结构体排在表列前部,纬度值小的标牌排在表列后部;步骤3包括:步骤3‑1,如果是单列排列模式,将船舶电子标牌排列在船舶符号右侧,以船舶符号外接矩形的宽度的一半为间隔,确定右侧船舶电子标牌区的起始横坐标,以船舶符号外接矩形上部纵坐标y1减去常数值dy1作为右侧船舶电子标牌区的纵坐标,确定第一个船舶电子标牌的位置,然后沿第一个船舶电子标牌下方依次排列下一个船舶电子标牌,完成船舶电子标牌重新排列;步骤3‑2,如果是双列排列模式一,则在完成步骤3‑1的基础上,对超出高度的船舶电子标牌进行第二列排列,遍历超出高度的船舶电子标牌,确定船舶电子标牌的最大宽度,在船舶符号外接矩形左侧,以船舶符号外接矩形的宽度的一半为间隔并加上标牌最大宽度,确定第二列起始位置的横坐标,以船舶符号外接矩形高度的一半作为第二列起始位置的纵坐标,确定第一个船舶电子标牌的屏幕位置,沿第一个船舶电子标牌下方依次排列下一个船舶电子标牌,完成船舶电子标牌重新排列;步骤3‑3,如果是双列排列模式二,则在完成步骤3‑1的基础上,对超出高度的船舶电子标牌进行第二列排列,以船舶符号外接矩形的宽度的一半为间隔并加上标牌最大宽度,确定第二列起始位置的横坐标,以船舶符号外接矩形上部纵坐标y1减去常数值dy1作为右侧船舶电子标牌区的纵坐标,从而确定第一个船舶电子标牌的屏幕位置,然后沿第一个船舶电子标牌下方依次排列下一个船舶电子标牌,完成船舶电子标牌重新排列;步骤3‑4,如果是底部追加单行排列模式,则在完成步骤3‑2的基础上,对超出高度的船舶电子标牌进行底部追加单行排列:对剩余船舶电子标牌进行以船舶信息结构体中存储的船舶经度为关键值的希尔排序生成新的待排列序列,将经度值小的船舶电子标牌排在序列前部,经度值大的排在后部,然后根据船舶电子标牌排列区域的右侧横坐标和船舶符号外接矩形下方纵坐标确定第一个船舶电子标牌的屏幕位置,接着沿第一个船舶电子标牌右侧依次排列下一个船舶电子标牌,完成船舶电子标牌的重新排列。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第二十八研究所,未经中国电子科技集团公司第二十八研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510278118.5/,转载请声明来源钻瓜专利网。