还剩30页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
毕业设计(论文)题目员工通讯录管理系统姓名学号专业班级软件088班所在学院软件工程指导教师(职称)二○一三年十一月十八日员工通讯录管理系统开发【摘要】公交系统的发展对一个城市的发展来说相当重要,当公交线路较少时,乘客很容易找到一条可选线路,但当公交网络发展到一定规模时,找一条可选的经济的乘车路线就不是一件容易的事为了解决这个问题,设计和开发一个公交查询系统就非常必要本课题是利用ASP.Net以及GIS开发环境和技术工具开发一个基于GoogleMap的公交查询系统,主要内容为公交线路查询和公交换乘查询等功能本文首先较为详尽地介绍了ASP.Net以及GIS的有关理论,接着介绍了公交查询系统的需求分析、总体设计、功能模块及数据库的设计,最后对系统的主要功能模块的实现做了详细的介绍,并做了总结和展望【关键词】公交系统,ASP.Net,GoogleMap,GISStaffMailListManagementSystemDevelopment【Abstract】Thepublictransportationsystemsdevelopmentisquiteimportanttoacitysdevelopment.Whenthepublictransportationlineislittlethepassengerisveryeasytofindonelinetochoosebutwhenthepublictransportationnetworkhasdevelopedthecertainscaleitisnotaneasymatterforchoosingoneeconomicalridingroute.Inordertosolvethisdifficultproblemonepublictransportinquirysystemisdesigned.ThistopicdesignapublictransportinquirysystembasedonGoogleMapbyASP.NetandGIS.Thissystemhasimplementedmanagementoftheroutesandthestationsinformationaswellasthefunctionoftransitquery.FirstlythearticleintroducesconceptsandtechniquesofASP.NetandGISindetail.Andthenthisarticlediscussestherequirementanalysisoveralldesignthedesignoffunctionmodelsanddatabase.Atlastthisarticleexplainsthedesignandrealizationofwebpageandmainapplicationprogramofthesystem.【KeyWords】transportationsystem,ASP.Net,GoogleMap,GIS目录TOC\o1-3\h\z\u第1章绪论
11.1研究的目的与意义
11.2研究内容与要求2第2章开发环境与开发技术
32.1开发环境
32.2ASP.Net技术综述
32.
2.1概述
32.
2.
2.NET框架
32.
2.3ASP.NET的功能和特点
42.
2.4ASP.NET的工作原理
52.
2.
5.NET框架
52.2GIS技术综述
62.
2.1研究现状
62.
2.2研究方向
72.
2.3进展情况
82.
2.3存在问题9第3章公交查询系统总体设计
113.1需求分析
113.2总体设计
123.
2.1功能模块图
123.
2.2数据库设计12第4章系统功能模块的实现
144.1数据库连接
144.2换乘算法
144.3公交线路查询
154.4公交换乘查询
164.5地图管理18结论22参考文献23致谢24图目录TOC\h\z\t图标题1\c图
3.1系统功能模块图图
3.1系统功能模块图12图
4.1公交线路查询页面15图
4.2公交换乘查询页面16图
4.3地图管理18TOC\h\z\c图
4.4初始化地图图
4.4初始化地图19表目录TOC\h\z\t表标题1\c表
3.1公交信息表(bus)表
3.1公交信息表(bus)12表
3.2站点信息表(station)13表
3.3线路信息表(route)13第1章绪论
1.1研究的目的与意义随着国民经济的快速增长,我国的城市化步伐越来越快,机动车辆数量急剧增加再加上城市布局的局限,新增或是改扩建道路已经无法与机动车辆数量的增加相匹配,城市交通运输的压力越来越大而且由于我国城市间的贫富差距明显,大量人群流向东部沿海城市,使得这一现象在较发达的城市里更为明显优先的发展公共交通、倡导公交出行可以吸引出行量,改变人们出行方式,减少路面的交通流量,消除混合交通,解决我国交通拥挤的局面,这无疑是现在缓解交通压力最有效也是最实际的办法而且公交出行与使用其它交通工具相比消耗更少的能源据有关资料统计,每百公里的人均能耗,公交是小汽车的
8.4%,如果按照全国所有的私人小汽车计算,其中有1%的人改乘城市公交的话,仅此一项,全国每年就能节约燃油8000万升大力发展公交事业无疑哦对我国现在所推行的“低碳生活”无疑也有着巨大的意义但同时我国发展公交还面临这巨大的问题由于我国城市的面积较大,各地区的公交系统十分庞大,人们在出行时获取信息非常困难当人们去一个不熟悉的城市时,只能通过打电话咨询,看交通地图,向熟人打听等传统方式查询公交信息,这样会浪费很多时间、精力和财力,而且得到的信息也不一定是可靠的甚至很多时候在自己熟悉的城市都很难找到自己想要的公交信息缺乏便捷的公交信息发布系统,而且信息的准确性得不到保证,这极大的削弱了公交的吸引力为了更好的发展公交事业,缓解交通运输的压力,也为了促进“低碳生活”的推行根据社会需求和用户的需要,利用计算机技术建立一个使用简单,操作方便,查询速度快的公交查询系统势在必行这不仅便于市民了解公交信息,合理安排出行而且出行人员可以最快时间内查到你所要的准确站点信息和线路信息通过系统可以为城市居民和外地旅客搜索站点提供了一条或若干条快速、经济的经过该点的线路选择,方便人们的社会活动以信息化为基础,促进乘客、车辆、站点设施以及交通环境等要素之间的良性互动,推动了公交系统建设,也有利于社会的和谐发展
1.2研究内容与要求本课题是开发一个基于GoogleMap的公交查询系统,主要内容为公交线路查询和公交换乘查询等由于是基于GoogleMap的公交查询系统的开发,无论是公交线路查询模块还是公交换乘查询模块都要求将公交的运行线路直观的显示给用户这就要求我们要能很好的利用GoogleMap,以清晰和容易理解的线条或是标记将公交线路和站点显示在地图上所以如何能很好的将GoogleMap与公交线路结合就是这个系统的重点另外因为公交换乘查询模块中查询结果往往是多种多样的,所以如何满足用户的多种需求,从它们中选取最符合用户要求、最优的线路就成为这个系统实现的一个无法逾越的难点第2章开发环境与开发技术
2.1开发环境本项目的主要开发环境为
(1)工作环境WindowsXP;
(2)开发工具MicrosoftVisualStudio2008;
(3)数据库服务MySQL;
(4)开发应用技术和语言C#,ASP.Net,GIS;
2.2ASP.Net技术综述
2.
2.1概述ASP.NET又称为ASP+,但它不是ASP的简单升级,而是微软提出的.NET框架的一部分,它是一种以.NET框架为基础开发网上应用程序的全新模式
2.
2.
2.NET框架.NET框架包括公共语言运行库(CLR:CommonLanguageRuntime)、基础类库(BaseClassLibrary)、ASP.NET、VB.NET、C#等语言运行库MS中间语言(MSIntermediateLanguage)——是.NET的通用语言无论使用哪一种.NET语言编写的程序代码,在执行之前,都会把它编译成MS中间语言CLR(CommonLanguageRuntime,公共语言运行时刻库)用于执行MS中间语言.NETFramework基础类库(.NETFrameworkClassLibraries)——包含大量重要功能的代码库用户可以非常方便的将这些库调用到应用程序中,这样可使复杂任务的程序代码更为简洁.NET语言(.NETLanguage)——.NET语言是是指可以将使用其编写的代码编译成MS中间语言的编程语言常见的语言有VB.NET和C#等ASP.NET——说明如何向WEB开放.NETFramework本身,用IIS管理简单的代码页,以使它们能被编译成完整的.NET程序这些程序可用来生成能发送到浏览器的HTMLWEB服务——是指可以通过WEB访问的组件,可以是任何事物,例如新闻标题、天气预报、股票走势和操作系统更新等
2.
2.3ASP.NET的功能和特点在ASP.NET不仅仅是ActiveServerPageASP的下一版本;它是统一的Web开发平台,用来提供开发人员生成企业级Web应用程序所需的服务ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,用于生成更安全、可伸缩和稳定的应用程序可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强该ASP应用程序的功能ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序另外,任何ASP.NET应用程序都可以使用整个.NET框架开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等ASP.NET技术的简洁的设计和实施,完全面向对象、具有平台无关性且安全可靠、主要面向互联网的所有特点此外,强大的可伸缩性和多种开发工具的支持,语言灵活,也让其具有强大的生命力ASP.NET以其良好的结构及扩展性、简易性、可用性、可缩放性、可管理性、高性能的执行效率、强大的工具和平台支持和良好的安全性等特点成为目前最流行的Web开发技术之一而采用ASP.NET语言的网络应用开发框架,目前也已得到广泛的应用,其优势主要是为搭建具有可伸缩性、灵活性、易维护性的业务系统提供了良好的机制而且还具有以下的特点
(1)效率增强ASP.NET采用编译后运行的方式,速度大大提高;
(2)顶级开发工具支持ASP.NET可以在VisualStudio.NET中开发,支持所见即所得、拖放控件和自动部署等功能可以使开发效率大大提高;
(3)程序结构清晰ASP.NET可以将程序代码和HTML标记分开,使得程序结构更清晰;
(4)开发简单ASP.NET中的很多特性使得开发更简单如验证控件;
(5)移植方便在ASP.NET中,可以向目标服务器直接复制组件,当需要更新时,重新复制一个即可ASP.NET会自动逐步用新的组件替换旧的组件
(6)Web服务一种特殊的Web组件,该组件有一些属性和方法,其它网上应用程序或传统应用程序可以远程调用这些属性和方法,并返回一个简单的结果
2.
2.4ASP.NET的工作原理首先,有一个HTTP请求发送到Web服务器要求访问一个Web网页Web服务器通过分析客户的HTTP请求来定位所请求网页的位置如果所请求的网页的文件名的后缀是aspx,那么就把这个文件传送到aspnet_isapi.dll进行处理,由aspnet_isapi.dll把ASP.NET代码提交给CLR如果以前没有执行过这个程序,那么就由CLR编译并执行,得到纯HTML结果;如果已经执行过这个程序,那么就直接执行编译好的程序并得到纯HTML结果最后把这些纯HTML结果传回浏览器作为HTTP响应浏览器收到这个响应后,就可以显示Web网页
2.
2.
5.NET框架.NET框架包括公共语言运行库(CLR:CommonLanguageRuntime)、基础类库(BaseClassLibrary)、ASP.NET、VB.NET、C#等语言运行库MS中间语言(MSIntermediateLanguage)——是.NET的通用语言无论使用哪一种.NET语言编写的程序代码,在执行之前,都会把它编译成MS中间语言CLR(CommonLanguageRuntime,公共语言运行时刻库)用于执行MS中间语言.NETFramework基础类库(.NETFrameworkClassLibraries)——包含大量重要功能的代码库用户可以非常方便的将这些库调用到应用程序中,这样可使复杂任务的程序代码更为简洁.NET语言(.NETLanguage)——.NET语言是是指可以将使用其编写的代码编译成MS中间语言的编程语言常见的语言有VB.NET和C#等ASP.NET——说明如何向WEB开放.NETFramework本身,用IIS管理简单的代码页,以使它们能被编译成完整的.NET程序这些程序可用来生成能发送到浏览器的HTMLWEB服务——是指可以通过WEB访问的组件,可以是任何事物,例如新闻标题、天气预报、股票走势和操作系统更新等
2.2GIS技术综述
2.
2.1研究现状随着计算机技术的飞速发展、空间技术的日新月异及计算机图形学理论的日渐完善,GISGeographicInformationSystem)技术也日趋成熟,并且逐渐被人们所认识和接受近年来,GIS被世界各国普遍重视,尤其是“数字地球”概念的提出,使其核心技术GIS更为各国政府所关注目前,以管理空间数据见长的GIS已经在全球变化与监测、军事、资源管理、城市规划、土地管理、环境研究、农作物估产、灾害预测、交通管理、矿产资源评价、文物保护、湿地制图以及政府部门等许多领域发挥着越来越重要的作用上世纪90年代以来,由于计算机技术的不断突破以及其它相关理论和技术的完善,GIS在海量数据存储、处理、表达、显示及数据共享技术等方面都取得了显著的成效,其概括起来有以下几个方面
[1]
①硬件系统采用服务器/客户机结构,初步形成了网络化、分布式、多媒体GIS;
②在GIS的设计中,提出了采用“开放的CIS环境”的概念,最终以实现资源共享、数据共享为目标;
③高度重视数据标准化与数据质量的问题,并已形成一些较为可行的数据标准;
④面向对象的数据库管理系统已经问世,正在发展称之为“对象--关系DBMS(数据库管理系统)”;
⑤以CIS为核心的“3S”技术的逐渐成熟,为资源与环境工作提供了空间数据新的工具和方法;
⑥新的数学理论和工具采用CIS,使其信息识别功能、空间分析功能得以增强等等在GIS技术不断发展下,目前GIS的应用已从基础信息管理与规划转向更复杂的区域开发、预测预报,与卫星遥感技术相结合用于全球监测,成为重要的辅助决策工具据有关部门估计,目前世界上常用的GIS软件己达400多种
[2]尽管现存的GIS软件很多,但对于它的研究应用,归纳概括起来有二种情况一是利用GIS系统处理用户的数据;二是在GIS的基础上,利用它的开发函数库二次开发用户专用的GIS软件目前已成功应用包括资源管理、自动制图、设施管理、城市和区域规划、人口和商业管理、交通运输、石油和天然气、教育、军事等九大类别的一百多个领域在美国及发达国家,GIS的应用遍及环境保护、灾害预测、城市规划建设、政府管理等众多领域
[3]近年来,随着我国经济建设的迅速发展,加速了GIS应用的进程,在城市规划管理、交通运输、测绘、环保、农业等领域发挥了重要的作用,取得了良好的经济效益和社会效益
[4]
2.
2.2研究方向随着我国城市化进程的加快,城市规模越来越大,公交线路也在不断增加怎样选择合适的公交车到达目的地成为市民关注的问题地理信息系统geographicinformationsystem,GIS是以空间数据为基础,在计算机软硬件的支持下,对空间相关数据进行采集、管理、操作、分析、模拟和显示,采用地理模型分析方法,实时提供多种空间和动态地理信息,为研究和决策服务而建立起来的计算机系统组件式GIS作为现今GIS应用发展的又一大趋势,将组件GIS技术应用于开发公交查询系统,可以为人们的出行提供极大的方便
[5]目前应用最广泛的GIS组件包括MapInfo公司推出的MapX和ESRI推出的MapObjects组件式GIS开发的特点是开发周期短、成本低,快捷方便的集成GIS通用功能的同时,又可以针对不同的专业定制需求,使用可视化开发环境进行二次开发
[6]MapX是MapInfo公司向用户提供的具有强大地图分析功能的ActiveX控件产品,是一个基于OCX技术的可编程控件
[7]MapObjects是ESRI公司提供的地图组件,由一个称为Map控件的ActiveX控件和一系列可编程的ActiveX对象组成,可以在标准的Windows编程环境下使用它们都具有专题化地图、属性数据绑定、叠加栅格图像、图层控制、集成GPS数据、通用地图操作、地图信息查询、图元编辑、地图标注等功能在VB、Delphi、PowerBuilder、VC等可视化开发环境中,只需在设计阶段将MapX和MapObjects控件放入窗体中,并对其进行编程,设置属性或调用方法或相应事件,即可实现数据可视化、专题分析、地理查询、地理编码等丰富的地图信息系统功能
[8]
2.
2.3进展情况自20世纪60年代世界上第一个GIS——加拿大地理信息系统(CGIS)问世以来,经过40年的发展,GIS经历了三个阶段的发展目前,随着第三代互联网的提出与实施,以及计算机技术、数据库技术的飞速发展,GIS即将步入第四代GIS发展阶段
[9]第四代GIS软件将在数据组织、存储、检索和运算等方面发生革命性的变革数据组织应该是面向空间实体的,空间位置只是实体众多属性中的一类,它应和其它属性有机地组织在一起并统一存放;“关系”概念和“关系运算”应该加以扩充,应该包括空间关系及其运算;传统的结构化查询语言应该扩充,把空间关系及其查询包括在里面;以倒排表为基础的数据库索引机制应该扩展,建立至少包括拓扑关系在内的新的索引机制;数据存储机制应该适应空间数据提取和计算的要求等只有实现数据真正的一体化存储和处理,才能自由地、方便地、快速地实现人们所期望的处理功能
[10]在功能上,第四代GIS软件应该具备支持数字地球(区域、城市)的能力,成为OS、DBMS之上的主要应用集成平台,它具有统一的海量存储、查询和分析处理能力、一定的三维和时序处理能力、强大的应用集成能力和灵活的操纵能力,且具有一定的虚拟现实表达在不久的将来,GIS将朝着“3S”集成的方向发展“3S”是GPS(全球定位系统)、RS(遥感)和GIS的简称,“3S”集成是指将遥感、空间定位系统和地理信息系统这三种对地观测技术有机地集成在一起地理信息是一种信息流,RS、GPS和GIS中任何一个系统都只侧重于信息流特征中的一个方面,而不能满足准确、全面地描述地理信息流的要求目前,“3S”集成还仅限于两两结合方式,这是“3S”集成的初级和基础起步阶段,其核心是GIS与RS的结合这种两两结合虽然优于单一系统,但是仍然存在以下缺陷将“3S”进行集成从而形成一体化的信息技术体系是非常迫切的这种集成包括空基“3S”集成和地基“3S”集成,即在硬件方面建立具有同步获取涉谱数据和空间数据的高重复观测能力的平台,而在软件方面使GIS支持数据封装,同时解决图形和图像数据的统一处理问题因此,无论从物质运动形式、地学信息的本质特征还是“3S”各自的技术特征来说,“3S”集成都是科技发展的必然结果
2.
2.3存在问题虽然GIS技术由于在空间数据的存储、转换、分析等方面的突出功能在自然资源管理、城市规划、经济分析乃至军事组织等诸多领域已得到广泛应用,但是由于在模型、数据结构等方面存在着不足,一定程度上制约了GIS技术的发展目前通用的GIS主要有矢量、栅格或两者相加的混合系统,即使是混合系统实际上也是将两类数据分开存储,当需要执行不同的任务时采用不同的数据形式在矢量结构方面,其缺点是处理位置关系(包括相交、通过、包含等)相当费时,且缺乏与DEM和RS直接结合的能力在栅格结构方面,存在着栅格数据分辨率低,精度差;难以建立地物间的拓扑关系;难以操作单个目标及栅格数据存贮量大等问题
[11]传统GIS模型是按照计算机的方法对客观世界地理空间不自然的分割和抽象,使得人们认知地理空间的认知模型与计算机中的数据模型不能形成良好的对应关系,难以表达复杂的地理实体,更难满足客观世界的整体特征要求在GIS软件开发中,如果语义分割不合理,将难以有效表达地理空间实体间的关系,这就导致较深层次的分析、处理操作难以实现随着GIS应用需求领域的不断开拓及计算机技术的迅速发展,对空间数据模型和空间数据结构提出了更高的要求,使得传统的地理空间数据模型力不从心,逐渐暴露其弊端
[12]目前,面向对象的数据模型一定程度上解决了传统GIS数据模型的某些不足,但是OODB(面向对象数据库)目前仍未在市场以及关键任务应用方面被广泛接受,因为OODB作为一个DBS还不太成熟,如缺少完全非过程性的查询语言以及视图、授权、动态模式更新和参数化性能协调等;且OODB与RDB之间缺少应有的兼容性,因而使得大量的已建立起来的庞大的RDB客户不敢轻易地去选择OODB
[13]现在,GIS正处在一个大变革时期,GIS的进一步发展还面临不少问题,主要表现在以下几个方面
[14]
①GIS设计与实现的方法学问题在GIS设计与实现过程中缺乏面向对象的认知方法学和面向对象的程序设计方法学的指导,导致GIS软件系统的可靠性和可维护性差;
②GIS的功能问题当前以数据采集、存储、管理和查询检索功能为主的GIS,不能满足社会和区域可持续发展在空间分析、预测预报、决策支持等方面的要求,直接影响到GIS的应用效益和生命力;
③三维GIS模型及可视化问题目前大多数GIS软件的图形显示是基于二维平面的,即使是三维效果显示也是采用DEM的方法来处理表达地形的起伏,涉及到地底下真三维的自然和人工现象显得无能为力
[15]第3章公交查询系统总体设计
3.1需求分析本课题是开发一个基于GoogleMap的公交查询系统,主要内容为公交线路查询和公交换乘查询
(1)公交线路查询用于查询起点站、终点站及途径的各个站点,在地图上显示出来同时显示该线路的首末班车时间、票价、月票等信息
(2)公交换乘查询用于查询起点至终点公交换乘的路线,按照换乘公交的次数及所需时间选出最优路线在地图以实线显示计算所需时间和路程,如需步行则显示步行距离并在地图上以不同颜色实线显示另外还提供其它其它换乘方案以选择
(3)对GoogleMap地图的载入、维护及管理
3.2总体设计
3.
2.1功能模块图图
3.1系统功能模块图
3.
2.2数据库设计数据库设计是系统设计的核心根据需求分析,设计了公交信息表、站点信息表、线路信息表3张表其中公交信息表中有公交途径站点信息、价格、首末班车时间等信息站点信息表中含有途径站点的公交信息、站点坐标等信息线路信息表中含有公交线路的坐标信息表结构具体信息如下表
3.1公交信息表(bus)字段说明字段名字段类型公交编号bus_idint公交名bus_nameVarchar20途径站点编号bus_stationVarchar100票价bus_priceint起点站首末车时间bus_starttimeVarchar20终点站首末车时间bus_endtimeVarchar20表
3.2站点信息表(station)字段说明字段名字段类型站点编号station_idint站点名station_nameVarchar20途径站点的公交编号station_busVarchar20站点坐标station_coordinatesVarchar20表
3.3线路信息表(route)字段说明字段名字段类型线路编号route_idint公交名route_nameVarchar20线路坐标信息route_busVarchar2000第4章系统功能模块的实现
4.1数据库连接C#连接MySQL的方法有两种1使用MySQLDriverCS连接MySQL数据库;2通过ODBC访问MySQL数据库由于作为MySQL的专用数据驱动程序,MySQLDriverCS的速度大大快于ODBC.NET,所以采用了第一种方法MySQLDriverCS是MySQL数据库的一个免费开源的.NET驱动程序和Sql.NETDataProvider是为SqlServer一样,它是专门为MySQL设计的,可以叫做MySQL.NETDataProvider使用他不需要额外的去设置ODBC数据源,基本上只要能连接到MySQL就能通过MySQLDriverCS来访问
4.2公交线路查询公交线路查询页面如图
4.1,输入要查询的公交号之后在地图中显示公交的具体线路,在页面右侧显示途径站点、票价、起点站首末车时间和终点站首末车时间图
4.1公交线路查询页面这部分主要是通过WebService访问数据库取出公交线路的具体信息,然后以xml形式传输给客户端相关代码如下//C#代码publicArrayListbusStationSearchstringbusName{ArrayListresult=newArrayList;stringsqlstr=selectbus_stationbus_pricebus_starttimebus_endtimefrombuswherebus_name=+busName+;string[]busStation=MySQLExecutesqlstrnewstring[]{bus_stationbus_pricebus_starttimebus_endtime}.Split;forinti=0;ibusStation.Length-4;i++{sqlstr=selectstation_namestation_coordinatesfromstationwherestation_id=+busStation[i]+;result.AddMySQLExecutesqlstrnewstring[]{station_namestation_coordinates};}result.AddbusStation[busStation.Length-4];result.AddbusStation[busStation.Length-3];result.AddbusStation[busStation.Length-2];returnresult;}最后通过javascript接收解析并动态的在页面上显示具体的信息相关代码如下//javascript代码functionbusSearchCallback{ifxmlHttp.readyState==4{ifxmlHttp.status==200{busSearchInit;varxmlDom=createXmlxmlHttp.responseText;vartmp=xmlDom.getElementsByTagNameanyType;varresult=;document.getElementByIdbus.innerHTML=h3站点信息/h3;forvari=0;itmp.length-3;i++{varinfo=tmp[i].firstChild.nodeValue.split;ifiparseInttmp.length/2-1{document.getElementByIdul
1.innerHTML+=liatitle=+info
[0]+href=\javascript:void0;\em+i+1+./emspan+info
[0]+/span/a/li;}else{document.getElementByIdul
2.innerHTML+=liatitle=+info
[0]+href=\javascript:void0;\em+i+1+./emspan+info
[0]+/span/a/li;}ifi==0{stationMakernewGLatLngNumberinfo
[1]Numberinfo
[2]info
[0]../Image/start.png30321525;}elseifi==tmp.length-4{stationMakernewGLatLngNumberinfo
[1]Numberinfo
[2]info
[0]../Image/end.png30321525;}else{stationMakernewGLatLngNumberinfo
[1]Numberinfo
[2]info
[0]../Image/bus.gif
15157.
57.5;}}//发车时间document.getElementByIdbusInfo.innerHTML=p全程票价元:+tmp[tmp.length-3].firstChild.nodeValue+/p+p起点站首末车时间:+tmp[tmp.length-2].firstChild.nodeValue+/p+p终点站首末车时间:+tmp[tmp.length-1].firstChild.nodeValue+/p;}}}
4.3公交换乘查询公家换乘查询页面如图
4.2,输入起点站与终点站之后在地图中显示公交的具体换乘线路,在页面右侧显示换乘公交号、换乘地点以及路程信息图
4.2公交换乘查询页面这部分的难点在于换乘算法,在一个公交网络内,对于一个具体的公交出行需求而言,已知一个出发站点O与一个目的站点D,具体求解步骤为1针对出发站点O,建立途经该站点的所有公交线路集合,称为集合A2对于目的站点D,建立一个途经该站点的公交线路集合B3求A与B的交集A∩B=AB4若AB≠空,则存在公交线路i∈AB,i同时经过站点O与D,故从O到D不需要换乘,乘坐i路公交车即可5如果AB=空,则对集合A进行扩展,扩展的方法是将与集合A中线路交叉的公交线路划归到一个集合AA这里所谓“交叉”是指两条不同的公交线路经过了同一个站点6求AA与B的交集,即AA∩B=AAB.判断AAB集合是否为空,如果AAB≠空,则存在公交线路i∈AAB,则i可以到达站点D,同时i与A中某一元素交叉,找出与i交叉的路,设为j,则乘车方案为j→i,即先乘坐j,然后在j与i交叉的站点下车,换乘i即可由O到达D7如果AAB=空,则继续对AA集合进行扩展,扩展原则和前面相同,扩展的集合为AAA.如此一直进行下去,则可以查找到0次换乘、1次换乘、2次换乘等结果,或者直到集合不能再扩展,则搜索失败,即从站点O无法到达站点D相关代码如下publicArrayListrouteSearchstringstartstringend{string[]startBus=MySQLExecuteselectstation_busfromstationwherestation_name=+start+.Split;string[]endBus=MySQLExecuteselectstation_busfromstationwherestation_name=+end+.Split;ArrayListbusesOfRoute=getBusOfRoutestartBusendBus2;busesOfRoute=removeTheSameBusbusesOfRoute;ArrayListresult=newArrayList;foreachArrayListtmpinbusesOfRoute{ArrayListtransferStations=newArrayList;transferStations.Addstart;forinti=0;itmp.Count-1;i++{//同线路取一种方案stringstation=MySQLExecuteselectstation_namefromstationwherefind_in_set+tmp[i]+station_busandfind_in_set+tmp[i+1]+station_bus.Split
[0];transferStations.Addstation;}transferStations.Addend;stringroute=;stringbuses=;stringstations=;stringstationCoordinates=;forinti=0;itmp.Count;i++{stringsqlstr=selectsubstringroute_busselectinstrroute_busstation_coordinatesfromstationroutebus+wherefind_in_setbus_namestation_busandroute_name=bus_nameandstation_name=+transferStations[i]++andbus_name=+tmp[i]+selectinstrroute_busstation_coordinatesfromstationroutebus+wherefind_in_setbus_namestation_busandroute_name=bus_nameandstation_name=+transferStations[i+1]++andbus_name=+tmp[i]+-selectinstrroute_busstation_coordinatesfromstationroutebus+wherefind_in_setbus_namestation_busandroute_name=bus_nameandstation_name=+transferStations[i]+andbus_name=+tmp[i]+fromroutewhereroute_name=+tmp[i]+;route+=MySQLExecutesqlstr;buses+=tmp[i]+;stations+=transferStations[i]+;stationCoordinates+=MySQLExecuteselectstation_coordinatesfromstationwherestation_name=+transferStations[i]++;}stringendCoordinates=MySQLExecuteselectstation_coordinatesfromstationwherestation_name=+end+;route+=endCoordinates;stations+=end;stationCoordinates+=endCoordinates;result.Addtmp.Count++buses+stations++stationCoordinates++route;}returnresult;}
4.4地图管理地图管理如图
4.3,在页面中将线路以线条和图表等形式具体的显示,并显示一些站点信息图
4.3地图管理这是整个系统最关键的部分之一,整个系统中与googlemap相关的部分全部集中在这里首先是显示地图界面的显示,要想使用googlemapapi页面必须包含指向这个地址的script标记,并加上apikey相关代码如下scriptsrc=http://maps.google.com/mapsfile=apiv=2key=ABQIAAAA_VgofLq68MFJGQHUhUmtERRi_j0U6kJrkFvY4-OX2XYmEAa76BQnd9_q6AW8zEWOCD1c44XzkO3d7wtype=text/javascript/script然后利用描绘地图的类GMap2,设置其中点坐标在页面上显示一个地图如图
4.
4.图
4.4初始化地图相关代码如下//初始化地图functionload{ifGBrowserIsCompatible{map=newGMap2document.getElementByIdmap;map.addControlnewGSmallMapControl;map.addControlnewGMapTypeControl;map.setCenternewGLatLng
39.
0386.484;map.enableScrollWheelZoom;}}当在地图上显示线路信息时就要使用googlemapapi提供的编码折线,利用GLatLng类存储线路拐点的坐标,然后使用GPolyline类将拐点连成线路绘制在地图上相关代码如下functionmapLoadresult{varpoint=result.split;varcoordinates=newArray;forvari=0;ipoint.length-2;i+=2{coordinates.pushnewGLatLngNumberpoint[i]Numberpoint[i+1];}varpolyline=newGPolylinecoordinates#FF
000050.5;map.addOverlaypolyline;varcenterX=Numberpoint
[0]+Numberpoint[point.length-3]/2;varcenterY=Numberpoint
[1]+Numberpoint[point.length-2]/2;map.setCenternewGLatLngcenterXcenterY13;//map.setCenternewGLatLng
30.
31848120.159312;}functionrouteSearchCallback{ifxmlHttp
3.readyState==4{ifxmlHttp
3.status==200{varxmlDom=createXmlxmlHttp
3.responseText;vartmp=xmlDom.getElementsByTagNameanyType;varresult=;tmp=tmp
[0].firstChild.nodeValue.split;varbusNum=tmp
[0];routeSearchInittmp[parseIntbusNum+1]tmp[2*parseIntbusNum+1];varwords=;forvari=1;ibusNum;i++{words+=乘坐b+tmp[i]+/b,到达b+tmp[i+parseIntbusNum+1]+/b,;}words+=乘坐b+tmp[busNum]+/b,到达b终点/b;varnewRow=document.getElementByIdrs.insertRow;newRow.style.cursor=pointer;varcell=newRow.insertCell;cell.style.borderBottom=1pxsolid#ccc;cell.style.verticalAlign=top;cell.style.width=20px;cell.style.textAlign=right;cell.style.padding=4px3px;cell.innerHTML=
1.;varcell=newRow.insertCell;cell.style.borderBottom=1pxsolid#ccc;cell.style.verticalAlign=top;cell.style.padding=2px;cell.style.lineHeight=18px;cell.innerHTML=words;varcell=newRow.insertCell;cell.style.borderBottom=1pxsolid#ccc;cell.style.verticalAlign=top;cell.style.textAlign=right;cell.style.padding=4px3px;cell.style.whiteSpace=nowrap;forvari=1;itmp.length;i++{ifi=busNum{}elseifibusNumi=2*parseIntbusNum+1{ifi==parseIntbusNum+1{stationMakernewGLatLngNumbertmp[i+parseIntbusNum+1]Numbertmp[i+parseIntbusNum+2]tmp[i]../Image/start.png30321525;}elseifi==2*parseIntbusNum+1{stationMakernewGLatLngNumbertmp[2*i]Numbertmp[2*i+1]tmp[i]../Image/end.png30321525;}else{stationMakernewGLatLngNumbertmp[2*i]Numbertmp[2*i+1]tmp[i]../Image/bus.gif
15157.
57.5;}}elseifi2*parseIntbusNumi6*parseIntbusNum{}else{result+=tmp[i]+;}}cell.innerHTML=getDistanceresult+公里;mapLoadresult;}}}另外还需要在地图上加上一些相关的标记以显示一些必要的信息,这就用到了GMarker类,通过设置它的坐标、图标,然后以html标签填充里面的内容,这样就可以将信息以合适的方式显示在地图上相关代码如下functionstationMakerpointstationimgwidthheightanchorXanchorY{varicon=newGIcon;icon.image=img;icon.iconSize=newGSizewidthheight;icon.iconAnchor=newGPointanchorXanchorY;icon.infoWindowAnchor=newGPointanchorXanchorY;varmaker=newGMarkerpointicon;GEvent.addListenermakerclickfunction{map.openInfoWindowpointdocument.createTextNodestation;};map.addOverlaymaker;}结论经过几个月时间,从最初的需求分析到功能的实现然后经过测试,公交查询系统已经基本达到了设计要求它可以较为快捷查询到各路公交车的站点信息、以及其它的一些基本的信息让人们可以及时的了解到公交线路的详细信息,另外它提供的公交换乘查询可以为人们的出行提供一些可以参考的公交换乘方案,让人们出行的方式有更多的选择但由于时间的限制,系统开发的并不完善,测试运行的时间也有所缩短,公交数据不够完全未能覆盖全部的地区,因而系统在很多细节上的地方还能有很大的改进空间在未来可以为系统加上具有更好用户体验的功能,为换乘提供一些更好的算法以提供更好更全面的换乘线路这个系统在总体上已经实现了预期的目标,但难免会存在一定的疏漏,请各位老师批评指导参考文献
[1]杜志忠.地理信息系统发展概况[J].中学地理教学参考2001,
3.
[2]廖飞.基于GIS的公交换乘查询系统[J].山东交通学院学报,2009,
93.
[3]刘东杰.关于城市公交查询系统算法的探讨[J].吉林建筑工程学院学报,2010,
271.
[4]ChristopherLMerrill,PerformanceImpactsofAJAXDevelopment[EB/OL].http://webperformancei.com/library/reports/AjaxBandwidth/index.html.
[5]StevenSanderson.ProASP.NETMVCFramework[M].Berkeley:Apress
2009.
[6]刘爽,卢桂艳.VC环境下两种GIS组件开发比较[J].计算机工程与设计,2008,
292.
[7]彭纪奎,胡平.基于MapObjects的GIS在公交查询系统中的应用研究[J].计算机工程与设计,2009,
14.
[8]陈肖磊,陈大克,李景文,董星星,王乔俊.GIS技术的研究现状及未来发展趋势[J].国土资源信息化,2007,
3.
[9]连剑,许钦泰,王永,陈铮,樊铭渠.基于GIS公交查询系统的设计与实现[J].交通运输工程与信息学报,2009,
123.
[10]何成万,张慧,陈艳兰,严小环.基于Web
2.0的公交信息查询系统的设计与实现[J].武汉工程大学学报,2009,139
[11]李根杰,王少安,张子平.地理信息系统的发展趋势[J].国土资源信息化,2002,
2.
[12]李丽,张楠.交通查询系统的软件设计[J].电脑知识与技术,
201022.
[13]何谷.公交系统换乘方式研究[J].交通标准化,2010,
7.
[14]易若晨韩印张盛.面向智能公交系统的网络优化方法研究[J].交通与运输,2010,
7.
[15]刘东杰.关于城市公交查询系统算法的探讨[J].吉林建筑工程学院学报,2010,
1.致谢时光飞逝,美好的大学生活转瞬就已经到了结束的时刻那些陪伴着我痛过笑过的朋友,那些教导帮助我的老师也即将别离,在这里我向你们致以最深的谢意感谢那些陪伴我和我一起犯傻的朋友,谢谢你们陪我走过这美好的四年感谢我的导师张泳老师,如果没有您的谆谆教导、没有您的指引和督促这篇论文不会顺利的完成谢谢您的关怀,谢谢您给过的帮助感谢所有教导过我的老师,谢谢你们教导我知识和处事的道理感谢我的父母和家人,谢谢你们公交查询系统公交线路查询公交换乘查询地图管理查询各站点信息查询票价查询首末班车时间查询换乘线路查询所需时间路程地图维护地图信息管理。