公交路线查询系统毕业论文(设计)_第1页
公交路线查询系统毕业论文(设计)_第2页
公交路线查询系统毕业论文(设计)_第3页
公交路线查询系统毕业论文(设计)_第4页
公交路线查询系统毕业论文(设计)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业论文公交路线查询系统bus line inquiry systemname: xxxtutor: xxx college: xxxmajor: xxxdirection: xxxxxx universitymay xxx摘 要随着人类社会的发展,信息化时代的到来,人们生活质量的不断提高,城市间的往来更加频繁,导航已成为生活中不可缺少的一部分。但导航仪不是最佳选择,导航仪造价昂贵,又不方便携带。然而,手机却已经成为人们日常生活中不可缺少的工具,智能手机是人们最为期待的对象,从单一的通信到互联网的时代。iphone更是现在社会追逐的新潮,华丽的外表,高端的操作系统,五花八门的应用软件,成为当代

2、的潮流。经由上述的分析,本文提出并实现基于googlemap api的iphone导航应用软件,能够提供给人们手机智能化交通的地图导航服务。课题针对于ios的深入研究分析的基础上,基于googlemap api for ios开发一款iphone上的地图应用软件。运用数据库解析xml的内容,运用xcode开发环境,由于数据量大,本软件只有客户端可视化模块,针对需求,主要实现如下功能:哈尔滨公交路线的查询,各个站点在地图上的显示,gsp地位功能等。针对前台模块的设计,已基本上实现其主要功能。关键字: googlemap; xcode; ios; 地图导航bus line inquiry syst

3、emabstractwith the development of human society, the era of information technology, quality of life continue to improve, more frequent exchanges between cities, the navigation has become an indispensable part of life. however, the navigator is not the best choice for navigation systems are expensive

4、 and inconvenient to carry. however, the phone has become an indispensable tool in daily life, and smart phones is that people are most looking forward to object to the era of the internet from a single communication. iphone is now chasing fashion, gorgeous appearance, high-end operating system, a w

5、ide variety of applications, a contemporary trend. through the above analysis, this paper presents and map navigation services based on googlemap api iphone navigation application, providing people with mobile intelligent traffic. topics for in-depth research and analysis in ios based on based on go

6、oglemap api for ios-to develop a iphone map application software. use of the contents of the database parse the xml, use the xcode development environment, large volumes of data, the software only client visualization module for demand, mainly the following functions: harbin bus route queries, each

7、site displayed on the map and gsp status function. for the design of the front module has basically achieved its primary function.keywords: googlemap; xcode; ios; map navigation目 录摘 要iabstractii1前言11.1 项目研发背景11.2 项目研发目的11.3 项目研发内容22 哈尔滨公交路线查询系统的开发分析32.1 问题定义32.2 可行性分析32.2.1 技术可行性分析32.2.2 操作可行性分析32.2

8、.3 经济可行性分析32.2.4 社会环境可行性分析42.3 功能需求分析42.3.1 gps地位模块:42.3.2 公交路线列表:43.总体设计63.1系统目标的确定63.2系统总体设计63.2.1 项目系统模块图63.2.2 数据流图(dfd)73.2.3 项目系统流程图73.3数据库设计73.4数据库的选用94.公交路线查询系统详细设计及实现104.1主界面的功能实现104.2 gps定位模块的功能实现114.3公交路线查询模块的功能实现134.3.1 公交路线列表模块的功能实现134.3.2 列表索引模块的功能实现144.3.3 公交站点显示模块的功能实现154.3.4 公交路线显示模

9、块的功能实现164.3.5后台数据库194.4说明模块功能实现195 结论22参考文献23致谢241前言1.1 项目研发背景在信息化的时代,人们已经热衷于从互联网查找自己需要的信息,这一快捷、省时、省力的方式已服务于社会的各方面与各群体,互联网已成为人们生活中不可缺少的一部分。由于缺少及时高效的实时路线查询服务,人们出行仍是口头询问和地图查询,尤其是刚刚来到一个陌生的城市,往往得不到最准确的路线信息,这给人们带来了许多烦恼。公交已成为现代都市的主要交通工具,与人们生活息息相关,无论是工作、学习、探亲、旅游,公交车都已经是现代化城市的象征。所以说对于公交路线的查询是与生活息息相关的事情,尤其是旅

10、游,到达一个陌生的城市,最主要的是知道公交路线图。虽然现在有很多的公交路线电话查询服务平台,但由于这种服务耗费人力大,实时性差,而且还无法满足人们的需求。互联网查询平台,由于便携式电脑的携带查询不是很方便,也无法满足人们的需求。移动终端的智能化已成为21世纪的信息化,互联网化的标志,手机已不再只是为了通讯的产物了,手机正在日常生活中逐渐充当着重要角色。从通讯手机到音乐手机,现在又逐步走向智能化,网络化时代。智能化手机已成为人们对移动通讯设备的最主要的需求,在不久的将来,智能手机占据整个市场。智能手机软件也成为人们生活中消费的产品,手机软件对于人们来说不可或缺的部分。智能手机也已经和人们的生活息

11、息相关,智能手机的功能越来越加强大,从而逐步替代便携式电脑。人们对于他们的功能的需求也日益增长,无论是学习,生活,工作,娱乐,手机都是人们最好的设备。iphone,近两年来一个响亮的名字,给手机带来了一个新的时代,一个集通讯、试听、上网装置于一体的智能手机,首次引进了多点触控的理念,把手机市场重新推向了高峰。对于现在社会,iphone是人们生活的一种标志,一种高质量生活的品牌,随着iphone一代一代的替换,这款手机已经风靡全球,已成为智能手机的里程碑。1.2 项目研发目的在前面提到了,人工的公交路线电话查询方式,存在着工作容易失误,耗费人力、财力巨大,查询的失误率高等缺点,无法满足人们对公交

12、路线的查询。电脑查询虽然提高了准确性,以及提高了对路线查询的准确性,人力财力的消耗性减小,但还存在这电脑无法便携,实际操作性差。本项目提出,利用手机互联网的信息共享和告诉通信的优势以及轻巧,便携等特点较好的解决公交路线的查询问题。手机查询可以很好地解决人工查询的先天缺陷。1手机软件查询使用文字输入,可以避免语音理解所造成的查询出错。2手机软件查询准确无误,只要算法和程序设计正确,则用手机软件查询出错的几率几乎为零。3手机软件查询耗费的人力财力少,重复枯燥的工作都交由手机来完成。4. 手机软件可以安装在手机上,查询方便快捷。所以,基于网络的公交线路查询系统可以很好的弥补人工查询的不足,具有其存在

13、的先天优势和合理性。随着移动网络通讯应用的日益扩展,基于网络的公交查询系统必然有其存在的空间。建立在手机软件查询的基础上,可以使查询公交站点方便快捷,而且可视化,能够让你足不出户就可以确定行程路线,也可以在你换乘公交时起到很大的帮助。本软件是基于googlemap api,能提供地图查询,在地图上寻找你想乘坐的公交路线,从而会显示各个站点的信息,根据相关信息知道换乘路线,以及目的地的位置,还可以根据gps导航定位自己当前的位置,对于公交路线查询即明了又快捷。利用google地图的可视性,使你安全准确的到达目的地。随着iphone手机的使用人数的增多,对于这种公交查询的软件的需求也会增多,所以本

14、项目的目的是开发一款在iphone手机上运行的公交路线查询软件,从而满足人们对公交查询的需求。1.3 项目研发内容本系统由两个模块:查询模块和后台数据库模块,查询模块是本系统的核心,实现了本系统的主要功能。查询模块包括:具体公交线路查询,哈尔滨公交车列表,地图显示,在地图上站点显示,在地图上显示公交路线图等,还添加了手动搜索,快速找到想要查询的公交路线,方便快捷,省时省力的操作,可视化的效果,收手机成为你的手上地图。 后台数据库模块主要针对维护人员,及时更新公交线路发生的变化,即修改数据库中的表,保证用户查询到的信息是最新的,由于数据量大,本项目只做了关于哈尔滨公交路线的查询,对其站点,所经路

15、线的经纬度进行了统计,作为整个系统的数据库,其数据库主要包括:公交路线表、站台表、路线表。在本系统中的设计中,使用了时下较为流行的网站开发工具xcode,基于googlemap的api ,利用谷歌地图提供的api实现公交路线的可视化,开发一款可以在iphone运行的地图软件,数据库采用sqlite3,数据库包括三个表:公交路线表,线路对应的站点的坐标表、线路所经过的路线的坐标表。在数据库中解析各个公交路线的站点的坐标,根据数据库的检索,完成线路表的检索,根据线路表的检索完成站点的数据检索,从而得到路线图,并在google地图上划出相应的路线来。本系统是mvc模式来进行视图与模式的控制,从而控制

16、数据的检索,也可以通过网络的数据检索,但由于google的检索数据有访问权限,所以只能通过数据库的建立来得到坐标的经纬度。在下面的介绍中,将详细介绍哈尔滨公交路线查询系统的开发过程,同时,阐述开发过程中所涉及到的问题及解决方法。由于技术水平有限,经济有限,该软件只能在mac模拟器上运行,有些功能还无法实现,系统中还可能存在我没有发现或意识到问题,敬请老师多多批评。2 哈尔滨公交路线查询系统的开发分析2.1 问题定义长期以来, 交通路线的问题一直困扰着人们的生活,公交车和人们的生活息息相关无论是上班学习,还是外出旅游都离不开他,公交车成为当代社会不可或缺的交通工具。由于公交车的线路增加,各个公交

17、站错综复杂,给日常生活已带来不便。哈尔滨是个省会城市,客流量非常大的城市,公交车就更是不可或缺的工具,公交路线的查询也成为人们日常时候习以为常的事情,传统的路线查询方式是买一张地图,在上面进行查找,显然对于21世纪信息化时代这种现象是不符的。现在提供了人工查询平台,人工查询的出现显然告别了我们每人手拎一张地图的时代,但电话查询平台,费时费力,最主要的是错误率太高,无法满足人们的需求。现在是信息化时代,是互联网的时代,网络已和大家密不可分,网络的存在已经成为大家沟通交流的平台,3g的加入更是使得互联网横行。所以公交路线的查询就行该交给处理器去处理,而不是耗费大量人力财力。本项目提出了只能交通的概

18、念,虽然有一些功能在本项目中无法实现,但智能交通的时代是真正的信息化时代,虽然哈尔滨还没有实施研究,南方大多数城市应经提出并开始研究。本项目是哈尔滨公交路线查询系统,从而解决人们日常生活中的公交路线查询问题。2.2 可行性分析2.2.1 技术可行性分析本系统采用的是googlemap api、xcode 、sqlite3数据库相结合的方法,将所有收集的数据信息按其属性分类存储到数据库中,再通过程序调用这些数据信息实现各种查询公交线路,即所谓的程序设计数据化,数据管理程序化思想。基于这种思想的查询系统的理论及技术也日趋成熟,另外ios的开发对于中国市场有很大的前景,只要有一台mac,就可以运行开

19、发这种软件,googlemap也提供了相应的api,而且免费,对于习惯了使用谷歌地图的人们来说,操作更加方便。 所以本系统在技术上是绝对可行的。而且随着iphone的流行也大大的提高了这款软件的实时操作性。2.2.2 操作可行性分析本系统界面美观明了,提供的通俗易懂的文字提示,而且操作容易,用户只要懂得初步的手机软件的操作即可,还支持多点触控,可以随意的放大和缩小地图,方便快捷。2.2.3 经济可行性分析从成本上看来,开发及维护系统所需的就是一天苹果的电脑,安装一些能够应用软件,注册一个开发者账号,只是数据采集时会浪费大部分的人力,所以本系统只对于哈尔滨公交路线查询。从收益来看:本系统作为公交

20、线路查询的应用,是带有实验性、贡献性的。也可以上传至appstore上进行审核,从而创造效益。也可以是免费下载。注重以后的潜在发展,是在概念上、形象上的不断升值。2.2.4 社会环境可行性分析如今城市生活的节奏日益加快,公交线路也不断增多,使得交通的便捷性难上加难,给出行人员选择出行乘车线路造成一定的困扰,哈尔滨黑龙江的省会,中国东北部的政治、经济、文化中心,人口居全国城市的第二大城市,出行已经越来越重要了,特别是来哈尔滨旅游的游客,游客在乘公交车时选择线路比较困难,它不仅可以给哈尔滨市民、游客的乘车提供向导,同时可以对外展现哈尔滨的现代风貌,体现出一个城市公交信息数字化和信息化的发展水平。再

21、加上ios软件开发的火热势头,所以本系统无论从公益性、效益性都拥有非常成熟的市场及发展前景。2.3 功能需求分析 本系统通过设计研究,采用是可视化结构,方便操作,运用的是mvc的模式结构,方便、灵巧,对是使用过手机软件的用户来说,很容易操作。本系统共分为五大功能块:gps定位模块,公交路线列表,地图的显示模块,后台数据库,设置模块(部分功能实现)。功能模块介绍: 2.3.1 gps地位模块: 本模块针对于有gps模块的手机而设计的模块,根据gps的基站信息,定位自己当前的位置,对于人们导航有很大的作用,根据地图可以很快的找到自己的位置和自己想要到达的目的地,对于外出旅游的人更是最佳的选择。由于

22、模拟器没有gps模块,只能模拟,功能已经实现。 2.3.2 公交路线列表:本模块也叫做公交线路一览表,是所有公交路线的集合,本系统不提供输入,只提供索引,是用户可以不用输入就可以得到想要找到的公交路线,免去了由于环境的原因无法输入的问题。本模块连接着主界面,也就是地图可是界面,当选中想要查询的路线后点击就会跳转到主视界面,看到自己想要的路线图。 2.3.3地图显示模块:本模块是是本系统的主界面,也是地图的显示界面,由两个部分组成,由导航栏和地图显示界面组成。导航栏是由三个连接按钮组成,其功能是分别连接gps定位模块,公交路线列表及说明模块。地图显示界面是整个哈尔滨的全貌地图,支持多点触控,放大

23、缩小等。可以给用户提供哈尔滨的轮廓,让用户有一种一览无余的感觉。 2.3.4数据库模块:数据库模块就是本系统的数据提供模块,本系统支持c/s模式提供数据,也可以通过后台数据库实现两种方式。本次开发是以后天数据库开发的,数据库提供公交线路现实的所有数据,公交路线,路线的站点经纬度,站点间连接的经纬度等,本数据库共有三个表分别为,公交线路表,公交站点表,站点坐标表。各个表互相联系提供了整个系统的数据检索。2.3.5说明模块:本模块对整个系统做一个阐述说明,功能以及整个系统的背景介绍,也可以设置地图中你在路线图中的位置,根据指示,找到相应的公交站点。3.总体设计3.1系统目标的确定系统目标在于为广大

24、乘客提供最新公交信息和公交查询信息的同时,还为公交管理者供简单、实用的后台管理平台。采用安全可靠的现代化处理和控制技术,及时准确、可靠地更新公交信息,建立完备、便捷的公交查询系统。1 公交路线查询模块:用户进入系统后,点击导航栏中的公交路线查询按钮,视图跳转到公交路线查询列表,用户可以直接下拉列表找到想要的公交路线,点击路线名就可以得到公交路线图,这样就可以得到这条路线的相关信息如:经过的站点,站点周围的显著的建筑,交通的路线,通过地图找到可以去哪个站点乘车。2 gps定位模块:用户进入系统后,点击导航栏中的gps定位按钮,你就可以看到你在整个哈尔滨的地图上的位置,这样你就可以得到自己想要得到

25、的信息:想要到达的标志性建筑物,去哪条街,哪条路等等。3 地图显示模块:本模块是整个系统的主视图,进入的主要视图界面,其余模块都是围绕着整个视图而展开的,当用户进入时会给用户呈现整个哈尔滨的全貌,既平面图 ,让人们了解一下整个哈尔滨的划分情况,道路,河流等等。3.2系统总体设计3.2.1 项目系统模块图图3-1 项目系统模块图gps定位模块:本模块是利用gps模块定位当前位置,用一个图标在地图中显示当前用户的位置,这是gps导航的系统的一个缩例,本模块的应用以后可以加入导航模块。公交路线查询模块,本模块是为用户提供公交路线列表的功能块。本模块分为两个小模块,分别为:公交路线列表和列表索引栏,通

26、过列表可以展现给用户哈尔滨公交路线的所有线路,索引栏是帮助用户快速的找到想要得到的公交路线。主视图模块:本模块负责整个系统的显示功能。本模块也分为两个模块:用户导航模块和地图显示模块,主视图是所有的功能的显示模块,是所有模块的实现部分,显示个人的位置,显示公交路线等。3.2.2 数据流图(dfd)用户查询的dfd,如图3-2:用户输入信息,系统处理查询信息,系统获得信息内容后,向数据库搜索查询信息,将查询的结果显示到显示界面上。 图3-2 数据流图3.2.3 项目系统流程图在ios模拟器环境中的该项目完成品最终是以用户界面体现运行程序,将用户想要查询的信息从数据库中查找、匹配然后通过语言界面输

27、出,并从空间数据库中读出地图显示。但对其运行后的结果不能进行查找和增加、删减等操作,只能由后台管理员在指定的界面操作或直接对数据库编辑。 图3-3 项目系统流程图3.3数据库设计系统方案进行设计它是系统的整体解决方案。其目标为:建立包括公交线路属性数据库、公交站点属性数据库等公交信息所必需的数据库:建立包括公交线路空间数据库、公交站点空间数据库等公交信息所必需的后台数据库:建立基于googlemap的公交线路软件的查询系统,使出行人员可有重点地查询公交路线相关信息。本数据库共包括三个表,分别为:公交路线表:routes table,公交路线的站点经纬度表:stations table,公交所经

28、路线的经纬度表:routepoints table。下面分别介绍一下表的结构:(1)公交路线表routes:公交路线表routes用来保存哈尔滨所有的公交路线,结构如下表所示表3-4 公交路线表routes编号字段名称数据类型说明1idintid号2namevarchar(50)公交路线名称3waybit是否完成(2)公交路线的站点经纬度表stations:公交路线的站点经纬度表stations用来保存公交站点的经纬度表3-5 公交路线的站点经纬度表stations编号字段名称数据类型说明1idintid号2latdecimal公交站点的纬度345lngnameroutiddecimal va

29、rchar(50)int公交站点的经度站点名称公交路线(3)公交所经路线的经纬度表routepoints:公交所经路线的经纬度表routepoints用来保存公交经过路线的经纬度表3-6 公交所经路线的经纬度表routepoints编号字段名称数据类型说明1idintid号2latdecimal公交站点的纬度345lngindexroutiddecimal int int公交站点的经度站点名称公交路线3.4数据库的选用本数据采取的数据存储工具是sqlite,是一种小型的数据库存储工具,用于存储公交路线查询所需的数据,是整个系统后台的服务。sqlite,是一款轻型的数据库,是遵守acid的关联式

30、数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百k的内存就够了。它能够支持windows/linux/unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 tcl、c#、php、java等,还有odbc接口,同样比起mysql、postgresql这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。sqlite第一个alpha版本诞生于2000年5月. 至今已经有10个年头,sqlite也迎来了一个版本 sqlite 3已经发布。4.公交路线查询系统详细设计及实现4.1主界面的功能实现公交路

31、线显示界面是本系统的主界面,是用户运行本系统的开始界面,本界面提供了整个系统的功能的显示,主界面也就是用户登录界面,本系统无需账户注册,运行就可以使用。本功能块的设计,主界面要体现出本系统的所有功能块,所以功能块的设计要与其他功能块相互联系。这里我们模拟用户运行系统,操作流程图如图4-1。进入主界面gps定位功能公交路线插询列表跳回主界面进行显示图4-1系统查询显示显示流程图本系统的ui是用interface builder图形化工具生成,再由功能函数控制图形界面的思想,并完成程序的图形界面。interface builder简称ib,是用于美国苹果公司mac os x系统开发的软件开发程序,

32、是xcode套件的一部分。cocoa开发者可以使用interface builder来开发和修改应用程序的图形用户界面,其数据以xml的形式存储在.xib文件中。xcode被收购前是存储在.nib中。功能模块的实现:主界面的设计,主界面的功能是为了提供给用户哈尔滨的全貌和其他功能的显示功能。所以用户登录界面为哈尔滨的全貌,并提供功能导航栏,说明本系统的所有功能。主界面两个部分,哈尔滨的全貌显示及功能栏。哈尔滨全貌的显示,根据xcode的函数库,找到mapkit框架,mapkit框架中显示地图的功能函数,要找到哈尔滨的位置就要找到哈尔滨的经纬度,以哈尔滨的经纬度为中心,进行比例显示就会呈现给大家

33、哈尔滨的全貌地图。找到哈尔滨的经纬度后,设置其显示比例,经过视觉的调试,在最终完成哈尔滨的全貌显示。本模块的界面是ib中的mapview界面,利用函数的结合控制,达到视图的效果。实现控制视图的主要代码如下:mkcoordinateregionjorinregion = themapview.region;cllocationcoordinate2djorinlocationcoordinate;jorinlocationcoordinate.latitude = 45.75075599455506;jorinlocationcoordinate.longitude = 126.62567138

34、671875; jorinregion.center = jorinlocationcoordinate;jorinregion.span.latitudedelta = jorinregion.span.latitudedelta*0.00049;jorinregion.span.longitudedelta = jorinregion.span.longitudedelta*0.00049;themapviewsetregion:jorinregionanimated:yes;功能栏的设计,本功能栏与iphone常规应用的功能栏相似,为一个长条的label view,在其上面设计功能but

35、ton,功能按钮采用ib的按钮,按钮上的图案为自己设计的,一共三个按钮,分别为gps地位功能按钮,公交路线查询按钮,和软件说明按钮。三个按钮分别与其他视图相连,当点击时会产生跳转效果,采用的也是iphone应用中经典的跳转视图的效果。图4-2 哈尔滨公交路线查询系统的主视图4.2 gps定位模块的功能实现gps定位已成为信息化时代的产物,gps导航,各式各样的导航软件,各式各样的导航地图,gps定位是gps导航的基础,利用间隔时间的gps定位的经纬度得到导航的路线。 定位的机制有三种,分别为手机gps模块卫星定位,手机基站定位,依赖wi-fi网络进行定位。三种方式都可以定位用户的位置,但三种方

36、式都有自己的弊端,适用于不同的情况。gps模块卫星定位需要gps接收器需要直接对准卫星,所以室内是无法进行定位的。手机基站定位,它相对于gps接收器来说定位的位置不是很准确,准确度取决于该地区内手机基站的数量。而wi-fi网络定位通过检查服务提供商的数据确定位置,它既不依赖卫星,又不需要手机基站因此这种方法是对于可以连接wi-fi网络的区域有效,但这种方式是最为模糊的定位的方式。在iphone的定位开发中,苹果公司提供了定位框架,以帮助你来确定当前的物理地址,这个框架的美妙之处就是他使用了以上的三种方式,通过用户不同的情况下分析当前的位置进行定位。本模块的设计,利用mapkit框架中的定位库函

37、数进行定位,利用iphone开发中提供的定位框架得到自己目前位置的经纬度,根据经纬度在地图上标注自己的位置。定位模块的控制流程图,如图4-3。图4-3 定位模块控制流程图定位功能块是由主视图界面通过定位的功能按钮来在主视图是显示,本模块用到的xcode中的“corelocation.h”,根据经纬度设置自己在地图中的位置,还要设定显示地图的比例,利用主视图中的功能按钮,完成事件的触发,从而实现定位功能。定位功能的功能实现,如图4-4,因为本系统运行于mac 模拟器中所以定位的地方为苹果的总公司,移植到iphone手机时才会体现其定位效果。地图中的为用户的当前位置。本模块主要实现代码:mkcoo

38、rdinateregion jorinregion=themapview.region;cllocationcoordinate2d jorinlocationcoordinate=themapview.userlocation.location.coordinate;jorinregion.center=jorinlocationcoordinate;jorinregion.span.latitudedelta=0.0077999;jorinregion.span.longitudedelta=0.0110250;themapview setregion:jorinregion animat

39、ed:yes;图4-4 定位功能实现4.3公交路线查询模块的功能实现公交路线查询模块是本系统最为主要的模块,他是整个系统的功能体现,公交路线查询模块包括很多小模块,分别为:公交路线列表功能块,索引模块,公交路线显示模块,站点显示模块,还有就是后台数据库检索模块。用户查询公交路线时会通过主视图中的公交路线查询按钮来跳转到公交路线列表,列表是由哈尔滨的公交路线所组成,其内容包含线路名称及其起始站和终点站,用户查询时可以通过上面的索引列表进行查询,当用户点击公交路线名称时,视图就会跳转回主视图中显示公交路线,这样就完成了公交路线的查询。下面详细介绍所有的功能模块的设计及实现:4.3.1 公交路线列表

40、模块的功能实现公交路线列表功能模块,其视图为一个labelview,而且为一个可以上拉、下拉的列表,其功能的实现是应用ib产生一个labelview,并把他与相应的功能函数相连,列表初步形成。其显示的内容为功能函数在数据库中读取的内容,函数将读取的内容写到labelview上,这样就得到了列表的内容。其实现过程如下图4-3-3:图4-5 公交路线查询列表的实现过程 公交路线列表的labelview是xcode中的uikit框架的部件,其部件可以设置为可上拉和不可以上拉两种方式,如果设置成不可上拉,则用鼠标点击就无法上下拖动列表。由于本系统的公交路线多,所以要实现显示所有公交路线就必须选择可以拖

41、动式列表。列表的形成需要知道列表的数量及其内容的数组,以便于初始化列表。所以我们通过检索数据库routes表中的内容得到公交路线的数量,并把他们的内容存放在一个数组中,在用户点击功能按钮时就完成了列表的初始化。图4-6 公交路线列表4.3.2 列表索引模块的功能实现列表索引模块主要用于帮助用户快速哦查询公交线路,为用户省去一些时间,方便于用户的操作。索引模块的应用是为了用户麻烦的拖动列表,这样省去了用户的操作,只需输入相应的内容,就可以快速的找到自己想要的,方便、快捷、智能,这就是列表索引的功能所在。列表索引的设计是由一个搜索栏输入相应站点的数字进行搜索显示公交路线,通过用户输入公交线路来重新

42、初始化列表,改变列表的能容,根据输入的内容,函数重新检索routes表,重新的显示列表的内容。其实现过程如下图4-7:图4-7列表索引的实现过程 索引栏的实现是由一个tableview及一个搜索的button组成的,当用户使用时,再结合下面labelview通过函数的控制来检索数据库得到相应的内容,tableview是用来输入想要搜索的内容,输入方式是用iphone本机自己带的软键盘,在mac 模拟器上也可以通过电脑的数字键盘进行输入。当用户输入时列表的内容就会相应的随之改变,达到索引的效果。列表索引的功能实现,如图4-8。图4-8 列表索引的功能实现4.3.3 公交站点显示模块的功能实现公交

43、站点的显示模块使用于显示公交路线经过的相应的站点,当用户想知道上车或下车的站点时,用户可以通过点击图标来显示目标的站点名称,该操作与google地图相似,本系统是仿造google地图的一些操作,来实现用户能熟悉的使用。公交站点显示模块的设计是在mapview上根据坐标显示某一个点,与定位的效果相似,其主要实现的原理是通过站点的经纬度在mapview上插入大头针。大头针是ios地图开发中不可缺少的角色,它是mkpoitannotation类的一个对象,mkpoitannotation类在mapkit框架中,其功能为根据经纬度在地图上相应的位置插入大头针,本模块利用的就是大头针的原理将每条公交线路

44、的公交站点以大头针的方式安放在地图上,得到公交站点的效果,mkpoitannotation对象有三个属性分别为:title、subtitle、coordinate,其功能为为大头针提供主标题,副标题和大头针在地图中的经纬度,我们把公交站点的名称赋值给主标题,将站点的坐标赋值给coordinate,最后利用mapview的功能函数addannotation将所有的大头针添加到地图中,这样就完成了公交站台的显示。其实现过程如下图4-9。图4-9 公交站点的显示流程站点的名称与经纬度是通过功能函数对sqlite3的检索来完成的,通过用户操作公交路线列表响应响应的数据库的查询。当用户点击想要查询的公交

45、路线时,响应函数会根据列表的哪一行触发事件,通过行号来检索数据库,查找routes中的线路,再通过线路表查找相应的站点,并把站点的坐标和名字存放到两个数组中,给大头针的属性赋值,得到相应地图上相应的站点。其功能实现如图4-10。图4-10 公交站点显示功能实现4.3.4 公交路线显示模块的功能实现公交路线显示模块是公交路线查询的主要功能模块,他的功能是给用户呈现一个完整的公交路线,能看到所经的路线,使用户很快的找到自己想要到达的目的地。公交路线的显示效果是在mapview上划线来实现,公交路线的显示公交站点显示的进一步的功能完善,它是点与线的结合,站点与公交路线的结合,通过列表中的按钮的触发,

46、功能函数到数据库的检索,分别检索routes表,根据routes表中的内容检索stations表中的内容,在检索routepoints表内的的所经路线的经纬度得到公交路线,并添加到地图上。其实现过程如下图4-11:图4-11 公交路线显示的实现过程公交路线的功能实现的原理是通过两个站点的经纬度,画一条连接这两个站点的路线,这样一次类推,就得到了整条的公交路线。但两个公交站点的划线,会涉及到两个站点之间直线最短的,最短路径的算法,这样两个公交站点间的路线就有可能是空间穿越了,得不到用户想要的效果了,所以要检索routespoites表中的数据,这就保证了公交路线不会直接的画直线过去。公交路线的功

47、能实现的主要方法是mapkit提供的mkpolyline类,这个类的对象为地图提供了划线的功能函数,包括线的粗细,线的颜色以及线的起点与终点。它的属性为别为linewidth,strokecolor和一个划线功能函数polylinewithcoordinates()。linewidth是mkpolyline对象的一个属性,其功能是为划出的公交线路设计一个线宽,可以通过数字直接为其赋值,本模块的线宽为4。strokecolor的功能是为线路设置颜色,可以为其设置单色,也可以为其设置混合色,它是由一个颜色的列表来控制,为其着什么样的颜色,如果要想得到混合色,就要通过颜色的比例混合,从而得到想要的颜

48、色。本模块设置的颜色为混合色分别为blue:1,alpha0.6。功能函数polylinewithcoordinates()的作用是在地图上画一条一线,而其需要的参数为一个cllocationcoordinate2d类的数组,数组内存放着所划线的经过的坐标点,可以是两个三个或多个,还有一个参数是数组的数量,这样就可以实现在地图上划线了,将画好的公交线路add到mapview上,这就是完成了公交路线显示的功能。cllocationcoordinate2d数组中的数据是通过数据库检索而得到的,只使用两个站点间的经纬度无法得到想要的线路图,所以通过多次的演示证实得到了两个站点间影响路线画法的坐标点,

49、并把其存放到routepointes表中,通过函数检索routepoites表中的数据,并把它的检索到的内容存放到cllocationcoordinate2d数组中,本模块是每次检索两个坐标点存放到数组中,每次由两个点来确定相应的线,每次使用的两个点中的后一个点是下一次划线的前一个点,这样循环的检索数据,循环的划线,就形成了公交线路图。其主要实现的代码:for(int i = 0; i (k-1); i+) if(i = 0) cllocationcoordinate2d pointstouse2;pointstouse0 = *(routes+i);nslog(%d, routes+i);p

50、ointstouse1 = *(routes+i+1);mkpolyline *lineone = mkpolyline polylinewithcoordinates:pointstouse count:2; themapview addoverlay:lineone; theroutemutablearray addobject:lineone;elsecllocationcoordinate2d pointstouse2;pointstouse0 = *(routes+i);nslog(%d, routes+i);pointstouse1 = *(routes+i+1);nslog(%d

51、, routes+i);mkpolyline *lineone = mkpolyline polylinewithcoordinates:pointstouse count:2;themapview addoverlay:lineone; theroutemutablearray addobject:lineone; 公交路线显示模块的功能实现,如下图4-12。图4-12 公交路线显示模块4.3.5后台数据库数据库模块是本系统的后台模块,用于提供前台显示的数据及后期的线路更新的功能。本系统不是c/s结构,而是只有一个数据库文件提供数据支持的单机程序,所以本系统中,增加和删除线路都要通过数据库进

52、行操作。本系统使用的数据库为sqlite3,他是一种小型的数据库,是一种类似于表格的数据库,而数据库软件为sqlitebrowser的数据库编辑工具,使用sqlitebrowser来进行对数据的添加及删除操作。存储数据的列表,如图4-13。图4-13 stations表的存储数据4.4说明模块功能实现本模块是该软件的说明模块,是对软件的一种说明,对软件功能的一种阐述,本模块还加入设置模块,虽然目前无法实现,但在对软件进一步维护时,以下功能都会一一添加。本模块包含两个功能模块,一个是软件的说明,另一个是使用你当前的坐标,来进一步确定你的位置。软件说明模块的实现是有一个testview来形成的,它

53、只是一个对软件说明的一个文档,用于软件的说明,操作说明,开发人员的说明等。本模块的特别之处是在于它的跳转的方式,本模块是采用iphone开发中动态翻转部件,是由一个视图两面翻转来得到不同的功能,给用户一种不一样的视觉效果。这也是iphone软件之所以大受用户的喜爱的原因,它的翻转效果是通过两个功能按钮来进行效果的切换,从而达到不一样的视觉效果。说明模块的实现是由一个双面显示的view组成,当点击按钮时,程序就会以上拉的跳转效果跳出一个一面是两个labelview一面是一个testview的视图,视图会有按钮来退出这个界面,还有一个“关于”按钮和一个“设置”按钮,点击“关于”按钮,就会以翻转的动

54、画效果跳转到说明视图。说明视图是一个testview,其文字是设计视图时写上去的,也可以通过ib进行改动,视图上有一个按钮,用于退出本视图,返回上一视图的作用。说明模块的功能实现,如下图4-14。图4-14 说明模块的功能实现设置模块的功能是为了将用户的位置呈现到地图上,配合公交路线去看,方便用户去查看当前的位置,更准确的定位自己的当前位置。能够通过自己的位置来找到去哪里做公交车,到哪一个公交站点的距离短。但由于mac 模拟器上没有gps定位模块,所以本模块无法显示,也无法演示,但本模块的运行需要用户的允许才能进行操作,所以本模块设计了一个弹出窗口对其进行模拟的操作。当用户点击“设置”按钮时,会弹出一个提示栏,通过用户的操作来达到这个功能的操作。设置功能的功能实现,如下图4-15。图4-15 设置功能的实现5 结论目前,公交路线查询系统,还有很多不成熟的地方。将在以下几个方面开展进一步的完

温馨提示

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

评论

0/150

提交评论