基于MapXtreme的人防电子地图系统设计与实现
扫描二维码
随时随地手机看文章
1 基于MapXtreme的人防电子地图系统设计
1.1 系统总体架构
通过对系统的背景和设计原则的分析,考虑到要充分利用客户现有的网络环境,达到支持网络共享和并发控制,允许多个用户同时进行相关操作的需求,系统采用基于C/S与B/S混合的总体架构方案。
系统由表示层、业务层和数据层组成。针对地理空间数据量大、种类多,且用户并发请求多,网络传输量大的特点[3],将系统组网方式分为内部的局域网和连接外部用户的外网。内网负责处理业务逻辑和生成包含地图数据的HTML代码。外网负责对外发布地理信息服务,实现内网与外网在物理上的隔离。其中,地图数据和应用程序都放在服务器端,客户端不需要安装GIS软件,使用浏览器即可获得GIS应用功能,这使得GIS应用不受地域和终端类型的限制。业务层采用MapXtreme2004.NET作为应用服务器,专门负责生成和打包在网络上传输的地图信息。当MapXtreme应用服务器运行后,若接收到客户端的请求,由MapXtreme应用服务器将矢量地图通过MapX引擎转换成GIF或JPG格式的栅格图像,并生成包含图像数据的HTML代码,使用户可以通过WWW浏览器访问地图数据。由于传递到浏览器端的是一幅经过压缩的栅格地图,而真正的矢量地图和属性数据仍保留在服务器端,因此减少了网络传输负担,同时降低了原始数据被盗用的可能。
1.2 系统数据库设计
系统数据包括空间数据和属性数据,它们通过唯一的ID号关联。本系统对数据的管理采用文件系统和数据库相结合的混合管理方式,其中地图数据采用文件管理策略,即每一类型的地图数据都存放在一个图层文件中,对应地图对象的属性数据和人防工程数据则由关系数据库统一管理。
1.2.1 空间数据库
系统选择MapInfo格式的矢量图作为地图数据,其中属性数据存储在关系数据库的若干属性表中,而空间数据则以MapInfo自定义模式保存于若干文件中。
本设计将人防业务相关的空间数据分为图层类和专题图类:
(1) 图层类。本系统将具有相同空间几何特征和属性特征的空间对象的集合,如河流、公路、行政区域、居民地等分别存储在不同的图层中。同一个层上的多个空间地物共享同一个属性结构,同一个图层中的所有对象共享相同的颜色、符号、线型等特性。
(2) 专题图类。某市人防电子地图系统涉及到“来袭敌情判断图”、“预防空袭部署图”、“离城人口疏散图”、“留城人员隐蔽图”、“通信警报保障图”、“物资保障计划图”和“人防工程保障图”7个预案专题图。每个专题图由多个图层构建而成。系统共有56个自定义图层数据,其中某市的地图(包括道路、湖泊等基础信息)是这7个预案专题图共享的,其余的人防业务相关图层按照其所包含的地物类别来分层组织。
1.2.2 属性数据库
属性数据库主要包括两类属性表,一类是对应于地图实体的可地图化的属性表,用于存储地图实体的属性。本系主要设计了路段属性表、连接点属性表、行政区划属性表、土地利用属性表、铁路属性表等。另一类是非地图化的常规的属性表,本系统主要有用户表、人防设施类型表、人防工程类型表、人防工程表、人防工程维修表、人防设备类型表、人防设备表、人防设备维修表、保护对象类型表、保护对象表和预案数据表等,由Oracle 9i进行管理和维护。
1.3 系统功能设计
根据系统的业务要求和设计原则,某市人防电子地图系统由人防远程子系统和人防本地子系统组成,远程子系统用B/S模式实现,本地子系统用C/S模式实现。系统功能模块设计如图1所示。
主要功能模块如下:
(1) 图形变换与图层管理:包括专题地图切换、地图缩放、鹰眼图例管理和图层添加删除等。此模块提供①缩放、平移等几何变换功能,电子地图可以按照任意比例进行放大、缩小、漫游,使用户能够详细地查看空间目标及目标的周围情况;②鹰眼功能,根据电子地图的缩放比例,将当前区域在整幅地图中所处的位置显示在鹰眼窗口,使用户能够把握全局;③图层、标注和图例的显示控制功能,使得用户能够专注于当前关心的目标,并且可以让显示的图形更加简洁清晰。
(2) 空间信息查询:包括空间量算、坐标查询和地物查询功能。空间量算包含距离查询和面积查询功能,其中距离查询能够得到当前地图任意连续点构成的折线的总长度,面积查询则能够得到当前地图任意多边形的面积。空间量算功能使用户能够快捷准确地得到空袭后受灾面积的大小以及救助人员及设施离受灾地区的距离。坐标查询功能使用户能够查询空间地理坐标位置。地物查询根据用户鼠标在地图上选中的实体,将与该实体相关的属性信息(如名称、位置等)及多媒体信息(如图片、音频和视频等)展现给用户,能清楚查询显示任何一处人防要素及其周边环境的状况。
(3) 空间分析模块:此模块包括最短路径规划和缓冲区分析功能。最短路径分析功能根据用户输入的起点及终点位置的名称,规划出了两者之间连通的1条最短路径,系统将在地图上予以展现,还可以根据道路状况等约束条件优化其路径,从而达到战时快速疏散、救护、维修、消防和集结等目的。缓冲区分析功能则根据用户输入的点状或线状地物名称查询其周围指定半径范围内的地物,并将符合条件的地物在地图上突出显示。
(4) 地图编辑模块:包括点状、线状和面状地物的添加、删除功能。利用GIS数据编辑技术,对人防工程、重点保护目标、人防指挥所等人防要素进行增加、删除、修改,该模块相当于一个GIS数据维护平台。
(5) 人防预案模块:包括预案查询、预案管理和预案评估。将所有人防预案集成到一个统一的平台,方便战时或演习时调用。
(6) 专题制图:用于制作专题地图和电子沙盘,包括二维数据网格化、三角网等值线嵌入、地形图三维显示、地形图栅格图像生成、预案套图制作与查询。
2 人防系统的关键问题及实现
2.1 最短路径查询及其优化
根据某市人防电子地图系统的实际需求,最短路径查询有时要求距离最短、有时要求时间最短,且道路或桥梁有可能被炸毁而不能通行,这使得道路的正向、反向权值不是固定值,需随着应用背景的变化而更新。因此,进行最短路径分析时,若要求距离最短,则可以直接利用路段的正向、反向权值进行计算;若要求时间最短,则可以利用路段的正向、反向权值,并结合道路的平均速度进行计算。然而,无论按时间还是距离查询最短路径,其实还是一个单源单目问题,可以使用最经典的Dijkstra算法[4]并加以优化。
在本系统中,首先将现实中的道路网络实体抽象化为网络图论理论中的网络拓扑图,交叉路口为结点,道路为边,道路长度为权值;其次,获取起始点名与终止点名,并对输入的始末点名,通过在道路结点表中查询的点的名称,得到始末点的结点NODE_ID;再次,将道路结点集与道路弧段集作为Dijkstra算法中的参数,计算从出发点到目的点的最短路径的结点序列;最后,将返回结点序列即最佳路径在电子地图上高亮显示。
在最短路径查询的实际应用中,本系统从以下两方面进行了优化:
(1) 初始化始末点时,若该点不是道路结点,则一般的处理是遍历道路结点表,查询离该地物点最近的道路结点作为起始点。由于道路结点数据量太大,这种方法不仅效率低,且对于某些特殊的地物点会出错。比如某点A,若离它最近的道路较长,则该道路的端点离A就比较远,继而选择的是另一条端点离A近的道路,而实际上该选择结果并不是离A最近的道路。为了解决这两个问题,系统在初始化始末点时,不是以道路结点为参照,而是将道路层单独提练出来。设定某个距离值为半径画圆,若该圆与某条道路有交点,则说明此道路为离该点最近的道路,从该点向道路作垂线,即为该点的第1条路线;若没有交点,则按某个设定值继续扩大半径搜索,直至查询到最近道路为止。这种优化方法,一方面解决了某些对特殊地物点进行最短路径查询时可能出现的错误;另一方面也提高了查询的效率。在实际情况中,道路结点数据量大,而采用优化方法后只需进行几次循环查找即可。
(2) 由于每次做路径查询时都需要将所有道路结点和道路弧段的集合构建道路拓扑网络,但道路网络的数据量非常大,而且该拓扑关系是不会改变的,所以原有的最短路径查询功能在构建路网拓扑关系时做了大量重复的工作。为提高最短路径查询过程的效率,在系统初始化过程中,将所有道路节点的拓扑关系缓冲到服务器端内存中,每次做路径查询时先检查缓存中是否已经存在生成的路网拓扑信息,避免了道路拓扑网络的重复生成。优化后的最短路径查询的工作流程如图2所示。
本文将系统重构为基于上述优化方法的电子地图系统,并选择8对相同的始末结点进行最短路径查询,并与使用传统方法的系统进行比较测试,最终得到如图3所示的性能测试对比图。
从图中可以看出,未经优化的电子地图系统响应时间比优化后的系统响应时间长,可见该优化在当前实验环境下,对系统性能的提升有较大的帮助。
2.2 基于MapXtreme的鹰眼技术
鹰眼是除了主视图外的一个小视图窗口,用来显示全图,并用1个矩形表示大图的地图边界。点击鹰眼窗口时,地图自动定位到相应位置,当地图视图(包括缩放比例和中心)发生变化时,鹰眼上的导航矩形框相应变化,以指示用户当前所处的位置。
鹰眼的实现思路:在同一页面表单上放置2个MapControl控件,分别为地图主窗口(mainMapControl)和鹰眼窗口(overviewMapControl),地图主窗口用于显示实际的地图,鹰眼窗口则需要将地图按合适的比例尺显示,然后在鹰眼窗口上创建1个图层,在该图层上添加1个矩形对象FeatureGeometry,该矩形的大小随着主图边界而变化。由于两个窗口的大小不同,需要经过1次比例转换,因此首先定义1个setView()方法,该方法用于实现地图数据自适应任意大小地图窗口。当地图主窗口中的图形被缩放或者平移之后,在鹰眼窗口已有图层中加入1个临时层,在临时层上动态生成1个红色矩形,显示地图主窗口中显示的图形在整体地图中所处的位置。
系统中鹰眼功能的具体实现步骤如下:(1)判断用户是否对主地图窗口进行了缩放或平移操作,若没有变换则鹰眼窗口内容不变,若有变换则获取主地图窗口显示的地图范围。然后创建1个矩形对象并设置其颜色和宽度属性,创建窗口样式并设置样式属性;(2)再判断鹰眼窗口的图层中是否已经存在临时图层,若存在则先清空临时图层中的所有对象;若不存在则创建1个临时图层并将临时图层加入到鹰眼窗口图层中; (3)将矩形对象插入临时图层。到此系统即完成了鹰眼窗口的地图视图变换。
2.3 人防系统的安全保证
由于本系统应用于市人防办,涉及国家安全信息,对数据安全性非常敏感,因此使用了多种安全机制保障系统的安全。
(1) 表单验证和Session认证机制[5]相结合
本系统采用表单验证和Session认证机制相结合的方式加强登录过程的身份认证,即由用户以表单形式向服务器发送登录凭证,如果用户通过了服务器端的身份验证,系统的权限管理将会给用户授予一定的权限标志信息,通过Session对象跟踪本次登录的整个会话生存周期;如果用户没有通过身份验证,客户端将重定向到指定的页面。Session对象用于存储特定的用户会话所需的信息,从1个用户开始访问某个特定的主页起,到用户离开为止。服务器可以分配给每个用户1个Session,以存储特定的用户信息,包括用户名、用户ID等。如果用户没有经过登录而直接进入页面,则Session中存放的用户信息无效,程序将重定位到用户登录界面,以防止通过网页地址而绕过登录控制的企图。
(2) 基于角色的访问控制
为了保证系统的访问安全,防止非法用户进入系统及合法用户对系统资源的非法使用,本系统采用基于角色的访问控制模型RBAC(Role Based Access Control)来实现。RBAC的基本思想[6]是:在用户和访问权限之间引入角色的概念,将用户和角色联系起来,通过对角色的授权来控制用户对系统资源的访问。根据人防电子地图系统的具体应用需求,系统定义了3种角色:系统管理员、通信指挥用户和普通用户。系统管理员负责管理维护系统,没有任何业务权限,其主要权限有添加、删除、修改用户信息,授予用户权限和管理日志等;通信指挥用户除了具有对地图数据的操作权限,包括地图的查询、浏览等以外,还有一个特殊的权限——编辑地图,与人防业务相关的信息都交由这类角色的用户负责;普通用户则只拥有浏览和查询一些指定专题地图的权限。系统将根据登录用户的角色加载不同的功能模块。
此外,本系统还通过数据库身份验证模式和防SQL注入攻击保证了数据库的安全;使用SSL机制对客户端和服务器之间发送的消息进行加密和解密,保证系统数据通信的安全;通过采用完全备份、增量备份、系统备份3种备份方式,定期对空间数据进行备份,保证数据和使用对象都不崩溃。
3 系统实例及运行效果
人防电子地图系统采用MapInfo公司推出的MapXtreme2004组件式GIS平台作为实现地理信息存储、显示、操作等功能的二次开发平台, 以Visual Studio 2003
.net为开发工具,采用Oracle 9i作为数据库管理系统,在此基础上实现了具有GIS特点和功能的某市人防电子地图系统。图4是该系统应用于某市时系统最短路径查询的功能界面。
人防电子地图系统是现代化国防建设的核心应用系统之一,其研发涉及地理信息系统和计算机科学领域的众多应用技术,是一项较大规模的软件开发工程。该系统不仅实现了电子地图操作的基本功能以及多种方式的信息查询,而且专门针对某市“防空袭预案”中对人口疏散、空袭后果消除等方面的要求,设计了空间量算、最短路径规划和缓冲区分析等实用功能,另外还集成了人防工程信息管理系统。
目前,该系统已经在某市人防办得到了实际应用。通过用户反馈表明,该系统具有功能强大、实时性强、安全可靠、易于使用等优点,可以进行人防工程信息管理、应急指挥调度、预案管理和组织演练等,不但能够满足该市在战时组织防空袭指挥的需求,也能为平时防灾、救灾等城市应急管理工作提供技术平台和决策支持。