




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息学部新生导航系统开发任务书一. 开发目的刚刚进入大学的大一新生,人生地不熟,往往并不能迅速准确的找到报到处、宿舍等地理信息。因此我们需要开发一套新生导航系统,来帮助新生答疑解惑,及时了解学校基本信息,提供其切实可行的便利与帮助。二. 需求分析1. 功能需求新生导航系统的总目标是利用地理信息系统技术,数据库技术,提供基于电子地图的地图操作服务,多种方式显示服务,路径导航服务,多种信息查询服务,空间分析服务,帮助学生及时获得准确、精细的信息。根据可行性研究的结果和用户的需求,可以将本系统划分为:(1) 地图显示模块,下分漫游,放大,缩小,按比例尺显示,图层控制功能; (2) 地图查询模块,下分学生信息查询,空间实体查询,属性查询,地图索引功能,最短路径查询;(3)空间分析模块,下分叠置分析,缓冲区分析。2. 数据要求(1)武汉大学信息学部底图,用于进行跟踪数字化;(2)数字化生成的shape文件中的道路应构造拓扑关系,用于最短路径查询;(3)学生信息数据库,用于存放学生基本的信息。三. 总体设计1. 功能划分与结构设计本系统主要分为以下几个子模块:登陆窗体模块,主窗体模块,空间显示模块,查询模块,空间分析模块等。每个大的模块下有划分为几个小的功能模块。详见下图:新生导航系统主窗体登入窗体其他空间分析空间显示空间显示距 离 量 算缓 冲 区 分 析空 间 索 引 查 询最 短 路 径 查 询空间实体属性查询空 间 实 体 查 询学 生 信 息 查 询图 层 控 制按比例尺寸显示放大 、缩小 、漫游(1)登陆窗体模块在登陆窗口中用户需要输入用户名和密码,如果正确,,将进入新生导航系统的主窗体。(2)空间显示模块具有地图基本的放大,缩小,漫游等功能,同时建立图层管理器,用户可以根据需要决定哪些图层显示,哪些图层不显示。另外设置一定比例尺标准,小于此比例尺则注记不显示。(3)查询模块查询模块是本系统最重要的一个模块,用户通过该模块可以查找校园的空间实体及其属性,查询学生信息;并且在输入起始点和终止点后,系统可以自动寻找最优路径,并进行导航。其中学生信息查询支持模糊查询功能。为了便于迅速查找各空间实体,生成空间索引树。(4)空间分析模块主要进行一些简单的空间分析,缓冲区分析。(5)主窗体模块登陆窗口进入后系统总的界面。2. 数据库设计(1)数据组成1)学生基本信息2)各食堂,宿舍,教学楼及其他空间地物(不含道路)信息3)道路信息,含拓朴关系4)系统用户的用户名和密码以及操作权限(2)数据库设计原则1)图形实体采用分层原则,组织方式为层目标2)空间实体与空间实体属性放在一起组织存放,每个空间实体添加id号和名称属性项3)对空间数据进行分类分级,统一采用五位编码方案,前两位表示空间数据的类别,后三位表示该空间数据在所属类别中的编码.用五位的编码作为该空间数据唯一的标志符,便于对数据进行存储,处理,查询,分析.4)学生信息,其各属性如图所示 (3)图形数据和属性数据的关联。主要有两种方式: 1)空间数据和属性数据存放在一起 2)空间数据和属性数据单独存放,两者通过关键字相连.四. 详细设计及编码实现 (1)登陆窗体模块设计及实现用户在输入帐号和密码并点击确定后,系统会对存储在数据库中的帐号和密码,进行匹配。匹配成功则进入主窗体,否则进行错误提示。系统设计时基于安全性考虑,用户在输入密码时均以“*”显示。(2)空间显示模块设计及实现 1)放大,缩小,漫游功能缩小功能支持拉框缩小,点击缩小,每次缩小的倍数为1.8;放大功能支持回退,即左键拉框放大后,点击右键则可回退到放大前的大小,支持至少20次回退。具体实现:当利用鼠标左键拉框放大时,将此前的矩形存放到矩形数组中,回退时则逆序依次从矩形数组中矩形。放大功能的代码主要如下:If Toolbar1.Buttons(1).Value = 1 Then 选择的是放大操作,If Button = vbLeftButton Then 选择的是左键,则执行拉进行框放大 Set Rectangle(cnt) = Map1.Extent 保存放大前的图幅矩形 cnt = cnt + 1 次数加一 Set Map1.Extent = Map1.TrackRectangle ElseIf Button = vbRightButton Then 如果选择的是右键,则恢复到上次放大前的图幅 If cnt 0 Then 之前进行过放大操作 Map1.Extent = Rectangle(cnt - 1) 恢复放大前的矩形 cnt = cnt - 1 次数减一 End If Exit SubEnd If2)图层控制直接利用控件Legend关联Map控件。3)注记依比例尺显示为了不让图面显得过于臃肿,设置一定的比例尺,当大于此比例尺时,注记才能显示具体实现:添加比例尺控件Scalebar,获取当前的比例尺,当大于此比例尺时,利用renderer方法显示各空间实体的名称。主要代码如下:注记,以1:5300为分界线决定是否标记Private Sub renderer()Dim i As IntegerIf Val(strscale) 5300 Then For i = 0 To Map1.Layers.count - 1 Set Map1.Layers(i).renderer = Nothing NextExit SubEnd IfIf Val(strscale) 5300 Then For i = 0 To Map1.Layers.count - 1 Set Map1.Layers(i).renderer = New LabelRenderer Map1.Layers(i).renderer.Field = 名称 NextEnd IfEnd Sub(3)查询模块的设计及实现1)学生信息查询两种查询模式:精确查询,模糊查询用户首先选定要查找的字段,然后输入查找的信息,程序搜索数据库中的学生信息表,在datagrid控件中显示所查找到的信息。另外当用户单击某行数据时,map控件地图上的该学生所对应的寝室会闪烁显示。具体实现:使用adodc关联数据库,然后根据sql语句存放查询到的记录集,再将DataGrid和adodc进行关联。主要代码如下:选择的是精确查询If Option2.Value = True ThenAdodc1.RecordSource = select * from 学生信息 where & str1 & like & str2 & Debug.Print Adodc1.RecordSourceSet DataGrid1.DataSource = Adodc1Adodc1.Refresh 数据源更新End If选择的是模糊查询If Option1.Value = True ThenAdodc1.RecordSource = select * from 学生信息 where & str1 & like % & str2 & %Debug.Print Adodc1.RecordSourceAdodc1.Refresh 数据源更新Set DataGrid1.DataSource = Adodc1学生对应宿舍楼的闪烁显示包含空间地物查询中,此处暂且不提2)空间实体查询用户首先选择所查找的空间实体所属的类别,选择类别后,属于此类的所有空间实体会在组合框中自动列出,用户选择点击确定后,所查的空间地物会在图上闪烁显示。并且当所选的地物的中心位于图框之外时,将其移至中心显示。具体实现:用户选择类别后,查找相应的shape文件,将空间实体的名字依次添加到组合框中。用户选择某个空间实体后,会遍历所属的shape文件,查找到相应的实体,并将其闪烁显示。主要代码如下:Dim recs As mapobjects2.RecordsetSet recs = Map1.Layers(Combo2.Text).Records 打开相应空间实体类型的记录集Do While Not recs.EOF If recs.Fields(名称) Like Combo3.Text Then 如果匹配,则闪烁三次 如果该地物在地图之外,则一直图的中心加以显示 Dim polygon As mapobjects2.polygon Set polygon = recs.Fields(shape).Value Dim pt As New mapobjects2.Point Set pt = polygon.Extent.Center If Not Map1.Extent.IsPointIn(pt) Then Map1.CenterAt pt.x, pt.y End If Map1.FlashShape recs.Fields(shape).Value, 3 Exit Sub End If recs.MoveNextLoop3)空间物体属性查询用户在map上点击鼠标后,选择某控件实体,弹出属性窗体列出该空间实体的属性,所属的图层,空间实体类型,以及位置坐标。具体实现:选择属性查询后,在map上按下鼠标后,根据设置的容限差,找到相应的空间实体,判断其所属于的shape文件,并从shape文件中找到该空间实体,然后在listbox中列出各个属性。4)空间索引树基本上以图层为基本单位,各个空间实体组织在相应的图层之下,当用户点击某空间实体时,在map上该图形会闪烁显示,并且当该空间实体在Map之外时,则移至map的中心显示具体实现:根据shape文件建立各个父节点,然后依次读取各个父节对应的shape文中的各个空间实体,添加到自节点中,并且当用户单击各个空间实体时,在相应的shape文件中查找到该空间实体,闪烁显示。此处只出空间索 引树组织的代码,对响应点击闪烁和空间地物查询相似,此处就不列出了: Dim nodx As NodeDim cnt As IntegerTreeView1.Style = tvwTreelinesPlusMinusPictureText 树状外观包含全部元素建立名称为武汉大学信息学部的父节点, 选择索引为1的图像Set nodx = TreeView1.Nodes.Add(, , 3区, 武汉大学信息学部) 在信息学部父节点下建立子节点, Set nodx = TreeView1.Nodes.Add(3区, tvwChild, child31, 教学楼) cnt = 310 addlist child31, 教学楼, 名称, cnt Set nodx = TreeView1.Nodes.Add(3区, tvwChild, child33, 学生公寓) cnt = 330 addlist child33, 学生公寓, 名称, cnt Set nodx = TreeView1.Nodes.Add(3区, tvwChild, child34, 教工宿舍) cnt = 340 addlist child34, 教工宿舍, 名称, cnt Set nodx = TreeView1.Nodes.Add(3区, tvwChild, child35, 食堂) cnt = 350 addlist child35, 食堂, 名称, cnt Set nodx = TreeView1.Nodes.Add(3区, tvwChild, child36, 运动场所) cnt = 360 addlist child36, 体育场, 名称, cnt cnt = 300 addlist child36, 操场内围, 名称, cnt 5)最短路径查询本地图的起点和终点在组合框中自动列出,用户选择起点和终点后,地图自动生成最短路径,并高亮显示,同时自动弹出最短路径窗体:含有最短的距离和沿途经过的站点。然后会从起点到终点进行导航。具体实现:该功能是本系统最大的难点同时也是最大的亮点。首先道路建立好了拓扑关系,每个弧段含有前节点,后节点,长度信息。思想:1)将道路所有的所有的节点组成邻接矩阵,如果i=j则相应的weight为0,其余初始设置为99999,意为无穷大,表示两个节点没有直接通路 2)根据弧段表更新邻接矩阵,以弧段的长度作为前节点和后节点对应的weight的权值。 3)采用弗洛伊德(flyod)算法,根据该算法的结果依次记录最短路径上的各个节点,将这些节点组成直线,然后高亮显示。同时弹出最短距离及沿途所经过的各个站点的窗口。特殊处理:根据各个标志点,首先搜索离它最近的弧段,然后求出该弧段上离它最近的点,如果该弧段只有两个节点,则取其中点,将该弧段一分为二,重新更新邻接矩阵表,求最短路径。下附最短路径查询主要的源代码:Flyod算法im weight(1 To 96, 1 To 96) As DoubleDim path(1 To 96, 1 To 96) As IntegerDim k As Integer初始化For i = 1 To 96 For j = 1 To 96 weight(i, j) = array2(i, j) If i j And weight(i, j) weight(i, k) + weight(k, j) Then weight(i, j) = weight(i, k) + weight(k, j) 得到最短路径经过的结点序号 path(i, j) = path(k, j) End If Next j Next iNext k逆序存放最短路径经过的结点count = 1MinRoad(count) = jk = jDo While path(i, k) i coun
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地理高考试题及答案
- 事业编中医护理考试题库及答案
- 守秘性及信息安全保障承诺书4篇范文
- 团队协作项目计划与时间管理模板
- 跨部门合作协调表模板流程与责任明确
- 企业组织结构调整过渡方案制定表
- 市场营销策略规划工具精准定位市场趋势
- 智能传感器技术承诺书4篇
- 特种安全培训模板课件
- 《几何图形变换证明技巧实践课》
- 衣服投标供货方案(3篇)
- 公司电脑补贴管理办法
- 中石化对供应商管理办法
- Unit 2 Home Sweet Home 语法与阅读专项练习 (含答案) 人教版(2024)八年级上册
- 2025版安全生产法全文
- 《山居秋暝》(王维)测试题带答案
- 甲状腺肿瘤的早期诊断与治疗进展
- 中央政府投资项目后评价报告编制大纲()(发改投资20252129号)
- 绿化部门车辆管理制度
- 砂石加工现场管理制度
- xx公司风险管理制度
评论
0/150
提交评论