System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种提高二维电子海图显示效率的方法技术_技高网

一种提高二维电子海图显示效率的方法技术

技术编号:40362130 阅读:7 留言:0更新日期:2024-02-09 14:49
本发明专利技术提出了一种提高二维电子海图显示效率的方法,通过在计算屏幕四角对应的二维电子海图四至位置,筛选掉大量暂时不绘制海洋要素,只绘制屏幕可见区域内容;同时利用多线程对二维电子海图进行二重切分,首先根据海图要素显示优先级对海图要素数据进行图层切分,然后针对各个海图要素图层使用4个线程进行2x2等比切分,四个线程独立绘制切分出来的1/4海图要素图层,4个1/4海图要素图层绘制结束后拼接成完整的海图要素图层图像,最后将各完整海图要素图层图像合并成一个完整的二维电子海图;各个子线程通过二级缓存,在二维电子海图不发生变化的情况下,实现二维电子海图只绘制一次功能,有效解决实时不停地绘制二维电子海图海洋要素问题。

【技术实现步骤摘要】

本方法涉及图像处理,提供一种提高二维电子海图显示效率的方法


技术介绍

1、二维电子海图海洋要素类型多、数据量大,包括地理物标(岛屿、陆地、海洋区域、灯塔、航线等)、元物标(比例尺、海图投影法、高程、水深基准面、测量单位等)、制图物标(制图线条、图例、文字字型、呈现角度等)、集合物标、空间物标(矢量、栅格和矩阵等类型),传统二维电子海图显示是通过在屏幕上实时绘制各海洋要素实现的,消耗大量计算机资源,造成二维电子海图程序执行效率低与运行卡顿问题。

2、与专利cn104778024b “一种电子海图显示方法及系统”的技术对比;

3、1、专利cn104778024b利用矩形裁剪窗对需要显示的电子海图区域进行定位,并通过遍历电子海图的方式将整体位于裁剪窗之外的物标以及部分位于裁剪窗之内的物标的位于裁剪窗之外的部分裁剪掉,只保留位于裁剪窗之内的部分,然后再将物标载入内存位图,最后通过内存位图的方式显示到屏幕上,从而大大减少了载入内存的数据量,提高了电子海图的显示速度。本专利除了计算屏幕四角对应的二维电子海图四至位置,筛选掉大量暂时不绘制海洋要素外,只绘制屏幕可见区域内容,大幅度减少了数据量,提高了电子海图显示效率;同时还利用多线程对二维电子海图进行二重切分,首先根据海图要素显示优先级对海图要素数据进行图层切分,然后各个海图要素图层线程使用4个子线程根据要素数据位置,并按照四象限对切分出来的海图要素数据再次进行区域切分,各海图要素图层线程中4个子线程独立绘制切分出来的1/4海图要素图层数据,4个1/4海图要素图层绘制结束后,各海图要素图层线程将4个1/4海图要素图层合并成完整的各自海图要素图层图像,最后主线程将各完整海图要素图层图像合并成一个完整的二维电子海图;另外,各个子线程利用双缓冲机制以及控制算法,在二维电子海图不发生变化的情况下,实现二维电子海图只绘制一次功能,只有在二维电子海图显示范围发生变化有绘图事件产生时(鼠标按压、移动事件等)才触发二维电子海图重新绘制操作,解决实时不停地绘制二维电子海图海洋要素问题,达到提高二维电子海图显示效率目的。本专利与专利cn104778024b的显示流程与方法存在本质不同。

4、与专利cn101908202b “一种电子海图的快速显示方法”的技术对比;

5、1、专利cn101908202b采取内存位图策略,避免了移动过程中持续重绘,加快了海图移动速度;基于双缓冲池策略,在海图缩放操作过程中,可快速调用新海图,提高显示速度。本专利除了采用双缓冲机制外,同时还利用多线程对二维电子海图进行二重切分,首先根据海图要素显示优先级对海图要素数据进行图层切分,然后各个海图要素图层线程使用4个子线程根据要素数据位置,并按照四象限对切分出来的海图要素数据再次进行区域切分,各海图要素图层线程中4个子线程独立绘制切分出来的1/4海图要素图层数据,4个1/4海图要素图层绘制结束后,各海图要素图层线程将4个1/4海图要素图层合并成完整的各自海图要素图层图像,最后主线程将各完整海图要素图层图像合并成一个完整的二维电子海图,与专利cn101908202b的显示流程与方法存在显著不同。


技术实现思路

1、为解决上述技术问题,本专利技术提出了一种提高二维电子海图显示效率的方法,有效解决了实时不停地绘制二维电子海图海洋要素问题,达到提高二维电子海图显示效率目的。

2、为实现上述目的,本专利技术采取的技术方案是:

3、一种提高二维电子海图显示效率的方法,包括如下步骤:

4、步骤一:主线程中获取各海洋要素数据及其类型、类别与显示优先级信息,然后主线程中初始化各海洋要素图层线程,海洋要素图层子线程中初始化各自绘制的海图要素图层,设置背景透明;

5、步骤二:各海洋要素图层线程按叠放次序与显示优先级对海洋要素各类型数据进行切分,各海洋要素图层线程独立绘制切分出来的海洋要素数据;

6、步骤三:计算显示屏幕四角对应的二维电子海图四至范围,筛选掉大量暂时不绘制的海洋要素,只绘制屏幕可见区域内容;

7、步骤四:4个子线程对各海洋要素图层线程切分出来的海图要素图层再次进行2x2切分,各海图要素图层中4个子线程独立绘制切分出来的海洋要素数据,通过各海图要素数据经纬度位置点计算所在子线程编号 threadid,既而分配给对应子线程进行绘制渲染;

8、步骤五:各子线程通过二级缓存,在二维电子海图显示范围不发生变化的情况下,实现各二维电子海图要素图层只绘制一次功能,只有在电子海图显示范围发生变化或有绘图事件产生时,才触发二维电子海图重新绘制操作;

9、步骤六:各海图要素图层线程对四个子线程独立绘制切分出来的海洋要素数据二级缓存图像进行拼接,拼接成完整的海图要素图层图像;

10、步骤七:主线程中对各海图要素图层线程拼接后的完整海图要素图层图像进行叠加合并,合并成完整的二维电子海图图像;

11、步骤八:主线程监控二维电子海图显示范围变化与绘图事件,触发电子海图重新绘制操作后,调用各子线程绘制对应的海图要素图层,然后对绘制结束的海图要素图层进行拼接与叠加合并。

12、作为本专利技术的优选技术方案:步骤三计算二维电子海图四至范围:

13、屏幕宽 w,高 h,以屏幕左上角坐标为原点,屏幕左上角屏幕坐标为(0,0),屏幕右上角屏幕坐标为( w,0),屏幕左下角屏幕坐标为(0, h),屏幕右下角屏幕坐标为( w, h),

14、计算屏幕四角屏幕坐标对应的二维电子海图四至位置,屏幕左上角海图坐标为( lon_left, lat_top),屏幕右上角屏幕坐标为( lon_right, lat_top),屏幕左下角屏幕坐标为( lon_left, lat_bottom),屏幕右下角屏幕坐标为( lon_right, lat_bottom),二维电子海图显示区域,经度范围为,纬度范围为,其他暂时不上显区域暂时过滤掉,在需要显示时进行绘制。

15、作为本专利技术的优选技术方案:步骤四通过各海图要素数据经纬度位置点计算所在子线程编号 threadid,既而分配给对应子线程进行绘制渲染,

16、计算海图要素在经度方向上的索引 i,

17、(1)

18、其中, 本文档来自技高网...

【技术保护点】

1.一种提高二维电子海图显示效率的方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种提高二维电子海图显示效率的方法,其特征在于,步骤三计算二维电子海图四至范围:

3.根据权利要求1所述的一种提高二维电子海图显示效率的方法,其特征在于,步骤四通过各海图要素数据经纬度位置点计算所在子线程编号threadID,既而分配给对应子线程进行绘制渲染,

【技术特征摘要】

1.一种提高二维电子海图显示效率的方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种提高二维电子海图显示效率的方法,其特征在于,步骤三计算二维电子海图四至范围:

【专利技术属性】
技术研发人员:费玮玮鲍健黄小毛杨广杨晓亮刘爽侯伟宁
申请(专利权)人:中科星图深海科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1