基于S-57标准的电子海图的设计与实现*
2015-03-14张振华王远斌
张振华 王远斌 叶 玲
(中国电子科技集团公司第二十八研究所 南京 210007)
基于S-57标准的电子海图的设计与实现*
张振华 王远斌 叶 玲
(中国电子科技集团公司第二十八研究所 南京 210007)
论文通过介绍电子海图IHO S-57标准(数据传输标准)、IHO S-52标准(海图显示标准),并对这两套标准的数据模型、数据结构等相关内容进行深入分析,在此基础上,引出电子海图显示系统开发的关键技术。接着,通过对电子海图开发商用控件YimaEnc.ocx的SDK开发包的介绍,着重论述了电子海图显示系统的开发过程。最后,对电子海图开发过程中遇到的问题进行了总结,并指出了不足之处。以待后期进一步完善。
S-57; S-52; 电子海图; 电子海图显示与信息系统
Class Number U666
1 引言
电子海图显示与信息系统(Electronic Chart Dis-play and Information System,ECDIS),是指使用电子航海图,接收舰船的定位、测深、雷达等设备的信号,为航海人员实时提供舰船行驶状态的地理信息系统。随着电子海图技术的迅猛发展,国际海事组织(IMO)、国际海道测量组织(IHO)和国际电工委员会(IEC)协调制定了一系列电子海图的国际规范和标准:S-57海道测量数据交换标准、S-52电子海图显示标准和IEC61174 ECDIS硬件检测标准。我国已研制成功并决定正式生产和使用S-57电子海图,但缺少S-57国际标准电子海图实用的显示与信息系统[1~2]。
2 S-57标准分析
一个符合S-57标准的海图系统,意味着使用符合S-57《数字海道测量数据传输标准》的地理数据并且显示方法符合S-52 《ECDIS海图内容与显示规范》。这两个标准是IHO成立专门委员会,针对电子海图的生产及应用而开发的。
2.1 S-57标准数据模型及数据结构
2.1.1 S-57标准数据模型
该标准包括三个部分:引言、理论模型、数据模型。附有二个附录:A-物标类目,B-ENC产品规范[3]。
下面简单说明S-57的数据模型概念及其实现:
S-57的数据模型是针对真实世界的数据传输,是相关海洋测绘的真实世界物体,它将真实世界的物体定义为特征物标和空间物标的集合。
· 物标:一组可识别信息,可以具有属性,可能与其他物标相关。
· 空间物标:可能有描述信息但是一定要有几何信息。S-57数据模型的空间物标为矢量空间物标(分为:点、线、面,三种)。最常见的空间物标就是特征物标的经纬度。
· 特征物标:包含描述信息,不能包含几何信息,可以由一个或几个空间物标定位,也可以不对应空间物标。分四类:元物标,地理物标,制图物标,集合物标。
S-57数据模型,即空间物标之间的关系,采用链-结点结构,描述如图1所示。
图1 链-点拓扑结构下的数据模型
S-57标准共规定了181个通用物标类别,21个航海人员物标类别,通过196种通用类别属性和29种航海人员类别属性可定义至少6265种物标。
2.1.2 S-57标准海图数据结构解析
S-57标准海图数据结构,内容如下:
1) 一般编码规则(全部编码应遵循);
2) 元记录编码规则(对应元物标);
3) 特征记录编码规则(对应特征物标);
4) 空间记录编码规则(对应空间物标);
5) 关系编码(对应关系物标)。
海图文件的存储格式(即底层的封装标准),使用了ISO/IEC8211标准作为数据封装的标准,相关内容包括:
1) ISO/IEC 8211标准备用字符集;
2) S-57标准附录A:物标类目;
3) S-57标准附录B:产品规范。
2.2 S-52显示标准相关内容
为了与S-57标准相对应,IHO在1996年12月通过了关于电子海图内容、图标、颜色和ECDIS的相应规范《ECDIS海图内容与显示规范》,简称为IHO S-52标准[4]。
S-52标准包括两个附件,三个附录,分别如下:
1) 附件A:S-52与IMO ECDIS性能标准交叉参考表;
2) 附件B:IMO ECDIS性能标准;
3) 附录1:电子航海图更新指南;
4) 附录2:电子海图显示与信息系统色彩与符号规定;
5) 附录3:电子海图显示与信息系统相关术语集。
在此,重点介绍附录2,该规定用于制作电子海图符号以及显示电子海图,以确保系统在显示海图时是清晰明确的,包括两个主要部分的内容:表示库、色彩与符号规定。
表示库:涉及大量符号建库。
色彩与符号:包括两部分内容:
1) 点状、线状、面状符号及色彩的规定;
2) 显示信息的分类规定:根据要素信息显示的多少,分为基本显示,标准显示,全部显示三种类型。
3 电子海图显示系统的开发
本文研制开发电子海图,采用了上海意玛公司的YimaEnc商用组件作为支撑平台。在Windows XP及Windows 7操作系统上,支持Visual C++ 6.0及Visual Studio 2005,最终研制开发了符合S-57数据标准的电子海图显示与信息系统,实现了S-57电子海图数据的各种方式的显示、多幅海图的无缝拼接、晨昏朦影、水深和物标数据属性显示等多项功能。
3.1 SDK API介绍
3.1.1 工作环境
YimaEnc组件包括核心控件YimaEnc.ocx,以及7各库文件。
1) S57Attributes:是所有S-57的物标特征属性(feature attribute)的定义,包括每个属性的名称,缩略语,数据类型和枚举(enmu)或列表(list)类型的各项枚举值;
2) S57Colours:是所有S-52定义的五种颜色模式(Color Model)下的颜色列表;
3) S57LookupTable:是所有S-52物标对象显示风格规则的定义;
4) S57ObjectClasses:是所有S-57物标类(Object Class,即图层——Layer)的定义;
5) S57Symbols:是所有S-52的点物标符号定义;
6) S57ComplexLineStyles:是所有S-52的线物标循环符号定义;
7) S57Patterns:是所有S-52的面物标填充符号定义。
3.1.2 基本接口函数
1) 海图组件初始化接口函数:Boolean Init(String strWorkDir),参数为海图执行程序所在的目录,该函数只需执行一次;
2) 海图绘制器初始化:Boolean RefreshDrawer(Int32 hwnd,Int32 scrnWidth,Int32 scrnHeight,Int32 scrnOrgOffsetPoX,Int32 scrnOrgOffsetPoY),参数为需要绘制区域的窗口句柄、长、宽及X、Y轴的偏移量,该函数在海图组件初始化接口函数执行后调用,为海图绘制准备好绘制器。
3) 海图绘制函数:Boolean DrawMapsInScreen(Int32 hdc),参数为需绘制区域的窗口DC,该函数在上述两个函数执行后,即可调用,绘制区域为矩形区域。
3.2 开发过程
3.2.1 工程的建立
1) 注册YimaEnc.ocx组件,方法如下:
开始→运行:运行命令regsvr32 “YIMAENC组件所在的绝对路径”,注册成功标志如图2所示。
图2 YimaEnc.ocx控件的注册
2) Microsoft Visual Studio 2005下,新建MFC工程,选择项目→添加类→MFC→选择ActiveX控件中的MFC类,添加后,选择可用的ActiveX控件,找到YimaEnc.ocx,如图3所示。
注意:只有在YimaEnc.ocx组件注册成功后,方能找到YimaEnc Control<1.0>控件选项。
选中该控件后,点击“生成类”,即完成控件添加。
图3 添加海图控件
3.2.2 应用界面的设计
应用界面的设计,包含海图绘制显示区、标题栏区域、工具栏区域、状态栏区域、海图漫游区域、海图比例尺区域、指北针显示区域、文电显示区域等。界面布局如图4所示。
图4 海图显示界面规划图
实际效果图如图5所示。
图5 海图显示实际效果图
3.2.3 显示颜色模式的设计
通过调用接口函数void SetColorModel(Int16 colorGroupNum),显示系统为用户提供了五种S-52标准的显示模式。参数colorGroupNum为颜色枚举值,分别为白天明亮、白天反白、白天反黑、黄昏、夜晚。局部图分别如图6~图10所示。
图6 白天明亮颜色模式
图7 白天反白颜色模式
图8 白天反黑颜色模式
图9 黄昏颜色模式
3.2.4 显示物标类型的设计
通过调用接口函数void SetDisplayCategory(Int16 dspCtgry),显示系统为用户提供了三种S-52标准的显示物标类型,参数dspCtgry为类型枚举值,分别为基本、标准、全部。局部图分别如图11~图13所示。
图10 夜晚颜色模式
图11 基本显示类型
图12 标准显示类型
图13 全部显示类型
3.2.5 目标显示的设计
为了直观地观看目标位置,可以通过接入AIS、ADS-B等设备,获取目标位置信息,通过调用Boolean AddOtherVessel()、Boolean SetOtherVesselCurrentInfo()、bool SetAisTargetType()函数,添加目标信息,最终由Boolean DrawMapsInScreen(Int32 hdc)函数在海图显示区域绘制出接收到的目标。如图14所示。
图14 目标显示
3.2.6 自定义海图编辑的设计
在用户实际应用中,会有关注的目标点、隔离线、报警区域等。因此,海图的自定义编辑同样是一项不可或缺的重要功能,本系统采用贴图方法以及MicroSoft提供的图形设备接口GDI+中的Graphics类提供的DrawLine、DrawRectangle、DrawEllipse、DrawPolygon、DrawArc等方法,实现自定义的海图编辑[5~6]。并将自定义编辑数据通过用户索引保存在本端,在不同用户调用时显示各个用户关注的编辑区。实现了个性化的定制功能[7~8]。
具体绘制效果如图15所示。
图15 海图编辑效果
3.2.7 其它辅助功能的设计
YimaEnc组件功能完备,在上述功能设计的同时,笔者也开发了以下几种辅助功能,仅做简要介绍。
1) 比例尺显示:通过示意棒直观显示海图比例尺,同时数字显示当前比例尺。
2) 水深显示:对各个海域的水深值做标注。
3) 图库管理:加载*.000格式的电子海图。
4) 图层管理:对181层S-57数据标准的图层进行筛选显示。
5) 电子方位线:测量相对于某一固定点的任一位置的方位。
6) 距离测量:测量海图上任意两点之间的距离。
4 结语
本文结合S-57、S-52海图国际标准,采用商用组件YimaEnc,设计和实现了电子海图显示系统,对海图数据结构、显示标准等特征进行了分析,在开发实践基础上验证总结了电子海图开发中的关键技术[9~10]。
同时,也总结了几点有待改进及不足之处:
1) 显示界面可进一步美化。
2) 一些功能模块有待实现组件化,以降低系统复杂性。
3) 下一步可考虑实现鹰眼、多窗口显示功能。
4) 若功能需要,可进行雷达视频图像叠加显示功能的开发。
[1] The International Hydrographic Bureau.IHO S-57 IHO TRANSFER STANDARD for DIGITAL HYDROGRAPHIC DATAEdition 3.1[S].MONACO,2000:18-19.
[2] The International Hydrographic Bureau.IHO S-52 SPECIFICATIONS FOR CHART CONTENT AND DISPLAY ASPECTS OF ECDIS Edition 6.0[S].MONACO,2010:29-31.
[3] 国际海道测量组织.电子海图及其应用系统国际规范和标准(S-57篇)[M].大连:大连海事大学出版社,1999:30-33.
[4] 国际海道测量组织.电子海图及其应用系统国际规范和标准(S-52篇)[M].北京:中国船舶工业总公司船舶系统工程部,1995:15-16.
[5] 杨平,任娟.基于DGI+的高质量地图实现方法[J].北京测绘,2007(2):13-15.
[6] 刘厂,郝燕玲,高峰.国际标准电子海图系统关键技术研究[J].中国航海,2011(6):24-27.
[7] 王玉玺,李青元.电子海图显示与信息系统设计与实现[J].数字技术与应用,2010(4):47-49.
[8] 徐智,孙尧,徐继晨.电子海图漫游及放大技术研究[J].计算机工程,2000(6):11-12.
[9] 郝江凌,刘大禹,周连滨.关于S-57[J].世界海运,2005(12):47-48.
[10] 花文华,许兆新.基于组件技术的电子海图显示系统开发方法[J].应用科技,2007(4):32-33.
Design and Implementation of Electronic Chart Based on S-57 Standard
ZHANG Zhenhua WANG Yuanbin YE Ling
(The 28th Research Institute of China Electronics Technology Group Corporation,Nanjing 210007)
This paper describes the IHO S-57 standard(data transfer standard),the IHO S-52 standard(Chart Display standard),and analyzes these two sets of standard data models,data structures and other related content in depth.On this basis,the key technology leads electronic chart display system development.Then,based on the electronic chart and development of commercial YimaEnc.ocx control SDK development package introduced,the electronic chart display system development process is emphatically discussed.Finally,the paper summarizes in process of electronic chart development problems,and points out the shortcomings.
S-57,S-52,electronic charts,ECDIS
2014年8月1日,
2014年9月11日
张振华,男,硕士,工程师,研究方向:装备系统工程,电子海图。王远斌,男,硕士,工程师,研究方向:舰载雷达设备研究,数据处理。叶玲,女,硕士,工程师,研究方向:雷达显控设计,雷达信号处理。
U666
10.3969/j.issn1672-9730.2015.02.026