基于GPS船用导航仪的嵌入式电子海图数据的制作与显示
摘要:在嵌入式GPS电子海图显示系统中,通过对ArcMap地图软件进行定制等功能的二次开发,不仅可一次性录入点线面输入时所有的参数,而且在完成修改后可使用定制工具直接输出特殊的点数据文本文件、面数据文本文件和线数据文本文件。可大大减小海图文件数据的容量。
0 前言
地理信息系统(GIS) 在国民经济各领域已得到广泛地应用,ArcInfo是美国ESRI公司开发的GIS平台软件, ArcInfo凭借其强大的数据采集存储、图形编辑、信息检索、地理分析等功能广泛应用于城市规划、测绘、国土信息资源管理、海图制作等各个业。ArcInfo包括ArcMap 、ArcCatalog 和ArcToolbox 三个应用程序,其中ArcMap 提供了一体化的地图绘制、显示、编辑、输出的集成环境,具有强大的制图编辑功能。用ArcMap编制地图,首先要获得数字形式的地图数据,即对已有地图进行数字化或把地面测量中测得的点输入计算机,连接形成各类图形要素,并对数据进行符号化和地图注记的放置,然后按照应用的需要,制作出一幅完整的电子地图,ArcMap 为用户编制电子地图提供了丰富的功能和途径,目前已成为嵌入式电子海图制作领域应用最为广泛的工具之一。
1 ArcMap 软件功能的二次开发
用ArcMap制作的电子海图可直接用于工控机设计的船舶电子海图显示系统,但是在嵌入式电子海图显示系统中,为了充分发挥嵌入式处理器的优点,提高显示海图的速度与效率,需要将制作好的电子海图转换为特殊的二进制文件格式。为了方便制作非标格式嵌入式电子海图文件,可对ArcMap软件进行了定制功能的二次开发。利用该工具可在电子海图修改或制作中方便并提高输入速度,使用该工具可进行一次性将点线面输入时所有的参数录入。在完成修改后可使用该工具输出三个文本文件,分别是点数据文本文件(point.dat)、面数据文本文件(polygON.dat)、线数据文本文件(polyline.dat)。图1为定制功能中命令栏中经二次开发产生的菜单工具功能选择窗口图。
图1定制功能命令栏中经二次开发产生的的菜单工具窗口图
2 嵌入式电子海图的制作与数据导出
嵌入式电子海图的制作流程为:首先打开已有海图或新建电子海图,然后修改或创建点、线、面数据,最后保存海图文件,保存文件名为*.mxd,然后利用专用开发工具导出点数据文本文件(point.dat)、面数据文本文件(polygon.dat)、线数据文本文件(polyline.dat)共三个文件。三个文本文件再利用专用软件生成为一个二进制的文件即可写入嵌入式电子海图中的存储器,供处理器调用显示海图。图2为用ArcMap软件制作舟山海域海图时的操作窗口图。
图2 ArcMap制作中的舟山海域界面图
3 嵌入式电子海图数据的显示
嵌入式电子海图显示系统使用前需要通过计算机的超级终端拷入处理主程序及至少5个文件才能运行,5个文件是国标汉字库文件、logo图片文件、文本文件(港口介绍等)、图片文件(航行对景图片)。首次拷入文件时需对Nand flash进行格式化,以后如有图片文件更新等操作,可用DOS命令进行删除或建立。
(1)logo图片(PCX格式)的显示方法
在嵌入式电子海图显示系统中,开机后会显示一幅开机图片,由于嵌入式电子海图系统中内存较小,CPU 处理速度有限,对现有计算机流行的图片格式进行比较后,嵌入式电子海图系统中选择了PCX 图片格式作为开机显示图片。PCX 格式比BMP 格式占有存储容量小,比JPG 格式图片解压时占有CPU 资源也少得多。显示PCX 图片的过程如下:
读取 PCX 文件头(读出图片文件的大小、判断是否是PCX 图片、颜色位数等)
读调色板(读取图片的颜色信息)
解压图片数据(图片数据恢复)
设置调色板(设置嵌入式海图系统中的调色板与显示图片调色板一致)
显示开机画面
以下是标准PCX 格式图片的文件头:
typedef STruct stPcxHead
{ //PCX 文件头数据结构,共128 字节
int8 Signature; //PCX 文件标志,始终是0AH
int8 Version; //版本号
int8 Encoding; //压缩标志,始终是1,表示有限行程编码
int8 BitsPerPixel; //每像素所占位数
int16 XMin,YMin; //图像左上角坐标
int16 XMax,YMax; //图像右下角坐标
int16 HRes,VRes; //存储此PCX 文件的图形模式分辨率
int8 Palette[48]; //16 色DAC 调色板
int8 Reserved1; //保留
int8 ColorPlaneNum; //颜色平面数
int16 BytesPerLine; //每行字节数
int16 PaletteType; //DAC 调色板类型
int8 Reserved2[58]; //全为零
}stPcxHead;
图3 为嵌入式电子海图显示系统开机时的显示画面。
图3 嵌入式电子海图显示系统开机时的显示画面
(2) 嵌入式电子海图数据的显示方法
电子海图数据的实时显示是系统的核心程序。该程
嵌入式 相关文章:
- 嵌入式设计中的RFID:你该如何行动?(03-21)
- RFID标签可以在金属内部使用(08-09)
- 基于嵌入式Linux的语音识别系统硬软件设计(07-02)
- 嵌入式设计中阻抗匹配与0Ω电阻(09-02)
- 基于RFID的大型建筑施工现场管理系统的设计(10-31)
- 看射频硬件在环技术如何推动嵌入式系统设计的发展?(07-11)