版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、地理信息系统工程实习报告地理信息系统工程实习报告11实习概述11.1实习背景11.2实习要求21.3实习目的32实习安排32.1实习的总体安排32.2实习的详细安排43实习的执行63.1功能模块的设计63.2.1功能描述63.2.1功能模块图73.2数据的获取83.2.1地图底图的获取83.2.2属性数据的获取93.2.3矢量数据的的获取113.3数据库的设计123.4界面设计133.5系统的实现144实习过程中遇到的问题165实习小结176致谢177参考文献181实习概述1.1实习背景随着现在社会的发展,我们的生活也朝着电子化不断发展,而在交通方面,随着人口数目的不断增加,家用小轿车的数量也
2、不断的增加,这导致了公路变得更加拥挤,这也深深地影响了人们对交通工具的选择,人们开始更加倾向于公交车出行,因为这样更加的环保和快捷,这也是现在政府比较提倡的一种出行方式,如果较多的人选择了公交车出行,那么一个很现实的问题出现了,人们不可能记住所有的公交线路,也不会清楚地知道从某个地方到另一个地方该做什么公交车,该怎么换乘,因此一个良好的公交查询系统对这些人们来说显得尤为重要,还有就是交通电子眼在交通管理中越来越普及;而经济的不断发展,避免不了人们都要到某些城市去公干或其他的事情。一旦你对这个城市不熟悉,你的出门就会举步维艰。打的,对于一些因公出差的人来说算不了什么,但是对于旅游者或是个人来说就
3、不是很好的选择。因此,开发一个城市的公交车查询系统就显得十分必要,可以说是关系到一个城市的形象问题。因此公交查询系统将帮助出行人士方便、高效的安排自己的行程。 据我所知,在网络上也有类似的功能的网页供大家使用,有地图可供查看,他们查询的范围较广,有些的甚至包括全中国地区的各省市地区的路线查询,查询结果很精确。结合了我们地理信息系统专业背景知识,如果能一小组合作的方式完成了公交查询系统,这将对我们产生很大的帮助,我们能将自己所学的东西用之于实践,提升自己的动手能力和小组之间的团结合作的能力,为自己今后的工作打下坚实的基础。1.2实习要求分组要求:组长1人:负责工作安排、召集讨论、会议记录、控制进
4、度。组员3人:分工由组长负责,包括:答辩人、界面设计人员、系统开发人员、数据获取及处理人员、文档撰写人员、会议记录人员等。作业要求:1. 实习分为了一次公开汇报,两次封闭汇报,和最后的一个实习答辩,每次集中汇报时要提交相应的进度计划表格及工作总结材料的电子版,封闭汇报还要下一周的进度安排,如果召开了小组会议,还应提供会议记录;2. 在7.6之前提交系统设计资料、程序源代码和相关数据;3. 在7.7之前提交实习报告(每个同学按照自己的工作安排和实际情况撰写,手写)的电子版,报告格式请在教务处网站下载;4. 在9月份之前提交实习报告的纸质版。1.3实习目的从大一到大三,三年了我们学的专业知识也不少
5、了,专业知识也有非专业知识也有,但是缺少把这些知识运用到实践的能力,动手能力不强,对于有些专业知识,我们学习的也不是很扎实,我们也需要通过实践来巩固自己所学知识,本次实习,是从系统工程的角度开展的,让同学们依照系统工程实现步骤,运用我们在课堂所学的软件设计的知识,课堂上我们只是理论地依照地理信息系统工程去设计了一个物流园区运输管理系统,光从理论学习相比于从实际的项目中去学习肯定会学不到很多知识,我想老师可能是出于补齐我们这方面缺失的东西,而开展了这次实习,要求同学们在实习中运用系统工程中的基本概念和原理,完成系统的设计和实施工作。并且,在系统的设计中,希望结合之前开设的课程中所学到的知识,像地
6、图学的知识、数据结构与算法的知识、GIS程序设计语言等,将课堂上的知识进行实际的运用,以达到更深刻理解课程内容,学到更多老师不会说课本上也学不到的东西,这些东西往往是人们通过实践总结出来的。经过本次小型GIS软件系统的实现,我想,不仅可以让同学们增加自己的实践能力,而且可以让同学们进一步加深对GIS功能集成和综合运用的认识和理解,深入地理解GIS在实际生活中的应用,并且可以促进学生们在程序设计和开发能力上的拓展,使之达到脱离GIS工具软件束缚,根据功能组建GIS系统的能力,从而使得同学们具有参加实际工作和科学研究的能力,增强同学们以后参加工作的能力。2实习安排2.1实习的总体安排在明确了本次实
7、习的任务后,为了按照软件设计的思路去进行下去,我们小组在一起进行了讨论,目的是讨论出我们这三周实习的大体的计划与安排,因为有了好的安排,后面的实验才能有条不紊的进行,如果不出意外,我们也会按照计划上面的安排进行下去,当时我们讨论的本次实习大致的安排如下表1:表1 项目总体进度计划表系统名称: 上海市公交地铁查询系统 项目组别:_ 第五组_ _序号工作内容进度安排参与人第一周第二周第三周第四周1系统分析及概要设计刘静,宁鹏飞2详细设计汤奇,邵雄刘静,宁鹏飞3数据的收集准备及预处理邵雄刘静4数据的分析处理和建立数据库汤奇,刘静邵雄5各个功能模块的功能接口的设定和交互界面搭建刘静,汤奇6编写代码实现
8、系统主要功能邵雄,宁鹏飞7对系统进行完善和维护刘静,宁鹏飞2.2实习的详细安排在进行了总体的计划安排后,为了将我们的任务进一步明确,我们更加深入了分解了我们每周的任务,具体到了每一天,这样的好处是,我们小组以后的进度会跟着计划表走,这样做很合理,也不用担心超出规定的时间而还未完成任务,可能前期制定的计划后期也不一定严格的执行,可能还会需要改动,但是它却给我们一个指导的思想,给了我们一个方向,我们小组制定出的周计划如下列的表所示:表2 项目周进度计划表(第一周)系统名称:上海市公交地铁查询系统 项目组别:_ _第五组_ _序号工作内容进度安排参与人周一周二周三周四周五周六周日1需求分析汤奇,宁鹏
9、飞2可行性分析刘静,邵雄3总体设计刘静,邵雄,宁鹏飞4所需数据深入分析邵雄宁鹏飞5数据结构设计刘静,邵雄,宁鹏飞6获取线路站点属性数据全体7获取线路属性数据全体8构建站点矢量数据全体表3 项目周进度计划表(第二周)系统名称:上海市公交地铁查询系统 项目组别:_ _第五组_ _序号工作内容进度安排参与人周一周二周三周四周五周六周日1构建线路矢量数据看全体2数据处理以及为入库邵雄,宁鹏飞3界面设计汤奇,刘静4模块间接口设定邵雄,宁鹏飞表4 项目周进度计划表(第三周)系统名称:上海市公交地铁查询系统 项目组别:_ _第五组_ _序号工作内容进度安排参与人周一周二周三周四周五周六周日1完善界面搭建全体
10、2各模块代码编写邵雄,宁鹏飞3模块合成汤奇,刘静4系统各功能测试邵雄,宁鹏飞5系统更新与护全体3实习的执行3.1功能模块的设计3.2.1功能描述进行完总体的设计后,我们必须根据前面的需求分析来为系统设计不同的功能,功能既要使用,又要考虑到用户的需求,经过小组的讨论分析,我们最总为系统想了如下几个方面的功能:地图显示:根据我们截取的上海是地图底图,矢量化得到的点线面图层,使上海市底图、公交站点、公交线路等地图及查询结果的图形化显示;另外,用户还可通过系统中控件实现对地图的放大、缩小、漫游等基本操作来实现对地图进行操作,通过一些特殊颜色的高亮,点和线的特殊标记使界面更加美观和人性化。公交线路查询:
11、如果我们想了解某一公交车的总线路状况,便可在系统中输入相应的公交车的名字,系统便可在数据库中根据车的名字,模糊找出可以供选择的公交车,如果我们选中某个具体的公交车,系统便会显示出这条公交车经过的所有的站点名,而且还能在地图上显出出这条路的路径,让用户有更加只管的感觉乘车方案查询:当确定起点和终点两站点后,针对不同的需求,会出现不同乘车方案的选择;如:当希望得到一个能直达的公交线路,以免去转车的周折时,可选择“直达查询“功能当追求时间效率最高的公交线路,以节约时间时,可选择“时间查询”功能当追求乘车便捷的公交线路,以减少换乘的次数时,可选择“换乘查询”功能公交车查询:公交车查询是用来查看经过某个
12、站点或者某段线路的所有的公交车名字,然后把这些公交车的名字返回给用户。用户可以根据经过这点或者这条线的公交线路而选择自己想要乘坐的公交车线路。公交站点查询:当需要了解某地点周围公交站点的分布状况,进而找到最合适的站点时,可通过点选或框选法实现对我们所点的点周围的站点查找,和框选时,方框内面对的所有公交站点就会被返回给用户。点选法:通过在地图界面指定点,并借助缓冲区,进而搜索一定半径下的地域内公交站点的分布状况框选法:通过在地图界面框选矩形所指定的范围,进而搜索该地域内公交站点的分布状况模糊查询:当进行公交线路查询需输入站点名称时,可通过此功能进行模糊查找,以减少因名称记不全或记错而导致查询失败
13、的概率票价查询:当选择线路方案时,价钱因素也是影响选择的重要因素,因此,可通过此方案为线路查询多一个选择3.2.1功能模块图由于根据前面需求分析,我们已经讨论出了系统大致会需要那些功能,可能后期还会添加或者删除某一些功能这个都可以变动,我们根据我们功能绘制出了这次公交查询系统的功能模块图如下图1所示:图1 系统功能模块图3.2数据的获取3.2.1地图底图的获取本次实验我们系统的显示地图部分我们打算从google地图中截取上海市的地图。下载稻割软件,选取上海市的中心城区,经过小组的讨论,我们的地图等级选为了16级,因为在16级的情况下,地图已经很大了,如果截取到17那么大小就会上10G左右,这样
14、显示也不是很好,到时候会还很卡,不适合用到系统中,我们在稻割中截取了上海的地图,得到的结果图如下图:图2 上海市地图底图3.2.2属性数据的获取我们本次实验的属性数据包括公交线路的信息,其中有公交线路的票价、时间、经过的站点、公交车的路线名字等,还有站点信息,其中包括站点的名字、经过站点的公交车和站点的经纬度坐标。公交车的相关信息我们是在百度地图上先百度相应的公交车的线路,得到它的行驶路线经过的站点,并且记录下它的其他的一些信息,像公交线路的出发时间和收班时间、票价信息等,站点的信息获取的方法是,通过所有的公交线把站点获取完毕,接下来便是对站点去重复,消除一些重复的选项,得到唯一值站点后,我们
15、每个人分配一定数量的站点,然后在百度地图中输入相应站点的信息,得到该站点的经纬度坐标并且记录下来,我们最后得到的属性数据如下图所示:图3 所获取的公交线路信息图4 所获取的站点信息3.2.3矢量数据的的获取获取了属性数据之后,我们要开始矢量化的工作,矢量化的工作实在原来获取了属性数据的基础之上进行的,我们小组的大致思路是这样的,由于我们获取了站点的经纬度,还有地图数据,我们可一根据站点的经纬将站点导出为点shp图层,接来根据每条线路经过不同的站点而绘制出公交线路的线shp图层,按照这个思路,我们对公交线路进行了矢量化,得到矢量化后的结果如图所示:图5 上海市公交线路与站点的矢量图层3.3数据库
16、的设计本次实习是公交信息查询系统,用到的信息信息虽然量很大但是,但是我们建的表并不是很多,只有一些很重要,并且系统中会用到的,主要包括如下几张表:图6 线路信息表图7 站点表图8 公交线路表图9 线拓扑结构这四张表中,站点和公交线路都有唯一的ID字段,这样后面直接存他们的ID而不是存他们的名字,可以在一定程度上消除数据的不一致性,也可减少数据的冗余程度。3.4界面设计本小组的界面的界面崇尚简约简单的风格,经量减少弹窗的操作,从而减少用户的不适应性,还有就是功能操作简单化,基本实现0输入,只要用户点击鼠标即可得到他想要的结果,而且结果也是直接显示在系统的结果显示区域,快捷明了;界面的整体的色调是
17、绿色与白色相间,既可以减少使用系统的用户对着电脑产生的疲劳感,也寓意着绿色出行的意思。界面上的主要功能按钮也只有四个,分别是站点查询、线路查询、换乘查询和语音播报,站点查询是用户输入站点的相关信息,我们会在数据库中进行模糊匹配,查找相应的记录,并且以图形化的方式显示在系统的左侧结果区,线路查询也是一样,用户输入相应的信息即可,换乘查询则需要输入这次换乘查询的起点和终点,结果也会以图形化的方式显示在系统的左侧,并且这三种结果也同样会显示在视图区域,让人们可以清楚的看到当前站点在什么具体的地方,线路在地图上是怎么样的,换乘查询的换乘站在那个具体的地方,起点终点也在地图上面标注出来了,主界面上就一个
18、按钮,用户输入完成后直接点击回车,即可完成对相应的事件的查询,本小组经过二天的时间,设计完成了公交查询系统的界面,界面效果如下图所示:图10 界面设计结果3.5系统的实现进行完上面的一些准备工作之后,便开始对系统进行实现,换乘查询部分:首先在数据库端,我们存了三张(具体多少张要看宁鹏飞写多少张了,好像比三张多,不错三张是主要的),包括BusStation站点表,线路表,和线路关系表,站点表里面存的是站点的名字和站点的ID,有可能还会把站点的坐标存储在里面, 而线路表里存的是线路的ID,线路名字,这里我们是把上行和下行分开存储,例如(723上行和723下行),他们是两条记录,由于我们到时候给的起
19、点站和终点站,我们想的是把经过终点和起点的所有公交车全部列举出来,看它们是否有相交的公交车,如果有,则表示可以直达,如果没有,我们把初始站点经过的公交车经过的站点全部列举出来,在把经过这些站点的公交车找出来,如果两个公交车集合进行比较,看是否有相交的部分,如果有相交的部分,则说明经过一次换乘即可到达终点站,如果还是没有交集,我们就这样一直找下去,当某次出现交集,即说明经过几次换乘即可到达终点,总体的思路是站点线路站点线路站点,每次到线路时看有没有交集,如果有交集,则记录下这样的起点线路站点线路···线路终点站。查询结果显示部分:我们的结果显示主要有三个部分,线路的
20、查询显示,公交线路结果的显示,站点的查询显示;为了满足这三种结果显示所需要的数据,我们在底层建了三个类,第一类是站点的类,类中有站点的ID,站点的名字等,可以把站点实例直接传给显示模块进行数据显示,第二个类是线路类,类中有线路的名字,线路的ID,线路的站点序列(是一个list<站点>),同样,把这个类的实例给显示模块即可进行显示,第三个类是换乘查询结果的类,该类中包含的类有结果换乘的次数,由于换乘会有换乘的公交车和换乘的站点,所以这个类中有两个list,分别为(list<站点类>,list<线路类>),把这个类的实例直接给显示端即可进行显示查询结果空间显示:
21、第一种是显示站点,由于站点具有ID,和站点名字还有站点的经纬度,我们有多重方式显示站点,实现起来比较简单,可以通过ID匹配到对应的站点进行显示,也可直接根据它的经纬度进行显示,第二种显示小线段,由于我们的小线段都有编号ID,和两个端点的站点名字,因此只需匹配到对应的线段后高亮显示即可。图11 系统查询结果(线路查询)2系统建的三个类如下class BusStation private int stationID; public int StationID get return stationID; set stationID = value; private string stationNam
22、e; public string StationName get return stationName; set stationName = value; class BusLine private int lineID; public int LineID get return lineID; set lineID = value; private string lineName; public string LineName get return lineName; set lineName = value; List<BusStation> StationList; clas
23、s BusChange private int changeCount; public int ChangeCount get return changeCount; set changeCount = value; List<BusStation> stations; List<BusLine> buslines;4实习过程中遇到的问题1).前面我们在消去重复站点时,出现了一点错误,有很多公交车都经过像(招呼站,临时站等),其实不同的公交虽然经过站点名字都叫招呼站和临时站,但是这些站点并不相同,我们在消除重复的时候,直接把这些站点算成一个,导致好多经过这些站点的小线段
24、都会出现错误,为我们矢量话带来了问题2).在开始确定站点坐标的时候,由于站点是每个人对着百度地图获取的坐标信息,有的人把站点看错或是点错,导致位置产生了很大的偏差,也为我们后期带来了很大的困难3).我们在获得不重复小线段的时有一点问题也为后来的矢量化带来了困难,在判断两条小线段是否是相同的两个小段时,我们比较的它的两个站点,如果他们的两个站点全部相等,则说明这两个小线段完全相同,我们只需要绘制一个,可是,在比较站点相等的时候,由于站点是不同的人获得的,就会导致像“站点1(临时站)”和“站点1(临时站)”这两个站不相等,中文的(站两个字符,而英文的(只占一个字符,判断失败就会导致明明两条相同的线段,我们用程序判断时,把两个明明相同的小线段认定为不同的小线段,我们后面还得删除。4)如果直接把我们得到数据存入数据库,可能会造成数据的不一致与冗余的现象,我们对必要的数据进行了分离,赋了唯一的ID,解决的数据的不一致与冗余的问题。5)界面搭建的时候,我们以前总是把界面和代码混在一块,每次界面想变动一点,底层的代码会有很大的改动,这次,我们将界面和代码尽量的分离开来,代码尽量封装到类和函数中,是代码具有良好的可扩展性。6)我们算法这部分比较简单的老师所说的暴力算法时间和空间上可能会造成一定程度上的浪费,我们想的是先把这个算法实现,并且实现
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电池采购合同范文
- 2024年度量子计算机芯片研发生产合同3篇
- 大学客栈出租合同
- 商场门面经营合同范例
- 2024年度山东省潍坊市文化旅游产业融合发展合同3篇
- 西山区税务筹划合同范例
- 2024版体育用品店店面承包合同协议书含年度赛事赞助及活动3篇
- 2024年度网络安全技术服务及设备租赁合同3篇
- 钢结构出资合作合同范例
- 2024年度人事厅编制事业单位聘用制改革配套措施合同3篇
- 可填充颜色的地图(世界、中国、各省份)课件
- (精心整理)小学数论基础知识
- 物质的量浓度-总结
- 皮带纵向撕裂保护
- 220KV高压线防护方案
- et200故障安全模块操作说明
- 邮件分拣PLC控制系统设计
- CNC车间工作总结
- 白杨礼赞默写
- 《机电控制系统分析与设计》课程大作业之一――基于MATLAB
- 跟阿铭学Linux课后练习题答案
评论
0/150
提交评论