1 GIS及其控件简介
地理信息系统(geographic information system,GIS)是整个地球或部分区域的资源环境在计算机中的缩影,是反映人们赖以生存的现实世界的现状与变迁的各类空间数据及描述这些空间数据特征的属性,是在计算机软件和硬件的支持下,以一定的格式输入、存储、检索、显示和综合分析应用的技术系统。
GIS的基本功能包括空间数据输入、数据处理、数据存储与组织、空间查询与分析、图形与交互显示等。MapX是基于ActiveX技术的可编程组件,是在MapInfo公司为Microsoft Office开发的可视化地图组件DataMap的基础上推出的。它提供了真正的对象联接与嵌入控件,能够同标准的编程语言,如delphi,VB,VC++等结合进行开发。MapX具有如下特点:
(1)按图层组织计算机地图,可以与数据库中的图表实现真正的交融。
(2)使用的图层为矢量图层,可以进行无限的放大或缩小。
(3)采用组件技术,缩短程序开发周期。MapX可以脱离MapInfo平台运行,并且提供了一个流线化的对象模型,大量的方法和事件,高效的属性页和默认值,以及其他向导,以此来帮助简化应用开发。
该系统利用VC++编译器进行编程,在整个开发过程中,根据具体功能要求,采用了基于组件技术的二次开发,在本系统设计中,二次开发主要是通过与MapX控件的集成,将电子地图功能嵌入到本系统中。
2 系统设计
2.1 总体设计
“通信指挥网上训练系统”是以总队指挥自动化信息网为平台,为各级领导机关提供相关通信信息及通信人员训练服务而建立的通信训练平台。系统包含了人员、信息管理、模拟训练、指挥辅助决策、信息综合网络发布等子系统。系统总体设计图如图1所示。其中,模拟训练子系统为核心部分,采用VC++与MapX相结合进行二次开发,内容主要包括军事标图、训练指定想定作业、创建新的想定作业、数据库操作等几大部分。在此重点对这一子系统进行设计分析。
2.2 主要功能模块设计
2.2.1 用户信息管理模块
负责用户权限管理、用户信息管理等业务。系统权限层次划分为参谋、高级参谋、专家、系统管理员。
(1)参谋。为权限最低用户,也是该系统的主要服务对象,通信人员均可以通过网络申请成为参谋,以用户名和警官证号双重登陆后进行个人信息修改、资料检索、学习案例、训练等。只可以查看自身信息。
(2)高级参谋。通信部门的领导登陆可以申请成为高级参谋,登陆后在进行学习、训练的同时,还可以查看各参谋的信息,并对各参谋的训练效果进行评价。
(3)专家。由系统管理员任命生效,一名专家可以参与多个参谋和高级参谋的指挥训练任务,专家的权限在于给所负责参谋的训练进行评判。
(4)系统管理员。为系统最高权限用户,负责高级参谋和专家的任命工作,以及数据库的全面维护管理。同时可以根据需要对各用户权限进行进一步划分。2.2.2 军事标图模块
由于军用地图的绘制要求精度高,保密级别高,不允许未经上级批准的单位和个人擅自制作军用地图。因此,对军用电子地图大都是进行二次开发,以满足训练和作战等需要。
该模块负责作战区域和行动路线的军事标图,标图的目的是把信息用可视化的形式在地图上显示出来,以方便从地图上观测各种数据,结合所选择的通信装备进行数字化标图,给作战人员一种直观的印象。在标图的过程中,可以实现重点部分的放大或缩小,实现通信指挥训练过程中图上基本作业功能,以达到提高受训人员识图用图能力的目的。
MapX在VC++中实现标图主要包括电子地图功能的嵌入以及根据实际需要完成的各项应用功能。
(1)Project>Ad To Project>Files,选择MapX.cpp和MapX.h(即将MapX支持类库加入工程文件)。这2个文件包含用于对MapX控件进行访问的类定义和方法实现。
(2)定义一个CmapX对象:
(3)声明一个常量:
(4)对象实例的创建。将(1)中两文件加入工程后,用视图类的构造函数声明全局变量,并在响应WM_CREATE消息的OnCreate()函数创建地图对象,代码如下:
(5)图形工具。包含实现图形的移动、放大、缩小、居中和地图的编辑等功能,只需设定MapX对象的CurrentTool属性即可,具体可调用以下函数来实现。
2.2.3 专家评判模块
在对通信指挥人员的训练结果进行评分时还要负责对其长期训练效果做出客观评价。对于指定想定模块的训练由系统本身设定的正确答案对训练人员进行评分,对于新的想定模块的训练由网上的专家进行评判。
3 数据库设计
数据库在一个系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时合理的数据库结构也将有利于程序的实现。本系统采用SQLServer2005作为后台数据库管理系统。如何实现对数据库的访问是系统设计的重中之重。本系统采用ADO数据库访问技术,以实现对数据库的设置操作和实时访问。由于在默认的情况下,VC++不支持ADO对象,所以在通过ADO对象访问数据库时需要将ADO库文件导入到工程中。导入代码为:#import” c:\ProgramFiles\Common Files\System\ado\msado15.dll”no_namespace rename ( “ EoF”,“ adoEOF”)rename(“BOF”“ad-oBOF”)。
4 结语
在此从基于B/S结构的Web技术研究出发,完成了通信指挥训练系统的设计和实现。采用B/S模式避免了客户端复杂的开发过程,提高了系统的整体开发效率,系统的可维护性和可扩展性好。根据实际情况,采用了基于GIS的开发平台,不仅满足了通信人员日常的基本训练需求,还为处突、反恐、执行重大军事任务提供了一个经验平台。
该设计采用了B/S模式代替传统的C/S模式,提高了系统的整体性能和开发效率;在Visual C++等编程工具开发的应用程序中,以组件的形式直接将GIS功能控件MapX嵌入其中,实现了地理信息系统的各类功能。