基于android的移动公交查询系统的设计与实现外文翻译资料

 2022-09-09 04:09

英语原文共 32 页,剩余内容已隐藏,支付完成后下载完整资料


摘要

这个项目的目标是通过Android应用程序提供准确和有用的信息给特隆赫姆巴士旅客。通过结合实时数据(延迟等),用户位置,公交车站的位置和一个强大的自然语言公交路线专家系统,这款应用程序可以满足每个用户的信息需求。用户定位的方法是通过智能手机内置的GPS接收器,同时公交车站的位置作为一个静态列表保存在软件中。

利用智能手机发出HTTP请求的能力来创建网络接口从而连接到一个自然语言公交路线专家系统—BusTuc。

不幸的是这学期没有实时数据,但考虑到软件开发还在继续,所以扩展软件以适应这些数据的不成问题。

本文中提供的存根实现了包括与BusTuc成功连接,用户的位置和巴士站的位置的图形化显示和一种在给定半径提取公共汽车站方法。

本文还包括当前和未来的问题的笔记,为解决这些问题的方法和建议和迄今为止的实现部分。

介绍

这份报告介绍了创建其智能计算特隆赫姆客车用户提供最佳出行路线的应用程序所需的动机,方法和技术。通过使用全球定位系统(GPS)坐标,实时数据和自然语言公共汽车路线的专家系统的应用应能给与用户描述一个地点到另一个地点的最快交通方式的信息。

这项研究背后的主要动机不是创造新的数据,而是从许多部件或系统中收集数据,并且创造出最新的、最精确、最可靠的应用程序。有关公交线路信息的问题不在于它很难找到,而在于它分布在多个系统中。考虑到一个访客去自己从来没有去过的地方作客,你不知道最近的公交站、什么路线时间,甚至你应该乘哪路车。轻轻的点击一下按钮将会解决你所有的问题。

此报告也将包含关于智能手机定位技术的描述,以及如何利用这些技术,以便提供一个系统的所有所需的功能的基本技术。

迄今为止,唯一一个提供有关于公交网络信息的是一个网络接口——ATB的主页,ATB是一家致力于公交网络的公司,将在12月底推出一个系统,旅客可以在公交站台和公交车上在线获取到关于公交车延时的具体信息。我希望这些信息能够用于此程序的进一步开发。

在这个用户需要最小的代价获得即时信息的时代,高的要求是信息的价值和正确性,可用性和稳定性的集合,这些要求是特别重要的,因为人们会信任所提供的信息,并相应地规划行程路线。

在这个项目的核心要求是:

  1. 通过GPS确定用户的位置;
  2. 使用此位置查找周围用户相关的公交站;
  3. 根据用户提供的目标使用相关公交车站找到最快的方式;
  4. 以自然语言和图形表现建议路线的方式来表现信息。

虽然这份报告是为NTNU具有技术背景的学生和教授准备的,但是其他领域的相关人员都可以理解其中大部分(不包括实施细节)。

基础技术

智能手机

智能手机被定义为比普通手机提供更多的连通性和高级的计算能力的手机。通过安装和运行更先进的应用程序的能力,智能电话可以被认为是一个集成了掌上电脑的移动电话,这些类型的电话上运行一个完整的操作系统,这为应用程序开发者提供了一个平台。

更多的计算能力、更大的屏幕和开放的操作系统的需求使得智能手机成为手机市场的主导产品。

在这个项目中使用智能手机是HTC野火。它在高通MSM7225的528MHz的CPU上运行Android操作系统2.1,512 MB只读存储器和384 MB随机存取存储器的支持。选择野火主要是由于其相对低廉的价格和全面的GPS支持。

安卓系统

Android操作系统最初是由Android公司创建的,但是谷歌于2005年收购。它是基于一个修改过的Linux内核,包含对Java的核心库之上的面向对象的应用程序框架上运行的Java应用程序。这些核心库在特色JIT(即使编译,一种方法,以提高通过翻译不断地高级语言的计算机程序运行时的性能)编译的Dalvik虚拟机(基于寄存器的虚拟机)上运行。核心库主要是用C语言开发的,用户接口通过Java编写,一些第三方库是用C 编写。

它允许开发人员编写扩展设备的标准功能的应用程序。开发使用Java语言,使用谷歌的Java库。

安卓开发相当流行,官方应用市场(安卓市场)已经拥有超过10万的扩展设备的标准功能应用程序。

开发人员必须使用Android软件开发工具包(SDK),其中包括一套完整的开发工具。

调试器

Android的调试器就像一个普通的调试器。它显示了在原始代码中的位置,如果该程序崩溃或达到预设条件。另外,也可以通过插入在代码等待换调试调用设置上的应用程序运行限制。这将阻止加载所选应用程序,直到调试程序连接。要尽快增加调用了,因为它调试启动过程中是非常重要的。调试器还展示了屏幕上的元素是由闪烁的粉红色长方形重绘的频率,这对于发现不必要的屏幕绘图是十分有用的。

调试器的一个重要部分就是Android调试桥(ADB)。这是一个工具,可以让你管理Android设备或仿真器实例的状态。该工具可以被描述为一个包括三个不同的部件的客户机——服务器程序。

  1. 一个运行在你的开发机器上的客户端;
  2. 一台运行你开发作为一个后台进程的机器的服务器,此服务器处理仿真器上的ADB后台程序或者设备与客户端的通信。
  3. 运行在每个模拟器或设备实例作为一个后台进程的后台程序。

在启动时,客户端将检查服务器是否已经存在。如果不存在,它会在开发机器上创建一个服务器。然后,服务器绑定到本地TCP端口5037,监听来自客户端发送指令。服务器通过扫描从5555到5585范围内的奇数端口,模拟器或者设备使用这个范围来分辨它们和建立连接。每个模拟器或设备实例都有两个连续的端口,偶数端口用于控制台连接,奇数端口用于ADB连接。 例如:HTC Wildfire控制台端口号:5554,HTC Wildfire ADB端口号:5555。

如果你没有其他工具(例如Eclipse),控制台也可用于发送命令。命令示例如:Adb –e pull /system/app/Development.apk ./Development.apk;Adb –d install Development.apk。第一条命令将安装包从正在运行的·模拟器复制到连接的设备,第二条命令将安装包安装到连接的设备上。

调试器的另一部分是Dalvik调试监视器服务器(DDMS)。这是一个图形化的程序,它提供了很多功能,包括:

  1. 端口转发服务;
  2. 在设备上的屏幕截图;
  3. 设备上的线程和堆信息;
  4. LogCat(负责注册系统消息日志,这些消息包括当系统抛出异常的堆栈跟,以及开发者在程序中编写的日志消息);
  5. 进程和无线电状态信息;
  6. 模拟的来电和短信;
  7. 模拟的位置数据。

DDMS也包含设备或仿真实例的文件浏览器。

安卓系统的各种组件使用了C/C 写的库。这些库提供的功能可以由开发者通过Android应用程序框架使用,主要的库是:

  1. Surface Manager:处理访问显示子系统和多个应用程序的2D和3D图层的复合图形;
  2. 媒体库:支持播放和记录许多图像文件,音频和视频格式,包括MPEG4,H.264,MP3,AAC,AMR,JPG和PNG的;
  3. SGL:底层的2D图形引擎;
  4. FreeType:矢量字体和位图呈现;
  5. SQLite:轻量级的关系数据库引擎;
  6. 3D库:请使用硬件3D加速或包含高度优化的3D软件光栅;
  7. 系统C库:一个BSD衍生实现标准C系统库(libc),改装为嵌入式基于Linux的设备。

全球定位系统

概述

全球定位系统(GPS)是由24颗卫星的网络创建的基于卫星的导航系统,卫星由美国国防部控制,GPS最初是用于军事用途。只要有大于或等于4个的卫星没有阻碍视线,该系统可以提供可靠的位置和时间信息,不管是什么天气、什么时间、什么地点。在1980年,美国国防部可以使每个拥有GPS接收器的人使用GPS。

卫星环绕地球以非常精确轨道一天两次,并发送信号信息到地球。这个信息由GPS接收器接收,并且使用三角测量来计算用户的精确位置。三角测量的工作原理如下:GPS接收器比较卫星发送信号和接收器收到信号的时间,通过这个时间差GPS接收器可以计算到卫星的实际距离。当组合来自多个卫星的这些距离的测量,接收器可以确定该用户的位置。定位的精度会随着现有卫星数量的增加而增加。3颗卫星就足以计算二维位置(经度和纬度),但使用4颗卫星你还可以得到高度。

卫星网络在大约20200公里的中地球轨道绕地球飞行,它们以11300公里每小时的速度在不到24个小时内汇成两条完整的轨道,他们收集来自太阳的能量,但是带有板载备用电池以防止日食的情况,每个卫星上小的火箭助推器使得他们正确的轨道上。

大多数接收机现在都有一个平行的多信道设计,这意味着,他们拥有12条并行通道接收机,这将快速锁定卫星和保持稳定的连接。甚至在城市环境中的高楼,定位都是非常准确的。

该卫星发出的信号被称为L1和L2,这些都是低功率无线电信号。L1是专门为民用,并已在超高频(UHF)频段以1575.42 MHz的频率。正如前面提到的信号通过视线传播,这意味着信号将很容易的穿过像云和塑料这样的障碍物,但是很难穿过像山和建筑这样的物体。信号中包含3个不同的元素,即星历数据,历书数据和伪随机码。星历数据包含关于卫星(正常或者不正常)的状态的重要信息、当前时间和日期。历书数据包含有关每一卫星的信息,表示用于在系统中的所有卫星的轨道信息。伪随机码是标识哪个卫星发送信息的代码。

2001年9月11日之后,手机的GPS技术的需求增加。美国政府推动实施增强紧急呼叫这将显示出遇险人的位置。基本上手机定位有两种不同方式,一种是是使用被布置成网络的信号塔和基站,手机内置一个低功率发射器,它能够与最近的信号塔通信,然后当你从一个cell移动到另一个时,信号塔通过监测你的手机的信号强度来跟踪你的移动。所以即使没有GPS接收器,手机的位置也可以通过接近信号塔的角度、信号传播到多个信号塔的时间以及到达信号塔时信号的强度,这种方式不比GPS准确。

具有GPS的手机通常有一些所谓的辅助GPS。这是一个能够改善基于卫星的定位系统的启动时间的系统。它通过网络资源来利用卫星在较差信号条件更快以及更好的做到这一点。反弹的建筑物,墙壁或树木的都是差信号条件的例子。这使得下载历书和星历数据非常困难和耗时,因为接收器将只得到零散信号。

辅助GPS使用来自于网络的可以数据来:

  1. 迅速获得卫星:网络可以提供用于卫星的轨道(历书)数据给GPS接收器,这需要更少的传输,以及更快的卫星连接,网络还可以提供精确的时间。
  2. 辅助计算位置:服务器始终具有良好的卫星信号和更强大的计算能力相比于手机。所以它有助于通过比较它从蜂窝电话变得支离破碎的信号,与它直接接收卫星信号以计算位置。

辅助GPS也有助于设备,由于更多的计算在辅助服务器完成,GPS设备所需要的计算能力将减少。

手机还具有仅使用独立GPS的选项。

方法

GPS

地理坐标系统

该应用程序使用谷歌地图作为地图,该地图同样使用了世界大地测量系统(WGS)作为一个地理坐标系统。WGS是制图,大地测量和导航的标准。它包含:

  1. 一个标准地球坐标框架;
  2. 一个标准椭球参考表面(基准或参考椭球)为原始高度数据;
  3. 一个定义标称海平面重力等位面(大地水准面)。

提供商

当计算实时值完成时,应该认真分析生成这些值的过程。对于这个项目的第一个部分,我们关心的是值是全球定位系统(GPS)坐标。Android SDK提供了3种不同的供应商(由Android SDK中的定义)来获取位置,它们各自都有自己的优势和局限性。

GPS

通过设备的GPS芯片获取位置,这种方式非常准确。但是卫星提供定位必须要视线。

网络

该供应商在使用GPS芯片前利用蜂窝网络来提供快速的初始定位,在卫星没有视线时,这种定位方式依然非常准确。

被动的

该方法使用蜂窝网络ID/wifi MAC ID抬头来获取位置,并不需要GPS,但是显然这种方式不太准确。

Android SDK在选择合适的提供商时有一个问题,即使你在室内,它通常也会选择GPS作为最佳的可用供应商,这会使得该应用程序无休止的搜索卫星。

位置管理器

这是提供系统定位服务接口的类,这些服务允许应用程序获取设备的地理位置的定期更新,用它来指定定位提供商。这个类和一个监听器结合。

HTTP方法

用于BusTuc通信的方法是Java提供的HTTP浏览器。人们使用BusTuc的常用方法是通过Web界面,他们使用界面所提供的表格中输入查询内容,表单然后将查询发送到一个Perl脚本。本应用程序,通过创建名称-值对来模拟表单,然后将它直接发送给Perl脚本。这样做而不是直接整合整个HTML页面有很多好处,它只需要较少的流量占据屏幕上较小的空间,只有应答返回和显示。

结果和讨论

地图显示

此应用程序使用谷歌地图API作为个人位置和公交站位置的视觉表现,谷歌地图的Android应用程序的整合是比较容易的(程序见附录说明),它提供的功能是很容易查到的,在这个方面没有什么问题。唯一需要的是互联网接入,WiFi或者蜂窝网络。

获取坐标

公交站

本程序中的500个公交站点由四个属性描述,每个公交站都有一个唯一的整数、地址、

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[146192],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。