APP下载

支持自定义图标库的态势处理系统构建方法*

2011-06-06朱利超徐君鹏

舰船电子工程 2011年10期
关键词:电子地图信息库图标

朱利超 徐君鹏

(海装装备采购中心 北京 100071)

1 引言

在地理信息系统(GIS)的基础上,对仿真环境和仿真实体信息进行图形化、形象化和逼真化显示,便于用户了解、分析、判断仿真态势与地理环境,配合统计、分析、评估系统,验证模拟仿真方案的合理性,组织指挥和实施各种技术保障。因此,态势处理系统也是基于HLA的仿真系统的重要组成部分。

MapX是MapInfo公司提供的基于ActiveX技术的可编程GIS控件产品,支持绝大多数主流集成开发环境和程序设计语言进行二次开发,便于用户在自己的应用中集成地图功能[1]。因此,本文应用面向对象的设计思想,对二维态势显示系统进行了模块化的功能设计,最后在VC++平台上基于MapX进行了系统软件开发,讨论了系统实现中的若干关键技术。

2 系统结构

图1 态势处理系统结构

本文中的二维态势显示系统采用了模块化的结构设计,整个系统分为图标库、脚本处理模块、地理信息库、图标处理模块、态势显示模块、数据处理模块和记录回放模块七个子模块。系统的结构如图1所示。

本文设计的二维态势显示系统可以作为一个联邦成员加入到分布式仿真联邦执行当中,并且可以在用户交互之后进行整个交互过程的重现。系统利用地理信息库为各仿真实体提供一个一致的可视化仿真战场空间。系统通过仿真脚本文件从仿真联邦的对象模型表(FOM)中订购需要的态势信息,如实体的类型,位置和姿态等,并在仿真过程中通过MAK RTI实时更新这些态势信息,并以对应的图标的位置变化和图形变化对态势进行可视化表现。系统还可以根据记录下来的仿真信息,进行仿真的全过程回放。

3 模块功能描述

3.1 地理信息库

地理信息库存储仿真所需的地理信息,地理信息实际上是以一定的地理空间拓扑结构建立的空间数据模型和各空间数据之间的关系[2]。本系统采用MapInfo制作仿真战场对应的电子地图(电子海图),并按照一定的规则进行组织和存储,构成供态势显示系统使用的仿真战场地理信息库。

3.2 图标库

图标库存放各仿真实体和事件对应的图标。在各种具体系统应用中,自定义的图标设计往往是以现行的标准图标为基础并进行适当的修改,能直观形象地表现实体及行动,使之既符合用户的习惯,又易于理解。

3.3 脚本处理模块

脚本处理模块的功能是根据某次仿真的脚本文件,对FOM中的信息进行裁剪,根据本次仿真所需要显示的具体内容,声明具体的订购关系,根据所订购的实体和交互类型在仿真实体和事件与图标之间建立映射关系。此外,该模块还需要在地理信息库中检索、提取仿真所需的电子地图(海图)供显示用。

3.4 数据采集模块

该模块的功能是使二维态势显示系统加入仿真联邦,并且由于在脚本配置模块中声明了订购关系,所以数据采集模块还可以通过RTI获得所订购的对象类实例的属性以及交互类实例的参数更新,为实时态势显示和仿真过程记录提供数据源。

3.5 图标处理模块

图标处理模块调用脚本处理模块获得仿真实体和事件与图标之间建立映射关系,从图标库中提取相应的图标,进一步设置图标的颜色、大小、位置、旋转等信息,并且在仿真过程中,图标处理模块通过数据采集模块获得的数据更新这些信息。

3.6 态势显示模块

态势显示模块的功能是显示仿真战场的电子地图,将图标附加到电子地图之上,随着仿真进程的推进,实时显示仿真实体的运动轨迹,通过图标的增加、删减、颜色变更等变化放映仿真实体的状态更新和仿真事件的发生。

3.7 记录回放模块

记录回放模块记录数据采集模块获得的仿真数据,以及表示各种用户操作的代码,存储为XML格式的文件,在回放时调用该文件和图标处理模块重建整个仿真过程,并通过态势显示模块演示此过程。

4 自定义图标库的构建

图标在MapX中可以由点符号图元表示,MapX支持位图、矢量和TureType字体三种类型的点符号图元,但是位图和矢量点符号图元无法实现旋转和缩放功能[3],因此,考虑利用TrueType字体编辑工具,参照标图相关资料进行规范绘制,将同类图标的TrueType字体符号存放在同一字体文件中,每一个字体文件对应一个图标库。

本文采用CorelDraw软件绘制基本图标图形,将每个图标对应的字体对象使用焊接或者组合工具合并为单一对象,所有对象的合并操作完成后,导出为字体文件(如 MilitarySymbol.ttf),完成基本的图标字体制作。由于CorelDraw直接输出的字体一般比较乱,还需要使用Font Creator软件对制作好的字体文件进行大小和间距的调整,以及进行统一编码和发布注册,从而构建一个完备的图标库。Font Creator编辑图标的界面如图2所示。

系统调用图标库时只需将对应的字体文件名称以及图标的字符编码传递给MapX,利用MapX内部封装好的函数就可以将所选择的图标符号在地图图层上以点图元的形式显示出来。

图2 图标编辑界面

5 图标动态显示

利用MapX显示仿真战场的电子地图,首先需要进应用MapInfo行电子地图的制作,一般要经历四个步骤:获取栅格图、配准栅格图、地图图层化和地理编码[4],由于本系统不需要实现地图查询,所以只需要完成前三个步骤,即可生成图层化的电子地图。

MapInfo制作的地图是由多个文件组成,分别表示地图的空间数据和属性数据,两者之间通过一定的索引机制联系起来。如果需要用MapX编程显示制作好的电子地图,还要先利用其自带的GeoManager组件针对电子地图生成一个.gst文件,.gst文件包含若干用来通知MapX显示哪些图层以及如何显示的元数据键值。MapX的内部函数只需调用.gst文件的名称,即可显示出电子地图。此外,MapX还必须在调入的电子地图之上创建一个动态图层,才能实现表示图标的点符号图元的运动。

6 坐标转换

由于本文所设计的态势处理系统需要应用到分布式交互仿真中,按照现行的分布式交互仿真标准、位置和姿态数据一般采用地心坐标(Geocentric)表示[5],而 MapX中采用大地坐标系(Geodetic),因此,需要如式(1)所示实现地心坐标系向大地坐标系的转换[6]。

式(1)中,(x,y,z)为某点的地心坐标,其对应的大地坐标为(l,b,h),N为卯酉圈的曲率半径,e为地球参考椭球的第一偏心率。迭代求解b时,其初值b0的取值如式(2)所示

7 结语

本文利用MapX组件将地理信息融入到了仿真系统之中,设计和实现了一个面向分布式仿真的态势处理系统,该系统支持自定义图标库,可以直观、实时、准确、动态地显示各仿真实体的运动和其他状态,系统界面如图3所示。

图3 二维态势显示系统界面

本文所给出的态势处理系统及其构建方法,能够提高应用于分布式交互仿真的态势处理系统的开发效率,为实现仿真过程的交互性和可视化提供了一条快捷、有效的技术途径。目前,该系统已经作为一个联邦成员,应用到某型舰船的分布式交互仿真训练系统中。

[1]朱俊岭,崔平远,陈远舟.MapX在路径规划系统中的应用[J].计算机工程与设计,2006,27(8):1375~1378

[2]徐丙立,龚建华,林晖,等.地理信息系统与作战仿真系统的集成[J].系统仿真学报,2005,17(5):1149~1167

[3]尹旭日,张武军.VC++环境下 MapX的开发技术[M].北京:冶金工业出版社,2009

[4]李春宇,周新力,吕万里,等.基于 MapInfo和 MapX的导航电子地图实现[J].舰船电子工程,2009,29(3):73~75

[5]李亚臣,胡健,黎远忠,等.基于Vega Prime的航天器视景仿真中的多坐标系问题[J].系统仿真学报,2007,19(3):575~578

[6]靳海亮,刘慧杰,苗保亮.基于 MapX控件的GIS应用软件基本功能二次开发[J].计算机与数字工程,2011,39(1)

[7]周云,华祖耀,黄柯棣.DIS中的坐标系统与坐标转换[J].计算机仿真,2000,17(6):75~77

[8]唐良佐.基于Mapx的态势综合分析系统[J].计算机与数字工程,2009,37(7)

猜你喜欢

电子地图信息库图标
轨道交通线网车载电子地图传输方案研究
基于灵活编组的互联互通车载电子地图设计及动态加载
浅谈电子地图在高中地理教学中的应用
Android手机上那些好看的第三方图标包
借助BIM构建动态造价信息库的新思路
图标
城市交通旅游电子地图的研究与应用分析
基于普元EOS平台的信息库的设计与实现
中国风图标设计
有意思的厕所图标