摘要: 结合电力部门消防设备管理的特点,详细介绍在 Visual Basic环境下利用 GeoMa p 为某电力部门开发的消防设备管理系统,此基础上,重点阐述该系统开发过程中的数据组织工作,并论述系统的主要功能及其实现方法。
一、 问题的提出
消防工作是电力安全生产的一个重要内容 ,随着电力部门设备和管理的现代化 ,大量新的设备、 组件、 材料被广泛的应用到电力部门消防工作当中去 ,这样 ,管理这些消防设备 ,及时有效的更新消防材料成为一项复杂的系统工程。
过去 ,对消防设备、 器材的管理基本上都采用单纯的人工管理方式 ,这种方式工作量大、 耗时长、 现势性差 ,给工作和生产带来了不便 ,已经不能适应电力部门现代化管理的需要。如果能够建立一个消防设备管理系统 ,将这些消防设备的基本信息存储到计算机上 ,让计算机协助管理人员分析和处理这些繁琐的重复性工作 ,使管理人员可以即时地了解到这些消防设备器材的信息 ,为合理有效地管理这些消防设备 ,及时迅速地更新、更换消防材料提供保障 ,为火警受理、 实力调度、 预案实施提供有力的辅助决策 ,从而为电力部门的安全生产提供良好的工作环境 ,针对这一需要 ,我们为某电力部门开发了电力消防设备管理系统 ,本文将结合该系统的开发过程 ,重点阐述了该系统中所涉及的数据组织方面的工作。
二、 系统的数据组织电力消防设备管理系统
在 Visual Basic 的开发环境下 ,以吉奥之星公司的基础模块 GeoMap 为开发平台 ,采用 GeoStar 的 dws 格式文件管理空间数据 ,采用 Microsof t Access 管理属性数据 ,空间数据和属性数据之间通过目标标识 OID 进行关联 ,如图1 所示。
1.空间数据的来源电力消防设备管理系统所配套的数据格式转换工具可将多种已有的数据格式像 ESRI 的 shp 格式、 Map Info 的 mif 格式、 AutoCAD 的 dxf 格式转化成该系统所需要的 GeoStar 的 gws格式 ,同时 ,该系统可对扫描后的地图进行交互式矢量化 ,经编辑处理后直接存储为 gws格式文件。
2. 空间数据的组织GeoMap 是 GeoStar NT 版的二次开发工具 ,由一个 OL E控件( GeoMap)和一组近 20 个 OL E自动化对象构成 ,应用于标准 Windows开发环境。
在电力消防设备管理系统中 ,反映数据组织的自动化对象有 3 种:工作区对象 (Workspace) 、 地物类对象(Feature)和层对象(Layer) 。在该系统中 ,一幅厂房的平面图的范围定义为一个工作区 ,在这个工作区范围内 ,包含了厂房平面的全部空间数据。GeoMap采用 “面向对象” 的数据模型 ,在这种模型中 ,单个的地物实体为数据组织和存储的最小基本单位 ,类型相同的地物组合在一起 ,形成地物类。相同的地物类具有一些相同的属性 ,如颜色、 绘图符号等 ,并当且仅当属于同一种几何类型 ,或是点状地物 ,或是线状地物 ,或是面状地物 ,例如 ,所有的1211 灭火器是一个地物类。为了显示、 制图和查询的方便 ,定义了逻辑层 ,例如 ,厂房的平面分布图定义为一个逻辑层。
逻辑层相当于容器的功能 ,可以被任意定义 ,而且一个逻辑层可以包含任意多个地物类 ,并且允许交叉。在电力消防设备管理系统中 ,为了制图、 查询、 显示和空间分析的方便 ,我们约定一个逻辑层只有一个地物类 ,厂房的平面分布图定义为一个地物类 ,称为底图地物类 ,同时也是一个单独的逻辑层 ,每一种消防设备定义为一个地物类 ,设计封堵部位(消防用词)定义为一个地物类 ,每个地物类都有与之对应的逻辑层 ,这样整幅图的内容抽象为以下的地物类:底图地物类、 手推式灭火器地物类、1211 灭火器地物类、 消防栓地物类、 端子箱灭火器地物类和封堵部位地物类 ,以上地物类皆为线状地物类 ,为了查询 ,显示的方便(例如 ,当查询时 ,需要只点击到一个灭火器的附近就显示它的属性) ,又由于消防设备器材和封堵部位是消防设备管理人员最为关心的地物类 ,我们又增加了与消防设备和封堵部位相对应的面状地物类。系统中空间数据的组织如图 2 所示。
假设一个 GeoMap 对象的名称为 map ,则其中的多个工作区对应一个工作区对象集合 map.Workspaces ,每个工作区对应一个工作区对象 map.Workspaces(i) ,一个工作区上的所有地物类对应该工作区的地物类对象集合 map. Workspaces (i) . Fea2tures ,每个地物类对应于该集合中一个地物类对象map. Workspaces (i) . Features (j) ,每个对象都有它自己的属性 ,方法 ,事件 ,这样 ,通过操作这些对象就可以实现对空间数据的管理。
3.属性数据的管理由于电力消防设备管理系统需要操作和处理的数据量不大 ,采用 Microsof t Access数据库管理属性数据 ,在该系统中 ,空间数据的每个工作区对应于一个Access数据库 ,数据库中的每个表对应一个地物类的属性数据。在表中 ,每条记录对应于这一地物类中的一个地物实体的属性信息。例如 ,同一个厂房内的手推式灭火器对应描述这些手推式灭火器信息的一个表 ,每个手推式灭火器的信息都是这个表中的一条记录。
4. 空间数据与属性数据的关联目标标识(OID)是惟一连接空间数据和属性数据的关键字。在电力消防设备管理系统中 ,通过OL E DB 提供者 “Micorosof t . Jet . OL EDB. 4. 0” 利用ADO数据库访问对象实现对数据库中数据的访问和操作。在 GeoMap 中 ,每个地物类对象都有一个属性DBTableName ,该属性用于连接该地物在数据库中对应的表。
例:假设 1211 灭火器地物类对象为map. Workspaces (0) . Features (1) ,其在数据库中对应的表格的名称为 “1211 灭火器信息”,这样 ,通过赋值的形式就可以实现空间数据和属性数据的关联 ,map. Workspaces (0) . Feature (1) . DBTableName=“1211 灭火器信息”,当操作(查询 ,分析)该图幅中某个 1211 灭火器的时候 ,通过数据库访问对象对表格 “1211 灭火器信息” 进行操作 ,同样 ,也可以根据属性通过表格的关联找到相应的一个空间几何对象。改系统中空间数据与属性数据的关联如图 3 所示。