梅州市绿地管理系统系统设计Word格式.docx
《梅州市绿地管理系统系统设计Word格式.docx》由会员分享,可在线阅读,更多相关《梅州市绿地管理系统系统设计Word格式.docx(22页珍藏版)》请在冰点文库上搜索。
2.1.6、规划分析:
该模块提供了查看公园规划信息,绿地覆盖率分析、公园服务范围分析、公园通达性分析等功能。
2.1.7、专题图:
该模块提供了四个实用专题图的生成功能,包括:
单值专题图、标签专题图、公园服务范围专题图和绿地服务范围专题图。
2.1.8、数据管理:
该模块提供了对公园绿地和古树的数据编辑和查询的功能,可以很方便的对公园绿地和古树进行编辑和管理。
2.1.9、地图工具:
该模块提供了一些实用的地图工具,如地图标注的添加,距离的量算等。
2.1.10、三维示例:
该模块以校园为示例,展现园林绿化的三维视图。
下面是本系统的功能设计图
图2-1系统功能设计图
2.2、系统结构设计图
图2-2系统结构设计图
从结构设计图上可以很清晰的看到本系统有3层结构,即数据层、开发层、表现层。
数据层:
主要提供数据的存储管理服务,采用超图的SDB数据引擎,实现属性数据和空间数据的统一管理
开发层:
GIS功能的主要场所,是实现系统核心GIS功能的所在。
表现层:
主要负责与用户进行信息的交互,表现系统可以提供的各项功能。
2.3、数据组织形式
SuperMapSDX+是SuperMapGIS软件数据模型的重要组成部分,它采用先进的空间数据存储技术、空间索引技术和数据查询技术,实现了具有“空间-属性数据一体化”、“矢量-栅格数据一体化”和“空间信息-业务信息一体化”的集成式空间数据引擎技术,无论是对GIS大型工程还是中小型工程或是桌面应用都是理想的选择。
我们使用SQLServer2008来对我们的业务数据进行组织和管理,空间数据也是存储在SQLServer中,通过SuperMapSDX+的数据库引擎来对我们存储在SQLServer的空间数据进行管理,大大降低了我们对空间数据和业务数据操作上的难度。
2.4数据组织设计
表2-1公园基础信息(表名:
公园)
字段名
字段类型
备注
SmID
长整型
主键
PName
文本
公园名
PKind
公园类型
PAddress
公园地址
PKaifang
公园开放性质
PBuildstate
公园建造状态
PWeihu
数字
维护方案(外键)
Ppicture
图像
公园照片
表2-2绿地基础信息(表名:
绿地R_1)
GName
绿地名
GKind
绿地类型
GAddress
绿地地址
GBuild
建造单位
GBuildTime
时间
建造时间
GYanghu
表2-3古树基本信息(表名:
古树2)
Tclass
树种
Tgrade
古树等级
TAddress
古树地址
TYear
古树年龄
THealthy
古树生长状态
TBrief
简介
TDeathtime
死亡时间
TYanghu
Tpicture
古树照片
表2-4绿地日志(表名:
GGreen_log)
GYHId
GId
绿地ID(外键)
GYHTime
维护时间
GHealthy
生长状态
GProblem
存在问题
GYHPerson
养护人员
GWater
布尔
是否浇水
GShave
是否修剪
GWeed
是否除草
GShifei
是否施肥
方案ID(外键)
表2-5公园日志(表名:
GPark_log)
PWHId
PId
公园ID(外键)
PYHTime
PProblem
PYHPerson
PYanghu
PChecked
PChange
PClean
表2-6古树日志(表名:
GTree_log)
TYHId
TId
古树ID(外键)
TYHTime
TProblem
TYHPerson
TWater
TShave
TWeed
TShifei
表2-7绿地方案表(表名:
GGreen_project)
GProID
GProName
方案名称
GProWateringperiod
浇水周期
GProShaveperiod
修剪周期
GProWeedingperiod
除草周期
GProShifeiperiod
施肥周期
表2-8古树方案表(表名GTree_project)
TProID
TProName
TProWateringperiod
TProShaveperiod
TProWeedingperiod
TProShifeiperiod
表2-9公园方案表(表名:
GPark_project)
PProId
PProName
PProCheckperiod
检查周期
PProChaneperiod
更换周期
PProCleanperiod
清扫周期
表2-10绿地使用信息表(表名:
GGreen_use)
GUseid
GBelong
使用单位
GMudi
使用目的
GStarttime
开始时间
GEndtime
结束时间
表2-11公园使用信息表(表名:
GPark_use)
PUseid
PBelong
PMudi
PStarttime
PEndtime
三、系统功能设计
3.1、文件与地图操作
3.1.1、描述与设计思路
描述:
文件模块主要包括打开地图、保存地图、另存地图、删除地图、保存工作空间和退出系统功能。
地图操操作模块主要包括地图的放大、缩小、漫游、全幅显示、鹰眼导航、刷新、地图居中、前一视图、后一视图和设定比例尺功能。
设计思路:
地图基本操作功能通过SuperMapobject的相关组件并建立相应的菜单栏与工具栏实现;
图层控制主要通过图例控件实现;
地图的鹰眼图功能主要通过两个地图控件进行实现。
:
放大地图
缩小地图
地图漫游—移动地图到赶感兴趣的区域
全幅显示地图
3.1.2、功能流程图
3.2、日常维护和使用管理
3.2.1、描述与设计思路
日常维护模块提供园林绿化基础信息的管理维护功能,包括绿地、公园和古树的养护方案的设置、养护日志的录入以及状态的监督。
养护方案,是显示和管理用户所创建的方案;
养护日志,是提供给用户对绿地、公园和古树进行日志的录入与管理;
状态监督,是方便用户通过日志信息快速了解到绿地和古树的状态,利于用户及时发现状态差的绿地或古树。
使用管理模块提供了对绿地和公园的使用情况信息的管理。
包括新增、修改和根据时间查询。
让用户了解使用了绿地或公园的机关单位及时间等信息。
设计思路:
这两个模块涉及的都是SQL2008数据表的读取更新等操作。
我们在系统源代码里创建了三个类:
SQL_tree、SQL_park和SQL_green。
分别专门用于存放古树、公园和绿地数据表操作的SQL语句。
这样不仅提高了代码的重用性,而且也方便了我们代码的管理。
3.2.2、功能流程图
3.3、统计分析
3.3.1、描述与设计思路
该模块是在用户于地图上框选一个区域后统计公园、绿地或古树数据的模块。
功能设计有下面几点:
公园统计、绿地统计和古树统计。
用户在地图上画一个多边形,然后用soDatasetVector的QueryEX方法进行空间查询,查找出在多边形内的记录集。
再由记录集统计出结果数据。
并利用listview控件和第三方chart控件将统计数据以柱状图和饼状的形式显示出来。
本系统还使用了axSuperMap.OutputMapToBMP()方法将框选的区域显示在统计窗体上,使界面显得更加的人性化;
3.3.2、功能流程图
3.4、规划分析
3.4.1、公园规划信息
3.4.1.1、描述与设计思想
该功能是显示和管理公园规划信息的,可通过选择的公园查看其规划图,并可导出规划图。
数据库里存放图片的是二进制格式,我们使用MemoryStream和Bitmap两个对象将从数据库读出来的记录转换成image,从而能在pictureBox上显示。
3.4.1.2、功能流程图
3.4.2、绿地覆盖率分析
3.4.2.1、描述与设计思想
该功能是在用户与地图上框选一个区域后,分析计算该区域内的绿地覆盖率。
并给出分析结果,根据国家绿地覆盖率指标,一个地区的绿地覆盖率超过30%才算达标;
超过50%便属于最佳居住环境的标准。
这里通过axSuperMap1_Tracking事件获取框选区域的面积,并通过soDatasetVector的QueryEX方法进行空间查询,查找出在多边形内的记录集,从而进行覆盖率的分析。
3.4.2.2、功能流程图
3.4.3、公园服务范围分析
3.4.3.1、描述与设计思想
该功能通过用户给全市性公园、社区性公园和邻里公园三个等级的公园输入服务半径,进行缓冲分析,并通过图文并茂的方式给出分析结果。
通过分析结果我们可以看到公园的服务范围占整个梅江区的比重。
一般全市性公园的服务半径能够达到2200公尺、社区性公园1600公尺,邻里公园则有800公尺。
从数学的角度看,缓冲区是给定空间对象或几何后获得他们的领域。
领域的大小有领域的半径或缓冲区建立条件来决定。
因此对于一个给定的对象A,它的缓冲区可以定义为:
P={x︳d(x,A)=r}
(1)
公式中,d是指欧式距离,也可以是其他距离,其中r为领域半径或者缓冲区建立的条件。
首先用soDatasource.CreateDataset()方法新建一个矢量数据集,再通过soDatasetVector.Query()方法将其转换成记录集、通过soRecordset.GetGeometry()方法获取几何对象,最后用soGeoRegion.Buffer()方法创建缓冲区。
3.4.3.2、功能流程图
3.4.4、公园通达性分析
3.4.4.1、描述与设计思路
公园通达性分析是基于GIS的网络分析,结合道路和人口分布分析公园的可达性。
也就是说,公园通达性分析通过用户给定的步行速度和到达公园的时间,分析研究区域能有多少面积和市民能够在给定的时间内步行到达公园。
本系统通过以下两个指标来评价梅城城市公园的服务情况:
服务面积比=服务面积/研究区总面积×
100%
(2)
服务人口比=服务人口/研究区总人口×
100%(3)
这里使用soNetworkSetting对象设置网络分析环境,使用soLongArray对象添加节点ID,使用soDoubleArray对象设置服务半径,最后使用soNetworkSetting.ServiceAreaEx()创建出“服务路径”和“服务区域”数据集。
在显示分析结果窗体里,我们使用上面的公式
(2)和公式(3)求出分析结果。
3.4.4.2、功能流程图
3.5、专题图
3.5.1、描述与设计思想
通过本功能实现对公园、绿地或古树的专题图制作,功能设计有下面几点:
专题图制作,包括单值专题图、标签专题图和服务范围专题图;
服务范围专题图有公园服务范围专题图和绿地服务范围专题图
设计思路:
在SuperMapObjects中,通过以下对象制作专题图,soThemeUnique对象(单值专题图)、soThemeLabel对象(标签专题图),
服务范围专题图则使用soGeoRegion.Buffer()方法创建缓冲区,形成服务范围专题图
3.5.2、功能流程图
3.6、数据管理
3.6.1、描述与设计思想
通过本功能实现对园林绿化数据的管理。
功能设计有数据入库(新增公园、新增绿地和新增古树)、数据删除(删除公园、删除绿地和删除古树)、公园数据查询、绿地数据查询和古树数据查询。
以公园为例,新增公园,先将地图状态改为编辑状态axSuperMap1.Layers.SetEditableLayer();
使用SuperMap控件的操作状态seAction常量,即:
axSuperMap1.Action=seAction.scaEditCreatePolygon;
这样用户便可以在地图上画出公园区域。
随后会弹出添加属性窗口,用户在各个文本框输入属性值后,使用SQL语句将记录插入到数据表中。
删除公园功能使用soRecordset的Delete()方法进行删除。
公园数据查询,使用SQL语句获取需要的数据表System.Data.DataTable,然后对表进行循环读取,并显示到listview控件上
3.6.2、功能流程图
3.7、系统工具
3.7.1、描述与设计思路
该模块包括地图标注、删除标志、面积量算、距离测量、一键生成专题图、点选查询。
地图标注:
可选择图层,在地图上用文字的形式做标记。
测距、测面:
利用跟踪图层和Tracking事件相结合得出结果。
一键生成专题图:
该功能是本系统的一大亮点。
用户只需要输入图名,浏览满意后,便可直接输出专题图。
使用axSuperLayout1.Elements.CreateElement()方法给布局窗口创建图例、图名、指北针等布局元素。
用户对系统生成的布局不满意也可自己手动修改,这里主要使用soLytMap对象的MapAction属性进行设置。
地图输出则使用axSuperLayout1.OutputToBMP()方法将布局窗口输出为图片。
点选查询:
用户触发此功能后,在地图上单击选择某个几何实体,便可浏览该几何实体的属性信息。
这里是使用axSuperMap1.selection.ToRecordset(true),将该记录集跟axSuperGridView1进行连接便完成了。
3.7.2、功能流程图
3.8、三维示例
3.8.1、描述与设计思路
该功能是提供给用户通过三维视图的浏览,了解园林绿化的基本情况。
这里使用了axSuper3D1.OpenScene()方法将做好的三维视图打开,并用axSuper3D1.Show()方法将三维视图展现出来。
浏览操作则是设置axSuper3D1对象的Action属性,从而进行放大、漫游等操作。
3.8.2、功能流程图
3.9、地图右键菜单和定位闪烁
3.9.1、描述与设计思路
地图右键菜单是提供给用户对业务数据进行快捷浏览与管理的一个功能,具体有查看属性信息和查看规划图(查看规划图是针对公园对象才有的)。
在查看属性信息里,用户可以关联方案、增加日志、查看日志、增加使用记录和修改信息。
定位闪烁是用户在数据查询、状态监督等窗体,通过双击定位到地图上某个公园或绿地古树时,对公园或绿地古树进行闪烁显示。
地图右键菜单是通过axSuperMap1_MouseDownEvent()事件,判定e.button的值来触发右键菜单的。
查看属性信息是通过SQL语句进行数据的增删查改操作。
定位闪烁,我们创建了一个类(FlishFlicker.cs)用于专门实现闪烁功能。
首先使用AxSuperMap1的EnsureVisibleRecordset()方法将需要闪烁的记录集按比例放大显示。
然后使用timer控件和AxSuperMap1.TrackingLayer.AddEvent()方法将记录集里的几何实体按一定的时间间隔填充两种不同的颜色风格,从而实现闪烁。
3.9.2、功能流程图