(精品论文)计算机毕业设计论文_基于gis的市政设施管理摘要_第1页
(精品论文)计算机毕业设计论文_基于gis的市政设施管理摘要_第2页
(精品论文)计算机毕业设计论文_基于gis的市政设施管理摘要_第3页
(精品论文)计算机毕业设计论文_基于gis的市政设施管理摘要_第4页
(精品论文)计算机毕业设计论文_基于gis的市政设施管理摘要_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 基于基于 GISGIS 的市政设施管理系统的市政设施管理系统 摘 要 基于 GIS 的施政设施管理系统采用了以 C#为前台,SQL Server 2000 为后 台的设计方法,具体实现了电子地图的控制功能,市政设施数据管理功能和 系统维护功能。 本文详细论述了系统的设计和实现的过程,包括系统的需求分析,概念 设计,逻辑设计,应用程序设计和主程序的调试和试运行情况,最后介绍了 本系统的使用说明。在需求分析中着重介绍了系统的功能设置及系统的数据 流程图和数据字典。实体及其之间关系模型的设计即概念设计和逻辑设计也 在本文中进行了详细的说明。在系统的应用程序设计中,叙述了系统的主窗 口界面和各部分的功能模块的设计思想及实现的方法。系统程序调试章节中 叙述了在调试中遇到的问题和解决的方法。 关键词GIS; 市政设施; 管理系统 2 Management System Of Municipal Facilities Based On GIS Abstract This dissertation introduces the course of design of Management system of municipal facilities based on GIS, included of requirement analyse, conception design, logic design, application design, main program debugging and running test of main program, in the end, it introduces the using explain of the system. In the paragraph of requirement analyse, it particularly introduces general situation of system, function setting, collectivity target, structure of main system and subsystem, data flow chart and data dictionary of system. Conception design and logic design which aim at data design for this system, explain the designs of all kinds of information tables. In the part of application design, at first it introduces a software and modules for developing this system, then the main window and function of every part in the window, in the end it explains design idea and method of functions in every subsystem, there are also some code for that. The paragraph of program debugging and running describes some debugging problems and how to deal with them, and show the running status in function test. Key WordsGIS; Municipal facilities; Management system 目 录 绪绪 论论1 1 基于基于 GIS 的市政设施管理系统的需求分析的市政设施管理系统的需求分析.3 1.1 系统概况.3 1.2 系统功能说明.3 1.3 系统总体达到的目标.6 1.4 系统总体结构和子系统结构.6 1.4.1 系统总体结构6 1.4.2 子系统结构6 1.5 系统的数据流程图和数据字典.10 1.6 系统的软硬件支持环境.12 2 基于基于 GIS 的市政设施管理系统的概念设计的市政设施管理系统的概念设计.12 3 基于基于 GIS 的市政设施管理系统的逻辑设计的市政设施管理系统的逻辑设计.13 4 基于基于 GIS 的市政设施管理系统的应用程序设计的市政设施管理系统的应用程序设计.15 4.1 相关软件介绍.15 4.2 主窗口设计.16 4.3 功能模块设计.18 4.3.1 电子地图控制子系统功能模块设计18 4.3.2 电子地图显示子系统功能模块设计20 4.3.3 电子地图输出子系统功能模块设计21 4.3.4 查询子系统功能模块设计22 4.3.5 数据修改子系统功能模块设计23 4.3.6 帮助子系统功能模块设计27 4.3.7 其他功能模块设计系统维护功能模块27 5 系统程序调试与试运行情况系统程序调试与试运行情况28 6 系统的使用说明系统的使用说明35 结论结论36 致谢致谢37 主要参考文献主要参考文献37 1 外文资料翻译外文资料翻译38 1 绪 论 为了满足 GIS 对地球表面、空中和地下的若干要素空间分布和相互关系 的研究,GIS 都具有公共地理定位基础、标准化和数字化、多维结构的特点。 此外,GIS 还具有数据输入、存贮、编辑、查询、检索、显示输出的功能, 能进行各种操作运算和应用分析,并易于更新维护。GIS 对图形的编辑处理 是其用户界面的最显著的特点之一。一般来说 GIS 的特点为:空间可视化, 空间导向,空间思维。 GIS 概念的提出要追溯到二十世纪五十年代,计算机科学在测量学和地 图制图学中的应用,使人们开始有可能用电子计算机来收集,存储和处理各 种与空间和地理分布有关的图形和属性数据,并希望通过计算机对数据的分 析来直接为管理和决策服务。奥地利测绘部门首先建立了地籍数据库,而后 加拿大的测量学家首先提出了地理信息系统这一术语,并建立了世界上第一 个 GIS加拿大地理信息系统,用于自然资源的管理和规划。六十年代 IBM 和 COLORADO 也开始致力于 GIS 的研究和相关软件的开发。七十年代受计 算机软硬件发展的促进,GIS 技术朝实用化方向发展,一些发达国家将 GIS 投入实际应用,与此同时,GIS 软件得到很大的发展,成为一个引人注目的 领域。 而后的几十年中 GIS 得到了普及和推广应用,GIS 软件的发展主要在开放 GIS 的研究;关系数据库和 GIS 的结合;GIS 构件的开发和互联网成为了 GIS 新的操作平台。随着数字化信息产品的普及,GIS 已经成为了人们生产 生活中不用可缺少的工具和助手。 2 绝大多数的 GIS,主要处理二维空间数据,从这些数据中经过处理得出 的有用的信息,既可以通过图形图像的形式表达,也可以统计图,表格和各 种各 样的人机交互形式来表达。GIS 可通过获取,输入,操作,传输,可视化, 组合,查询,分析,建模和输出数据的形式为土地利用,自然资源,环境, 运输,城市设施和其它管理的规划和管理提供决策支持。目前的 GIS 的研究 和应用都处在一个高速发展的阶段,未来若干年空间数据的采集和 GIS 技术 将会有更新更大的发展,从而给城市空间数据生产和 GIS 应用增添新的活力。 卫星影像技术,数字摄影测量和空间定位技术的发展将为 GIS 的发展提供支 持,新的数据获取和更新技术的发展,新数据形式的应用,数据共享政策及 其实施,国家多尺度空间数据基础设施的建设以及数字地球和数字城市的建 设都将大大改善城市空间数据的状况。GIS 技术的将在城市发展中得到实际 应用,从而提高了 GIS 系统的应用的水平。城市 GIS 将进一步转向应用,为 城市的发展建立一整套的数字信息,将会带来极大的实际效益,GIS 也将真 正走向产业化和市场化。 本系统是基于 GIS 的市政设施管理系统,通过本系统,可以实现对市政 设施的信息化管理,提高各市政部门的协同工作,改变现有的对设施的管理 模式。系统的设计主要依据城市市政监管信息化系列标准,通过 C#平台来实 现。 3 1 基于 GIS 的市政设施管理系统的需求分析 1.1 系统概况 基于 GIS 的市政设施管理系统的功能主要是对市政设施进行查找和管理, 这是适应市政管理现代化,数字化和信息化的要求,结合已经制定的城市市 政监管信息化系列标准,可以实现市政设施管理的无纸化操作,不但提高了 工作效率,而且可以实现各个市政部门之间的协作。系统的开发使用 C#平台 和 MapObjects2.3 组件,可以对地图进行操作,实现地理位置和市政设施属 性的互动,使用户得到更直观的信息。通过在 C#中嵌入 MO2.3 便可以进行 基于 GIS 的市政设施管理系统的开发。考虑到系统的应用范围和对象,主要 实现两大关键功能,查找功能和数据修改功能,并可以通过地图标记辅助查 找定位功能。 1.2 系统功能说明 基于 GIS 的市政设施管理系统主要是为市政部门提供一个信息化的管理 方式,系统为一般用户提供了设施查找和定位功能,也为专业用户提供了数 据修改功能以实现数据信息的更新。本系统分为七大子系统:电子地图控制 子系统,电子地图显示子系统,电子地图输出子系统,查询子系统,数据修 改子系统,帮助子系统,其他(系统维护) 。 (1) 电子地图控制子系统 电子地图控制子系统主要是对电子地图进行操作,实现放大,缩小,漫 游的功能,并可以对电子地图的图层进行选择显示。 4 (2) 电子地图显示子系统 电子地图显示子系统是控制系统各个地图显示的模块,可以对所显示的 地图做标记并可以通过刷新消除标记,显示所选择的地图,鹰眼功能可以在 主地图显示范围变化时显示出主窗口地图在全比例地图下的位置和范围。 (3) 电子地图输出子系统 电子地图输出子系统是对主窗口地图窗口范围或全部范围输出,并保存 为 bmp 格式图片或通过打印机打印出来,满足不同的保存需求。 (4) 查询子系统 查询子系统是本系统中的关键功能之一,用户可以通过此功能方便的查 找到所需的设施。系统提供了两种查找方式:一个是通过选择部件或事件的 大类和小类来查找相同类别的所有设施部件或事件;另外一个是通过物理位 置查找,输入坐标和距离中心坐标点的位移来查找距离中心点某距离的所有 设施部件或所有事件,或者在结果列表中选择一个部件或者事件,再选择距 离后就可以查找得到和所选部件或事件某距离内的所有部件或事件。设置这 两种查找方式的原因是考虑到市政管理的特点,需要对相同类别的设施部件 或事件进行查看分析,而查找某个坐标点或区域的设施部件或事件以便于市 政部门分析区域事件进行设施维护和管理。 (5) 数据修改子系统 数据修改子系统也是本系统中关键功能之一,用户通过此子系统模块实 现对市政设施部件或事件及其属性的新建,修改和删除功能。部件和事件的 属性设置根据城市市政监管信息化系列标准设置,通过主界面上或菜单栏中 的数据修改功能的选项即可对数据库中的数据进行操作。新建功能:选择此 选项即可往数据库中添加新的部件或事件,在大小类别选择框中选择要新建 5 的项目类别,然后输入相关属性即可添加成功;修改功能:首先通过大小类 别下拉框选择要修改项目的类别,然后在结果列表中选择具体的部件或事件, 也可以通过坐标查找要修改的具体的部件或事件,此时属性框中显示的属性 即为修改前的属性设置,对某属性修改后点击修改按钮即可,当再次选择此 部件或事件时,属性框显示的即为修改后的属性设置;删除功能:通过大小 类别下拉框选择要删除项目的类别,然后在结果类别中选择具体的部件或事 件,同样可以通过坐标查找要修改的具体的部件或事件,点击删除按钮即删 除并刷新数据库通过结果列表显示。数据修改功能使市政设施管理系统保证 数据适时更新,准确地反映现实情况,为市政管理提供最有力的支持。 (6) 帮助子系统 GIS 系统相对来说是专业性比较强的系统,对于一般的用户使用起来可 能会觉得有困难,因此在本系统中实现了帮助功能,单机帮助功能通过帮助 文档能够为用户提供一般问题的帮助,当帮助文档不能解决所遇到的问题时, 可以通过在线帮助链接帮助网页来解决更新的帮助文档不能解决的问题。帮 助功能使初次使用的用户更容易适应本系统,并使本系统发挥很好的作用。 (7) 其他(系统维护) 系统维护功能为系统的升级和日常维护提供了便利的接口,通过系统界 面上的功能设置即可对数据库的数据进行操作而不必进入数据库中设置数据, 使系统维护的难度降低,更加平民化,便于市政部门对系统的日常维护,不 需数据库或系统的设计人员来做系统维护。系统维护提供了大小类别的维护 功能,通过系统主界面菜单栏系统维护选项即可进行维护操作,分别为大类 别中部件和事件维护,小类别中部件和事件维护。为了保证数据的正确性, 设定为系统维护后要求重启系统。 6 1.3 系统总体达到的目标 界面设计简单,美观;用户能够直接使用系统而不必接受培训;数据能 够有效地更新;数据的更新不会影响到系统运行的稳定性;系统运行的结果 能够有效反映相关数据的更新;保证系统的易维护性。 1.4 系统总体结构和子系统结构 1.4.1 系统总体结构 根据本系统的功能设置,系统的总体结构为: 基于 GIS 的 市政设 施管理 系统 电子地 图控制 子系统 电子地 图显示 子系统 电子地 图输出 子系统 查询子 系统 数据修 改子系 统 帮助子 系统 其他功 能 图 1.1 系统总体结构图 1.4.2 子系统结构 根据子系统的功能设置,电子地图控制子系统结构为: 7 电子地图控制 子系统 地图放大 地图缩小 地图漫游 地图图层选择 图 1.2 电子地图控制子系统结构图 根据子系统的功能设置,电子地图显示子系统结构为: 电子地图显示 子系统 刷新清除标记显示所选择地 图及其图层 鹰眼功能显示市政设施 部件或事件标 记 图 1.3 电子地图显示子系统结构图 根据子系统的功能设置,电子地图输出子系统结构为: 8 电子地图输出 子系统 主窗口地图输 出 主窗口地图窗 口部分输出 输出格式为. bmp 的图像文 件 从打印机输出输出格式为. bmp 的图像文 件 从打印机输出 图 1.4 电子地图输出子系统结构图 根据子系统的功能设置,查询子系统和数据修改子系统结构为: 查询子系统 和数据修改 子系统 查询子系统数据修改子 系统 通过类别查 找 通过物理位 置查找 数据添加数据修改数据删除 图 1.5 查询子系统和数据修改子系统结构图 根据子系统的功能设置,帮助子系统和其它功能部分系统结构为: 9 帮助子系统和其它功 能部分 帮助子系统其它功能 单机帮助在线帮助系统维护 图 1.6 帮助子系统和其它功能部分系统结构图 基于 GIS 系统的市政设施管理系统根据各大功能类别将系统分为七大子 系统,每个子系统由各自的功能模块组成,这样的子系统分类方式有利于系 统的设计和代码的维护,也利于实现代码模块之间的相互独立,通过一些接 口调用其它模块,也符合面向对象编程的思想。 10 1.5 系统的数据流程图和数据字典 图 1.7 数据流程图 下面列出数据字典: 表 1.1 部件数据字典 名称CityObj 如何使用查询时输出,数据修改是输入 描述CityObj=基本属性 | 基本属性+扩展属性 基本属性=标识码,名称,所属部门,所在万米单元,位 置描述,状态,现势性,初始时间,变更时间 扩展属性=源比例尺,备注 11 表 1.2 事件数据字典 名称CityEvent 何处使用查询时输出,数据修改时输入 描述CityEvent=基本属性 基本属性=代码,名称,归属部门,问题位置,所在单元网格 表 1.3 部门数据字典 名称DeptList 何处使用和部件表,事件表关联。查询时输出 描述DeptEvent=基本属性 基本属性=单位序号,单位代码,专业部门名称,单位类别 表 1.4 地区代码编码数据字典 名称LocCode 何处使用和部件表,时间表关联。查询时输出 描述LocCode=地区编码,地区名称 表 1.5 部件大小类别数据字典 名称ObjLevel 何处使用和部件表关联。查询时输出,系统维护时输入 描述ObjLevel=Obj2Code,Obj1code,Obj2Name,Obj1Name 表 1.6 事件大小类别数据字典 名称EventLevel 何处使用和事件表关联。查询时输出,系统维护时输入 12 描述EventLevel=Event2Code,Event1Code,Event2Name,Event1Name 1.6 系统的软硬件支持环境 从本系统的应用范围和对象考虑,软硬件要求比较低。采用 C#的编程平 台和 SQL2000 数据库作为后台的编程方式也使本系统的通用性移植性比较强, 各个市政部门的计算机和移动计算设备都可以运行。考虑到 SQL 数据库数据 量比较大,建议使用 256M 内存,主频为 1.3G 以上的处理器,硬盘空间参考 数据库存储量。系统编程平台为:C#为前台,SQL2000 为后台。 13 2 基于 GIS 的市政设施管理系统的概念设计 图 2.1 系统 E-R 图 3 基于 GIS 的市政设施管理系统的逻辑设计 (1) 市政设施部件基本信息表(CityObj) 表 3.1 部件基本信息表 列名属性项数据类型长度允许空主关键字 Code标识码Char160 14 Name名称Char300 DeptNameID归属部门Char600 GBCode所在万米单元Char120 Pos位置描述Char300 ObjState状态Char300 ObjUseState现势性Char300 BeginTime初始时间Date100 EndTime变更时间Date100 MapScale源比例尺Number101 Memo备注Char1001 (2) 市政事件基本信息表(CityEvent) 表 3.2 事件基本信息表 列名属性项数据类型长度允许空主关键字 Code代码Char 100 Name名称Char 300 DeptNameID归属部门Char 600 Pos问题位置Char 300 GBcode所在单元网格Char 120 (3) 市政部门基本信息表(DeptList) 表 3.3 部门基本信息表 列名属性项数据类型长度允许空主关键字 DeptID单位序号Char100 15 DeptCode单位代码Char100 DeptName专业部门名称Char600 DeptClassCode单位类别Char20 (4) 地区代码基本信息表(LocCode) 表 3.4 地区代码基本信息表 列名属性项数据类型长度允许空主关键字 LocCode地区编码Char60 LocName地区名称Char300 (5) 单位分类基本信息表(DeptClass) 表 3.5 单位分类基本信息表 列名属性项数据类型长度允许空主关键字 DeptCode分类代码Char20 DeptName单位名称Char600 (6) 部件分类基本信息表(ObjLevel) 表 3.3 部件分类基本信息表 列名属性项数据类型长度允许空主关键字 Obj2Code小类别代码Char20 Obj1Code大类别代码Char20 Obj2Name部件名称Char300 ObjDeptName部件归属单位Char600 ObjSuppDeptN部件处理单位Char600 (7) 事件分类基本信息表(EventLevel) 表 3.3 事件分类基本信息表 列名属性项数据类型长度允许空主关键字 Event2Code小类别代码Char20 Event1Code大类别代码Char20 Event2Name事件名称Char300 EventDeptID事件处理单位Char600 16 4 基于 GIS 的市政设施管理系统的应用程序设计 4.1 相关软件介绍 C#是可用于创建要运行在 NET CLR 上的应用程序的语言之一,它是从 C 和 C+语言演化而来,是 Microsoft 专门为使用.NET 平台而创建的。因为 C#是近期发展起来的,所以吸取了以前的教训,考虑了其他语言的许多优点, 并解决了它们的问题。使用 C#开发应用程序比使用 C+简单,因为其语法比 较简单,而且 C+的能完成的任务在 C#中也能完成。C#代码通常比 C+略 长一些,这是因为 C#是一种类型安全的语言,而且 C#的代码更健壮,调试 也比较简单,.NET 总是可以随时追踪数据的类型。C#只是.NET 开发的一种 语言,也是最好的一种语言,它有很多的优点:首先它是唯一为.NET Framework 而设计的语言,是在移植到其他操作系统上的.NET 版本中使用的 主要语言。 MapObjects 是 ESRI 在一九九六年推出的基于软件开发的地图和 GIS 组 件,是 ESRI 的一个单独开发的产品,在短短的几年里就得到了广发的应用, MapObjects2.2 增加了对.NET 的支持,最新的版本 MapObject2.3 增加了一些 补丁。MO 作为一套制图软件集,它是程序员能够把地图加到应用程序中去, 通过 MapObjects 便可灵活的建立适合用户的地图接口,在小内存空间中,用 户可以用多种工业标准程序环境之一去建立应用程序,来实现地图与用户信 息的联系。MO 的功能有:显示一张多图层的地图(道路,河流,边界等) ; 地图的放大,缩小,漫游;生成图形元素,如点,线,圆,多边形;说明标 记;识别地图上被选中的元素;通过线,方框,区域,多边形,圆来拾取物 17 体,拾取距参照物特定范围内的物体;通过 SQL 描述来选择物体;对所选择 的物体进行基本统计,对所选地图元素的属性进行更新;绘制地图元素,标 注地图元素;从航片或卫星图片上截取图像;动态显示实时或系列时间组数 据;在图上标注地址或定位。通过在 C#中嵌入 MO2.3 便可以进行 GIS 系统 的二次开发,其中对地图的操作可以通过 MO 中的控件进行一些程序代码完 成。 4.2 主窗口设计 根据系统的功能要求和方便使用的原则,主窗口设计如下图 4.1: 图 4.1 主窗口设计图 窗口上方的工具栏按钮依次为:系统维护,放大,缩小,刷新,漫游, 18 输出,查询,数据修改,图例,帮助和退出。左侧的 output_listbox 是查询结 果列表,显示查找结果和地图标记信息;下方是鹰眼地图显示窗口。右侧为 查询和数据修改功能栏,可以进行查找和数据修改操作。中间空白处即为主 地图显示窗口,显示所选择地图的相关图层。最右侧的一列小按钮是地图操 作按钮,可以进行点选择,矩形选择,多边形选择操作和距离,面积量算。 4.3 功能模块设计 4.3.1 电子地图控制子系统功能模块设计 电子地图控制子系统主要包括地图放大,地图缩小,地图漫游三个功能 模块。 (1)地图放大功能模块。此功能实现了地图的放大显示,方便用户的查 询和查看。点击一次放大2倍,放大倍数同界面地图显示主窗口右上方的地图 倍数选择快捷键相对应,地图载入时初始状态为原始比例。在进行快捷键实 现放大和缩小功能前需设定屏幕中心点,以便在放大后保证地图的显示中心 不变,具体语句如下: MapObjects2.Point pt;/设定中心点 pt = _map.Extent.Center; 放大为 200%(放大其他倍数方法同放大为 2 倍, )时具体实现如下: MapOpr.MO_ZOOMIN: if(_environment.CalcScale(_map)MAX_SCALE) return;/达到最大倍数时不能继续放大 19 MapObjects2.Rectangle rect; rect=_map.TrackRectangle (); double dScale=_environment.CalcScale(_map); double dScale=_environment.CalcScale(_map,rect); double dWidth=rect.Width ; double dHeight=rect.Height ; if(null=rect) | (dWidth0.00005) | (dHeight0.00005) | (dScaleMAX_SCALE) 为if(_environment.CalcScale(_map)MIN_SCALE) 和倍数参数设置语句 r.ScaleRectangle (0.5) 为r.ScaleRectangle (2.0) 即可。 (3)地图漫游功能模块。此功能实现了地图的拖动显示,方便用户的查 21 询和查看。具体实现语句可以直接调用 MO 的方法: case MapOpr.MO_PAN: _map.Pan (); _mapEye.Extent =_mapEye.Extent; 4.3.2 电子地图显示子系统功能模块设计 电子地图显示子系统主要包括电子地图鹰眼显示,地图标记和清除标记 三个功能模块。 (1)地图鹰眼显示功能模块。此功能主要为用户提供主窗口地图在某倍 数下窗口范围在地图上的地理位置,可以方便的看到窗口范围显示的地图部 分在全图中的方位。主窗口地图显示的倍数越大,鹰眼窗口中显示窗口地图 范围的矩形框就越小,反之则越大,鹰眼地图适中以全图显示,地图倍数不 会发生变化,也不允许用户更改。鹰眼地图图层的加入通过 LoadLayersForEagleEye() layer.GeoDataset = _environment.m_db.FindGeoDataset(_environment.m_layerInfosi.szFileName); _mapEye.Layers.Add(layer); 来实现(上面是功能实现的主要语句,一些判断语句省略)。 (2)地图标记功能模块。此功能主要是为了方便用户更快的找到所需查 找的信息,在点击结果列表中的部件或事件时,左侧的操作面板中的属性框 会显示其属性,而主窗口地图则会移动以部件或事件地理位置为中心点显示, 并且在动态层上用一个红色圆圈标记出地理位置,直到用户清除标记或重启 系统为止。 22 (3)清除标记功能模块。这个功能与地图标记功能相对,当用户使用此 功能时,标记在动态层上的所有标记都被清除。 4.3.3 电子地图输出子系统功能模块设计 电子地图输出子系统主要是方便用户以文件形式保存地图信息,通过 MO 中 的 Print 方法设置参数即可实现: _map.PrintMap(_environment.m_mapInfos_environment.m_nCurrMapIndex.s zName,“,true) 4.3.4 查询子系统功能模块设计 查询子系统的查询方式主要为两种:通过大小类别查询和通过地理位置 查询。此项功能和市政数据库相联系,首先介绍一下数据库和系统的连接。 通过以下语句保证数据库和软件相链接, SqlConnection Conn = new SqlConnection(“Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=bisheEND;Data Source=wubin; Workstation ID=WORKGROUP“); (1)通过大小类方式查询模块。这种查询方式是为了方便查找同种类别的设 施部件或事件,listBox1即为结果列表。 listBox1.DataSource=dso.Tables“Objlist“; listBox1.DisplayMember=dso.Tables“Objlist“.Columns“Name“.ToString(); listBox1.ValueMember=dso.Tables“Objlist“.Columns“Code“.ToString(); 如果显示的是事件则 dso 修改为 dse。 (2)通过地理位置方式查询模块。 23 这种查询方式是为了方便用户查询某个地理位置上或其附近的设施部件或事 件的情况,查询实现利用数据库的 select 语句。具体实现的关键语句如下: xaxis=Convert.ToSingle(textBox3.Text); yaxis=Convert.ToSingle(textBox4.Text); cd.CommandText=“SELECT Code, Name , DeptNameID, GBCode, Pos, ObjState, ObjUseState,BeginTime, EndTime, MapScale, Memo,xaxis,yaxis FROM CityObj where sqrt(xaxis-(“+xaxis.ToString()+“)*(xaxis-(“+xaxis.ToString()+“)+(yaxis- (“+yaxis.ToString()+“)*(yaxis- (“+yaxis.ToString()+“)=“+textBox5.Text.ToString(); 其中 textBox3 和 textBox4 是设施部件或事件的坐标属性值,textBox5 的值是 用户输入的查找距离值。根据输入的查找距离值由 select 语句在结果列表中 输出查找结果。 通过以上两种查找方式查找的结果通过结果列表显示出来,单击其中一 个结果,其属性就会在左侧的操作面板的属性框中显示出来,并且在地图上 显示出此查找结果的地理位置以红色圆圈标记提示用户。实现主要语句如下: listBox1_SelectedValueChanged(object sender, System.EventArgs e) textBox20.Text=dso.Tables“Objlist“.RowslistBox1.SelectedIndex.ItemArra y0.ToString().Substring(0,6); textBox2.Text=dso.Tables“Objlist“.RowslistBox1.SelectedIndex.ItemArray 1.ToString(); 花括号中的语句是比较有代表性的两个语句,其他类似的语句省略。 24 4.3.5 数据修改子系统功能模块设计 数据修改子系统的主要有三个功能模块,这三个功能实现用户对数据的 维护更新,保证数据的时效性,这三个功能也是要求最稳定的功能,不能使 不符合规定格式的数据输入,也不能对数据操作错误不做出提示。因此在本 子系统中多次使用了消息对话框,对用户的操作做出提示或警告。 (1)数据添加功能模块。首先选择需要添加的大小类别,然后系统自动根据 用户选择的类别判断是市政事件还是市政部件,并根据类别判断显示出不同 的属性填写选择,区别如下图 4.2,图 4.3 所示。 图 4.2 市政事件属性 25 图 4.3 市政设施部件属性 根据系统判断的部件或者事件,添加功能将数据分别添加进部件数据库 CityObj 或事件数据库 CityEvent,具体实现语句如下(部分): cd.CommandText=“SELECT * FROM CityObj where Code=“+textBox20.Text+textBox19.Text+textBox18.Text+textBox17.Text+“; DataRow NewDrow=dso.Tables“Objlist“.NewRow(); NewDrow0=textBox20.Text+textBox19.Text+textBox18.Text+ textBox17.Text; NewDrow1=textBox2.Text; 26 dso.Tables“Objlist“.Rows.Add(NewDrow); 并且在程序中有个判断语句可以判断是否重复输入,如果重复输入某部件则 弹出提示: MessageBox.Show(“已存在此部件!“); (2)数据修改功能模块。数据修改功能配合查找功能模块使用,当需要修改 某项数据时,先查找到该数据然后在文本框中输入新数据点击修改按钮即可 修改此项数据。以下是数据库操作的典型代码示例: DataRow Updrow1=dso.Tables“Objlist“.RowslistBox1.SelectedIndex; Updrow1.BeginEdit(); Updrow11=textBox2.Text; Updrow1.EndEdit(); 同样,为了防止数据修改错误,系统严格规定了数据的格式,在数据库 出现异常时将会以消息框的形式给出警告。 catch(Exception ee) MessageBox.Show(“修改部件出错了!“+ee.Message.ToString(); 在程序中多次使用 try-catch 给程序出错提示带来很大的方便。 (3)数据删除功能模块。数据删除比较简单,只需定位到所需删除的项执行 删除语句即可。为了保证删除数据后可以恢复,可以在表中加一个辅助列, 值类型为 INT,值为 0,1,2,值的大小和需要保护的数据项数目 n 有关, 可以在系统中设定,当执行删除功能时,表中所有不为零的项的辅助列全部 加 1,当辅助列的数值大于 n 时,执行删除语句,否则不删除这些项,仅仅 为需要删除的辅助列数值加 1。执行查找时,只显示辅助列为 0 的数据项。 27 删除功能的主要语句示例为: DataRow Updrow1=dso.Tables“Objlist“.RowslistBox1.SelectedIndex; Updrow1.Delete(); 4.3.6 帮助子系统功能模块设计 帮助子系统主要为用户提供使用本系统过程中遇到问题的帮助,有两个 帮助选择:单机文档帮助和联机帮助。单机文档帮助仅弹出一个对话框,包 括一些使用须知,常见问题的解释等等;联机帮助为一个网页链接,定向到 一个网页,此网页包括一些问题的解决方案并提供留言功能。 4.3.7 其他功能模块设计系统维护功能模块 这个部分主要是系统维护模块,在系统维护功能中,提供大类别和小类 别的部件和事件维护,共 4 个小模块。4 个小模块的功能相似,分别具有新 建,修改,删除 3 个功能。新建,修改和删除功能的数据库操作具体语句为: 新建: string insertCmd =“insert into ObjLevel1(ObjClass1Code,ObjClass1Name) values(“+textBox8.Text +“,“+textBox21.Text +“)“; SqlCommand myCommand=new SqlCommand (insertCmd,Conn); 修改: string updateCmd=“UPDATE EventLevel1 SET Event1Code=Cd,Event1Name=Nm where Event1Code=dw“; SqlCommand myCommand=new SqlCommand (updateCmd,Conn); 28 删除: string deleteCmd=“DELETE from EventLevel1 where Event1Code=Cd“; SqlCommand myCommand=new SqlCommand (deleteCmd,Conn); 为了保证数据的安全性,同样可以采取同 4.3.5 中删除功能类似的方法来实现 删除恢复。 另外在这七个子系统之外,为了方便用户使用,设置了很多人性化的功 能,譬如在地图坐标方面使用鼠标动态指示,提示地图上物体信息,在部件 代码输入上提示地区代码等。 5 系统程序调试与试运行情况 系统经过调试发现主要有两大问题:首先是和数据库相关的操作,由于 数据库中表的数量比较多,因此在进行数据更新的时候必须指定具体的表名 和具体的某一项,否则容易出错而且会破坏表中的数据。另外因为下拉列表 中的下拉选项和数据库的数据相关联,因此每次数据更新完毕必须刷新数据 库并刷新相关的各下拉框和树形结构等,避免出现数据库中数据不存在而下 拉框中的数据项仍然存在的情况。 其次是地图显示方面的问题,GIS 作为专业性比较强的系统,各个开发 工具各不相同,而且 GIS 地图数据的非共享性使本系统在地图显示模块上出 现较大问题不能得到及时的解决。参考地理信息系统二次开发实例教程 C#和 MapObjects 实现书中实例后,发现其实例存在同样的问题。因此, 本系统中的地图显示部分由 JPEG 格式的图像文件模拟出来,来代替不能实 现的 shp 格式地图文件。 29 系统修改后的主界面如下: 图 5.1 系统(模拟地图)主界面 程序试运行正常,实现了各个功能:地图控制选项中可以通过选择模拟 的地图来选择不同的地图,如下图 5.2 所示。 图 5.2 地图控制选项 菜单的第二项为数据更新操作,通过此选项可以实现对市政设施部件和 30 事件的新建,修改,删除操作。如下图 5.3 所示。 图 5.3 数据库选项 数据更新后会弹出相关的提示消息框,提示数据更新成功或者失败,若 失败将错误信息反馈。选择新建按钮,属性文本框清空,然后输入要新建信 息,然后点击保存按钮,如果存在相同部件则提示,否则新建成功。 新建某一部件,流水代码误输入,与已存在某部件重复,则提示如图 5.4 所示。 图 5.4 新建数据属性信息重复 新建某一部件,名称为 ceshi,不存在重复信息,添加成功则提示如图 5.5 所示。 31 图 5.5 新建数据成功 在结果列表中,名为 ceshi 的部件成功添加进数据库自动刷新显示如图 5.6 所示。 图 5.6 添加成功后的结果列表 同样进行修改操作时,如果属性设置不正确,将提示修改失败,这样保 证了在误输入的情况下数据库内数据的正确性。测试与测试新建功能类似, 此处省略,如图 5.7 所示。 图 5.7 修改事件成功 测试删除操作,名为 ceshi 的部件已经被删除,结果列表自动刷新显示。 32 如图 5.8 所示。 图 5.8 数据删除操作成功 如果删除数据出错则同样弹出提示,事件删除失败,如图 5.9 所示。 图 5.9 数据删除操作出错 在右侧的操作面板上有查找功能,有两种查找方式。第一种查找可通过 选择类别进行,分别选择大小类别后结果列表中自动刷新所选择类别的所有 部件或事件。第二种查找是根据部件或事件的物理位置,在结果列表中选择 某一个部件或者事件,然后输入要查找的距离范围,点击查找按钮即可在结 果列表中得到以所选部件或事件为中心,所输入距离为半径的范围内的所有 部件或事件;或者在蓝色坐标文本框中输入某个坐标,然后输入要查找的距 离范围,点击查找按钮即可在结果列表中得到以所输入坐标点为中心,所属 入距离为半径的范围内的所有部件或事件。单击结果列表中的某一事件或部 件,其属性信息就会在操作面板的属性框中显示出来,并可以继续其他数据 33 更新操作。系统右侧操作面板最下方的红色坐标随着鼠标在地图区域的移动 而变化,适时显示出地图上的坐标位置,并与部件或事件的坐标属性值相一 致。 系统为系统维护人员设置了系统维护功能,通过系统维护选项可以对系 统的固定选项进行维护,选择系统维护中的大类维护选项,然后选择事件维 护, 先测试新建功能,名称为 ceshi,代码 99,添加成功,如下图 5.10 所示。 图 5.10 系统维护-添加新类别 添加成功后重启系统,在下拉列表中显示新添加的类别,如图 5.11 所示。 34 图 5.11 系统维护-添加成功的大类别 同样可以测试修改和删除功能,如下图 5.12,图 5.13 和图 5.14 所示。 图 5.12 系统维护-修改大类别的名称 图 5.13 系统维护-删除大类别 35 图 5.14 系统维护-删除成功的大类别 对系统使用各种数据测试,系统均运行正常,并对不符合格式的数据 弹出消息框提示,基本实现了预期的目标,系统操作比较简单,界面友好。 6 系统的使用说明 打开可执行文件 bishe.exe 文件,即可进入系统主界面。系统界面上方的 菜单栏分别是地图选择,数据库操作,系统维护和帮助,地图选择可以选择 系统自带的 3 幅地图,数据库操作可以进行数据的查找,新建,修改和删除 操作,系统维护可以对数据库中的大小类别区分进行维护,帮助选项可以给 用户提供帮助文档。 在主界面的左侧地图显示区中,鼠标的位置将反映坐标位置并通过右下 角的地图坐标显示文本框显示出来;主界面中部框上面的树形结构和大小类 别下拉框对应,方便用户浏览和选择,下方是查找结果显示列表,显示查找 到的结果;主界面右侧的对话框是数据查找更新操作面板,在这个面板上可 以进行查找操作和数据更新操作,操作结果将在中部下方的结果显示列表中 36 显示,用户可根据自己需要进行操作。 结论 由程序调试和试运行的情况来看,程序设计比较成功,实现了需求分析 中的功能设计和系统的总体要求。由于 GIS 系统的专业性强的特点和本系统 用户群体比较复杂的特点,简化一般 GIS 系统操作的复杂性,使系统的使用 比较简单,并且提供了帮助文档,使初学者能够容易的上手操作,遇到问题 时也能通过系统帮助得到解决。 在系统设计的过程中,运用软件工程的思想,进行系统的需求分析,概 要设计,详细设计,程序编码,程序测试。在需求分析中,着重功能的设计 和数据库方面的设计,尽量满足功能的丰富性和操作的简单性。在数据库的 设计中,尽量减少各表之间的关联,降低数据库设计难度,使后期维护更加 简单。 本系统实现了如下功能: 1查询功能:用户可以通过查询功能实现设施部件和事件的查找,以及 所查对象的定位; 2管理功能:管理功能分为两个部分: (1) 决策层:通过对部件的查找分析,在显示器上直观的显示出对象 的位置等属性特征,对决策者起到一个辅助的作用,并能通过数据的共享, 实现资源的管理共享。 (2) 普通员工:通过对部件的查找定位,可以在最短时间内到达部件 现场,对事件进行处理,并通过事件,部件,以及属性的增删功能,将情况 37 及时反映在系统中,实现了管理的信息化,并能有效地实现不同市政部门的 沟通协作,及时处理发生的事件。 3系统维护功能:通过对系统中大小类别的维护,可以方便进行管理类 型扩展。 致谢 毕业设计做为四年大学学习生活的总结,不仅需要我们综合运用所学知 识和基本技能来完成作品,老师和师兄师

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论