基于ais系统的船舶数据表绘制方法

文档序号:6375459阅读:177来源:国知局
专利名称:基于ais系统的船舶数据表绘制方法
技术领域
本发明涉及一种航海领域,特别设计一种基于AIS系统的船舶数据表绘制方法。
背景技术
AIS 系统(AIS 全称Automatic Identification System ;中文名称船舶自动识别系统)下船舶数据一般以船舶数据表的形式显示在海图上,用户通过海图即可观察周围船舶及其动向。所述船舶数据包括船舶的国旗、国籍、船名、MMSI (中文名称海上移动通信业务标识)、航速、船舶的经度 纬度等。在海图上显示船舶基本信息时,船舶数据表不经处理,直接显示在海图(如图I所示)。海图在较大比例尺下,如果船舶数量大,船舶数据表相互叠加,在海图上显示成一团,这就导致部分船舶被船舶数据表遮挡,无法准确获取船舶基本信息,同时降低计算机硬件系统的响应速度。

发明内容
本发明要解决的技术问题,在于提供一种基于AIS系统的船舶数据表绘制方法,其在海图上显示的船舶数据表更清晰,用户查看更方便,且提升了计算机硬件系统的响应速度。本发明是这样实现的
基于AIS系统的船舶数据表绘制方法,包括如下步骤
步骤I、确定海图显示比例尺,然后将显示屏幕划分为大小相同的单元格,各单元格均未被标记;
步骤2、通过计算机串口接收船舶数据,判断接收到的船舶数据的AIS语句是否正确,不正确返回,正确则解析船舶数据,提取船舶数据中的MMSI号,判断该MMSI号是否存在于AIS数据链表中,若已存在,则根据丽SI号从AIS数据链表中取出对应的船舶数据进行比对,若有更新,则将接收到的船舶数据更新至所述AIS数据链表中,若无更新,则丢弃接收到的船舶数据,继续接收下一条船舶数据;
若不存在,则将接收到的船舶数据记录至所述AIS数据链表;所述AIS数据链表用于记录各船舶的船舶数据;
将海图区域内所有船舶的船舶数据都记录在所述AIS数据链表后,执行步骤3 ;
步骤3、判断所述AIS数据链表中所有的船舶数据是否都以船舶数据表的形式在海图上绘制完毕,若否执行步骤4,若是,则结束绘制;
步骤4、从所述AIS数据链表中提取一条船舶数据,根据船舶数据表的屏幕坐标判断该条船舶数据表所需要占用的单元格是否已被标记,若已标记,则表示单元格已被使用,放弃绘制,执行步骤3 ;若未标记,则开始绘制船舶数据表,并对被使用的单元格进行标记,绘制完成后执彳了步骤3。进一步地,所述步骤4具体为从所述AIS数据链表中提取一条船舶数据,根据该船舶数据表的屏幕坐标,若船舶数据表左上角的屏幕坐标为(top,left),左下角的屏幕坐标为(bottom, left),右上角的屏幕坐标为(top, right),右下角的屏幕坐标为(bottom,right),单元格的高度为height,单元格的宽度为width,则该船舶数据表需要占用的左上角的单元格的行、列分别为top/height、left/width ;该船舶数据表需要占用的左下角的单元格行、列分别为bottom/height、left/width ;该船舶数据表需要占用的右上角的单元格行、列分别为top/height, right/width ;该船舶数据表需要占用的右下角的单元格行、列分别为bottom/height、right /width ;根据该船舶数据表四个顶角所形成的区域,判断该区域内的单元格以及四个顶角所处的单元格是否已被标记,若已标记,则表示单元格已被使用,放弃绘制,执行步骤3 ;若未标记,则开始绘制船舶数据表,并对被使用的单元格进打标记,绘制完成后执彳了步骤3。进一步地,在所述步骤2中,将接收到的船舶数据更新至所述AIS数据链表或将接收到的船舶数据记录至所述AIS数据链表的同时,将所述AIS数据链表和所述MMSI号的船舶数据均设置更新标志,通过定时器设置刷新间隔时间,周期性地查询所述AIS数据链表的更新标志,若有更新标志,则提取所述AIS数据链表中设有更新标志的船舶数据,并在海图上重新绘制该船舶数据的船舶数据表。进一步地,所述AIS数据链表中船舶数据全部绘制完,修改海图显示比例尺,则重新执行步骤3和步骤4。进一步地,所述显示屏幕被划分呈列数为显示屏幕宽/单元格宽;行数为显示
屏幕高/单元格高。进一步地,所述AIS数据链表存储在内存中。进一步地,所述AIS数据链表通过AIS数据查询表呈现给用户。本发明具有如下优点通过对显示屏幕划分单元格,利用单元格过滤不必绘制的船舶数据表,减少绘制工作量,提高了计算机硬件系统的响应速度,且海图显示更清晰,方便用户查看,而未被显示的船舶数据表又可通过AIS数据查询表进行查询。


下面参照附图结合实施例对本发明作进一步的说明。图I是现有技术中显示船舶数据表的海图。图2是本发明更新AIS数据链表的流程图。图3是本发明AIS数据查询表的示意图。图4是本发明船舶数据表的绘制流程图。图5是本发明船舶数据表占用单元格的示意图。
具体实施例方式基于AIS系统的船舶数据表绘制方法,所述绘制方法包括如下步骤
步骤I、确定海图显示比例尺,然后将显示屏幕划分为大小相同的单元格,各单元格均未被标记,即各单元格均未被使用;所述显示屏幕被划分呈列数为显示屏幕宽/单元格宽;行数为显示屏幕高/单元格高;
步骤2、请参阅图2和图3,通过计算机串口接收船舶数据,判断接收到的船舶数据的AIS语句是否正确,不正确返回,正确则解析船舶数据,提取船舶数据中的丽SI号,判断该丽SI号是否存在于AIS数据链表中,
若已存在,则根据MMSI号从所述AIS数据链表中取出对应的船舶数据进行比对,若有更新,则将接收到的船舶数据更新至所述AIS数据链表中,并将所述AIS数据链表和所述MMSI号的船舶数据均设置更新标志,若无更新,则丢弃接收到的船舶数据,继续接收下一条船舶数据;
若不存在,则将接收到的船舶数据记录至所述AIS数据链表,并将所述AIS数据链表和所述MMSI号的船舶数据均设置更新标志;所述AIS数据链表用于记录各船舶的船舶数据;所述船舶数据包括船舶的国旗、国籍、船名、MMSI (中文名称海上移动通信业务标识)、航速以及船舶的经度纬度等;所述AIS数据链表存储在内存中,所述AIS数据链表用于记录各船舶的船舶数据并通过AIS数据查询表呈现给用户;
将海图区域内的所有船舶的船舶数据都记录在所述AIS数据链表后,执行步骤3;
步骤3、请参阅图4,判断所述AIS数据链表中的船舶数据是否都以船舶数据表的形式在海图上绘制完毕,若否执行步骤4,若是,则结束绘制;
步骤4、从所述AIS数据链表中提取一条船舶数据,根据船舶数据表的屏幕坐标判断该条船舶数据表所需要占用的单元格是否已被标记,若已标记,则表示单元格已被使用,放弃绘制,执行步骤3 ;若未标记,则开始绘制船舶数据表,并对被使用的单元格进行标记,绘制完成后执彳了步骤3 ;
具体地,从所述AIS数据链表中提取一条船舶数据,根据该船舶数据表的屏幕坐标,若船舶数据表左上角的屏幕坐标为(top,left),左下角的屏幕坐标为(bottom,left),右上角的屏幕坐标为(top,right),右下角的屏幕坐标为(bottom,right),单元格的高度为height,单元格的宽度为width,则该船舶数据表需要占用的左上角的单元格的行、列分别为top/height、left/width ;该船舶数据表需要占用的左下角的单元格行、列分别为bottom/height、left/width ;该船舶数据表需要占用的右上角的单元格行、列分别为top/height, right/width ;该船舶数据表需要占用的右下角的单元格行、列分别为bottom/height、right /width ;根据该船舶数据表四个顶角所形成的区域,判断该区域内的单元格以及四个顶角所处的单元格是否已被标记,若已标记,则表示单元格已被使用,放弃绘制,执行步骤3,因为绘制该船舶数据表的单元格已被使用,说明该位置已绘制有某一船舶的船舶数据表,若再次绘制或多次绘制,只会导致多张船舶数据表的信息相互叠加,用户无法辨清各船舶数据表的具体信息,因此,通过判断单元格是否已被使用再决定是否绘制,可以避免海图上船舶数据表的显示混乱以及计算机硬件系统响应迟钝;我们将被放弃绘制的船舶数据表称之为不必绘制的船舶数据表;若未标记,则开始绘制船舶数据表,并对被使用的单元格进行标记,绘制完成后执行步骤3。本实施例中,船舶数据表的屏幕坐标是通过以下步骤获得的
设置船舶数据表显示在船位右侧;
设船位坐标为x,y (通过船舶的经度纬度换算成显示屏幕上的船位坐标)
设船位图标的宽为ship_width,船位图标和数据表的间隔为data_padding 设船舶数据表的宽,高为data_width,data_height
则船舶数据表最左边的坐标为left = x + ship_width/2 + data_padding -data_width / 2船舶数据表最右边的坐标为right = left + data_width 船舶数据表最上边的坐标为top = y + data_height / 2 船舶数据表最下边的坐标为bottom = top + data_height。本发明还可通过定时器设置刷新间隔时间,周期性地查询所述AIS数据链表的更新标志,若有更新标志,则提取所述AIS数据链表中设有更新标志的船舶数据表,并在海图上重新绘制该船舶数据表。所述AIS数据链表中船舶数据表全部绘制完,修改海图显示比例尺,则重新执行步骤3和步骤4,重新绘制船舶数据表。在本实施例中,取单元格的高和宽分别船舶数据包的高和宽的1/4,则判断每条船舶数据表需要占用的单元格I不会超过25个,如图5所示。因此相对绘制来说,所需要的CPU指令数可忽略,因此可降低CPU资源占用率,提高系统响应速度。船舶数据表的大小,可通过系统设置的数据显示开关进行控制,缩放海图不影响船舶数据表的大小,也就不影响单元格大小。本发明通过对显示屏幕划分单元格,利用单元格过滤不必绘制的船舶数据表,减少绘制工作量,提高了计算机硬件系统的响应速度,且海图显示更清晰,方便用户查看,而未被显示的船舶数据表又可通过AIS数据查询表进行查询。虽然以上描述了本发明的具体实施方式
,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
权利要求
1.基于AIS系统的船舶数据表绘制方法,其特征在于,包括如下步骤 步骤I、确定海图显示比例尺,然后将显示屏幕划分为大小相同的单元格,各单元格均未被标记; 步骤2、通过计算机串口接收船舶数据,判断接收到的船舶数据的AIS语句是否正确,不正确返回,正确则解析船舶数据,提取船舶数据中的MMSI号,判断该丽SI号是否存在于AIS数据链表中, 若已存在,则根据MMSI号从AIS数据链表中取出对应的船舶数据进行比对,若有更新,则将接收到的船舶数据更新至所述AIS数据链表中,若无更新,则丢弃接收到的船舶数据,继续接收下一条船舶数据; 若不存在,则将接收到的船舶数据记录至所述AIS数据链表;所述AIS数据链表用于记录各船舶的船舶数据; 将海图区域内所有船舶的船舶数据都记录在所述AIS数据链表后,执行步骤3 ; 步骤3、判断所述AIS数据链表中所有的船舶数据是否都以船舶数据表的形式在海图上绘制完毕,若否执行步骤4,若是,则结束绘制; 步骤4、从所述AIS数据链表中提取一条船舶数据,根据船舶数据表中的屏幕坐标判断该条船舶数据表所需要占用的单元格是否已被标记,若已标记,则表示单元格已被使用,放弃绘制,执行步骤3 ;若未标记,则开始绘制船舶数据表,并对被使用的单元格进行标记,绘制完成后执彳了步骤3。
2.根据权利要求I所述的基于AIS系统的船舶数据表绘制方法,其特征在于所述步骤4具体为从所述AIS数据链表中提取一条船舶数据,根据该船舶数据表的屏幕坐标,若船舶数据表左上角的屏幕坐标为(top,left),左下角的屏幕坐标为(bottom,left),右上角的屏幕坐标为(top,right),右下角的屏幕坐标为(bottom,right),单元格的高度为height,单元格的宽度为width,则该船舶数据表需要占用的左上角的单元格的行、列分别为top/height、left/width ;该船舶数据表需要占用的左下角的单元格行、列分别为bottom/height、left/width ;该船舶数据表需要占用的右上角的单元格行、列分别为top/height, right/width ;该船舶数据表需要占用的右下角的单元格行、列分别为bottom/height、right /width ;根据该船舶数据表四个顶角所形成的区域,判断该区域内的单元格以及四个顶角所处的单元格是否已被标记,若已标记,则表示单元格已被使用,放弃绘制,执行步骤3 ;若未标记,则开始绘制船舶数据表,并对被使用的单元格进行标记,绘制完成后执行步骤3。
3.根据权利要求I所述的基于AIS系统的船舶数据表绘制方法,其特征在于在所述步骤2中,将接收到的船舶数据更新至所述AIS数据链表或将接收到的船舶数据记录至所述AIS数据链表的同时,将所述AIS数据链表和所述MMSI号的船舶数据均设置更新标志,通过定时器设置刷新间隔时间,周期性地查询所述AIS数据链表的更新标志,若有更新标志,则提取所述AIS数据链表中设有更新标志的船舶数据,并在海图上重新绘制该船舶数据的船舶数据表。
4.根据权利要求I所述的基于AIS系统的船舶数据表绘制方法,其特征在于所述AIS数据链表中船舶数据表全部绘制完,修改海图显示比例尺,则重新执行步骤3和步骤4。
5.根据权利要求I所述的基于AIS系统的船舶数据表绘制方法,其特征在于所述显示屏幕被划分呈列数为显示屏幕宽/单元格宽;行数为显示屏幕高/单元格高。
6.根据权利要求I所述的基于AIS系统的船舶数据表绘制方法,其特征在于所述步骤2中的AIS数据链表存储在内存中。
7.根据权利要求I所述的基于AIS系统的船舶数据表绘制方法,其特征在于所述AIS数据链表通过AIS数据查询表呈现给用户。
全文摘要
本发明提供一种基于AIS系统的船舶数据表绘制方法,首先将显示屏幕划分为大小相同的单元格,其次将接收到的船舶数据表记录在AIS数据链表中,然后提取船舶数据表进行绘制,若船舶数据表所需要占用的单元格已经被标记,则放弃绘制,若船舶数据表所需要占用的单元格未被标记,则在海图上进行绘制。本发明通过对显示屏幕划分单元格,利用单元格过滤不必绘制的船舶数据表,减少绘制工作量,提高了计算机硬件系统的响应速度,且海图显示更清晰,方便用户查看,而未被显示的船舶数据表又可通过AIS数据查询表进行查询或通过选中船舶、缩放海图查询。
文档编号G06F17/30GK102855308SQ20121029979
公开日2013年1月2日 申请日期2012年8月22日 优先权日2012年8月22日
发明者王维 申请人:厦门新诺科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1