您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页基于Android的百度地图应用系统-毕业设计

基于Android的百度地图应用系统-毕业设计

来源:化拓教育网
分类号: 学校代码:11460 学 号:11130815

南京晓庄学院本科生毕业设计

基于Android平台和百度地图的应用系统

Application system based on

Android baidu map

所属院(部):数学与信息技术学院 学生姓名: 指导教师:

研究起止日期:二〇一五 年 三 月 至

二〇一五 年 五 月

资料

【摘要】

在电子信息技术的带动下,移动操作系统飞速发展,在手机、平板等移动终端上的定位系统应用更为普及,地图导航的功能和应用也得到不断延伸和拓展,GPS功能在手机上的开发应用一度成为开发的热点,能够大量的减少人们寻找地点的时间成本,不断满足人们快速生活节奏的客观需求,因此终端上的地点定位的地图的相关软件的应用能够产生很大的实际效用,尤其是在手机Android系统上的地图系统的开发,比如百度地图就是在这样的大背景下被开发出来的。

在本文中介绍了选题背景,介绍了关键技术,对系统进行了需求分析,对系统进行了详细设计,系统的实现以及系统中的测试,对百度地图应用系统从分析到设计再到具体实现,有了详细的过程。

百度地图系统的开发运用了Java语言,主要针对Android和SDK系统的运用进行设计,用户可以通过在手机系统中,安装软件APP,然后快速的实现搜索地址的功能,使得用户出门更加方便,不需要担心迷路,使得用户对出门变得方便。

关键词:地图导航; 百度地图; Java; Android; API

资料

[Abstract]

With the rapid development of mobile platforms to extend the operating system and map navigation applications, expanding GPS function on cell phones has become a hot mobile application development. In order to find a place, people often need to spend a lot of energy, so along with the accelerating pace of modern life, real-time location information is becoming one of the information it is looking for. Therefore, the design and optimization map location services applications with very practical value, Baidu Maps Android-based application system thus arises.

In this paper we introduce the background, the key technologies, the system needs analysis, detailed design of the system, implementation, and system test system for Baidu map application system from analysis to design to implementation , with the detailed process.

The system uses the Java language, using the Android platform and SDK, use Baidu Maps API in Android system will search for Baidu map application systems and route planning have been achieved, so that the user is more convenient to go out, do not worry about getting lost, so that the user It becomes easy to go out.

KeyWords:map navigation; Baidu map; Java,; Android; API

资料

目录

第1章 绪论 .............................................................................................................................. 1

1.1 课题背景 ...................................................................................................................... 1 1.2 课题意义 ...................................................................................................................... 1 1.3 研究现状 ...................................................................................................................... 2 1.4 研究内容 ...................................................................................................................... 2 第2章 课题设计相关技术 ...................................................................................................... 4

2.1 Java语言 ....................................................................................................................... 4 2.2 Android架构 ................................................................................................................. 4 2.3 Android SDK ................................................................................................................. 6 第3章 系统需求分析 .............................................................................................................. 7

3.1 可行性分析 .................................................................................................................. 7 3.2 需求分析 ...................................................................................................................... 8 3.3 业务流程图 .................................................................................................................. 8 3.2 非功能性需求 .............................................................................................................. 9 第4章 百度key申请 ............................................................................................................ 11

4.1 注册百度账号 ............................................................................................................ 11 4.2 申请百度key ............................................................................................................. 11 4.3 百度密钥应用到程序 ................................................................................................ 13 第5章 系统设计 .................................................................................................................... 14

5.1 系统功能结构 .......................................................................................................... 14 5.2 权限设计 .................................................................................................................. 14 5.3 基本配置设计 .......................................................................................................... 16 第6章 系统实现 .................................................................................................................... 17

6.1 系统运行环境和开发平台 ...................................................................................... 17 6.2 系统实现 .................................................................................................................. 17

6.2.1 系统主界面 ...................................................................................................... 17 6.2.2 实时路况界面 .................................................................................................. 21 6.2.3 视角界面 .......................................................................................................... 21 6.2.4 搜索界面 .......................................................................................................... 22

资料

6.2.5 路线界面 .......................................................................................................... 25 6.2.6 导航界面 .......................................................................................................... 28 6.2.7 数据的缓存 ...................................................................................................... 30

第7章 系统测试 .................................................................................................................... 32

7.1 测试内容 .................................................................................................................. 32 7.2 测试预期结果 .......................................................................................................... 32 7.3 测试用例 .................................................................................................................. 33 7.4 测试结果 .................................................................................................................. 33 结 论 .................................................................................................................................. 35 参考文献 .................................................................................................................................. 36 致 谢 .................................................................................................................................. 37

资料

第1章 绪论

1.1 课题背景

移动互联网时代的来临,说明是一个新的时代的开始。移动通信和互联网合在一起就是所谓的移动互联网,移动设备(手机和上网本)可以随时的访问互联网的资源和查找的应用。

智能手机是互联网时代有目的有标志的客户端工具,它就像一台“小电脑”,有自己的的操作系统,可以自行安装和卸载软件,可以实现无线网络的接入通过通信网络,有很大的存储和计算的能力,这就是它和传统手机的区别。

在飞速发展的今天,对于移动终端设备一个大的趋势是传统WEB上的应用出现在手机终端。而基于Android的百度地图应用系统,良好地体现了这一趋势,百度地图应用系统的开发,能很好的为用户提供便捷的服务,用户通过运用地图,在地图上输入想去的地方的地址就能找到。通过Android的百度地图应用系统,与传统WEB应用进行良好的互补。

在移动手机大面积普及应用的时代,为了满足人们在外面快速找到想要去的地点,很多软件开发员开发了新的地图导航系统,其中最为成功和典型的一个就是手机的GPS功能,这能够大量的减少人们寻找地点的时间成本,不断满足人们快速生活节奏的客观需求,因此终端上的地点定位的地图的相关软件的应用能够产生很大的实际效用,尤其是在手机Android系统上的地图系统的开发。

1.2 课题意义

在日益创新的网络技术促进下,我国的通讯技术已经进入,4G时代的到来,让人们享受到了更快速的网络传输速度和便捷的移动通讯。在现在的社会,手机已经成为了人们日常生活中不可缺少的一部分。随着现代科技的进步和人们生活质量的不断地提高,普通只可以打电话发信息手机已经无法满足人们的要求,手机在时代的发展中不断更新换代,开发者们使得手机变得更加人性化和智能化,于是产生了智能手机。从人们对智能手机的使用率反复的调查研究来看,可以说智能手机使用率在现代社会已经达到了90%以上,智能手机的功能也被开发得越来越人性化,人们可以通过手机完成很多的需求,可以说人们的生活已经离不开智能手机了。

现在人们更多的使用Andriod平台来帮助人们解决问题,因此由这个课题扩展开来,延伸并广泛的使用在百度地图API对Android系统的结合中,由于对地址查询最原始方式是使用PC版的百度

资料

地图,相比之下,显得就很麻烦,人们不可能随身携带电脑,并且不能保证电脑随时随地都能够用有线或WIFI的方式上网,但是在手机上,人们只需要在Andriod手机上下载这个系统,就能选择搜索想去的地址,使得出行找路变得更加方便快捷。

1.3 研究现状

从手机等移动终端逐步为人们的生活带来越来越多的便利,不断涌现出来的手机地图系统软件为在外急需找到某个地点的人提供了途径,节约了时间也提高了效率。因此手机地图软件的相关研究在学术研究中逐步显现,其中包括很多数据市场研究和应用研究。在数据研究手机地图系统软件的报告中,中国IT研究中心的相关研究就对现在市场中市场份额排名前几位的地图软件展开,它们通过市场调查,对前几位的软件进行了排名,据结果显示,现排名第一的是百度手机地图,其市场份额高达55.2%,更多的人愿意用百度手机地图来进行地图搜索,排名第二的是高德地图,其市场份额是20.7%,排名第三的是搜狗地图,市场份额为占了6.3%。

研究者们还对我国的智能手机使用情况进行了分析论述,他们都认为大量普及使用的职能手机作为手机地图软件的使用载体,普及率的高低将直接影响软件的使用情况,据研究显示,我国的智能手机用户已经接近人口的一半,达到7.15亿人,这为手机地图软件的应用推广提供了基础。

1.4 研究内容

1.地点搜索和位置定位

在手机地图软件中,用户可以随意搜索想要去的地点,手机软件将会把用户需要的街道、道路等内容进行详细的显示,用户可以通过简单的GPRS定位,让手机自动显示当前所在位置,在根据当前的位置规划出最佳的路线,供用户参考。

2.路线规划

跟电脑地图搜索查询结果相同,手机地图软件的规划结果,也将随着用户的选择的不同而不同,用户可选择步行、公交或驾车其中一种模式。

3.公交线路查询

在手机地图软件的查询结果中,用户只需简单的输入起点和终点,在选择公交模式,用户将轻松的得到多条线路信息。

4.GPS导航

资料

手机地图软件还可提供智能的导航功能,用户在输入终点和起点后,将进入导航模式。

资料

第2章 课题设计相关技术

2.1 Java语言

作为被开发人员常用的开发语言之一的Java语言,是一种能够实现跨平台应用的设计语言,被广泛应用的Java语言,性能很好、稳定性高、效率高,所以被很多开发人员采用,现在我们用的很多的软件都是用Java语言开发出来的,移动电话、个人电脑、平板电脑等终端上的很多软件都是在Java开发出来的。Java语言是Sun公司开发出来的,是一种能够被开放使用的技术,Sun 公司对 Java 编程语言的解释是:Java语言是一种动态的编程语言,具有很好的性能,安全性高,试用对象广泛,编程方式简单,可进行移植。

2.2 Android架构

现在我们的智能手机主要采用的系统有3类,一是苹果系统,二是安卓系统,三是塞班系统,本文主要在这里解析安卓系统。Android是一种操作系统,是给予自由开放代码的,常用于移动终端中,比如智能手机等,它的开发是由谷歌公司和开放手机联盟共同完成的,在中国虽然应用很广,但是却还没有对其有统一的称呼。Android的开发者是Andy Rubin。在Android系统中,是形成了完整的系统架构的,下面我们将对其进行详细的分析。

Linux Kernel:在Android系统的实际操作中,首先需要的是Linux Kernel的支持,有了Linux Kernel的支持才能基本保证Android系统的功能实现,Linux Kernel由很多的驱动程序组成,这些驱动程序能够完成对硬件的驱动。

Android Runtime:Android系统的运行需要良好的运行环境,这就是Android Runtime,这里Android Runtime里的Core Libraries就相当于java的JDK,是运行android应用程序所需要的核心库,Dalvik Virtual Machine就相当于JVM,这是Android系统运行所需的特定的虚拟机。

Liberaries:Android系统的所有数据需要储存在特别的地方,这就是Liberaries。Application Framework:这是Android系统的所有程序的框架,有了框架,系统中所有的程序才能够被放到里面,才能保证系统程序的正常运行。

Application:这个就是我们开发的Application了。

资料

图2-1 系统架构图

从Android系统被开发以来,不断得到技术创新和系统优化,谷歌公司已经不断进行了新的版本,现在已经可以更新到4.0.0版本了,已经具备了很高的稳定性,但是仍然有很多的开发者更愿意在SDK2.2上进行开发工作。Android应用基于Java,支持SQL,由于底层是Linux所以底层支持C/C++。目前有两种编程: 一是基于

ADT

JAVA

编程,官方推荐用

JDK+ECLIPSE+ADT+ADK(WINDOWS开发环境下,二是基于NDK的C编程

APK是Android Package的缩写,即Android安装包(anapk)。APK是类似Symbian Sis或Sisx的文件格式。在进行安装和执行的过程中,主要是通过APK文件,然后直接传输到Android模拟器中。在Android系统中,Android sdk编译的安装文件需要在apk中完成格式的转换,是将zip格式的文件转换成apk格式的文件,然后才能完成被unzip解压到Dex中,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。

在Android系统的软件开发中,开发人员可通过访问API框架来完成核心应用程序的使用,在这个框架中,所有的应用程序需要进行简化后的组件重用,所有基于这个框架开发出来的应用程序都需要有一个功能块,这个功能块是可以不遵循框架的安全性的,Android系统的API框架,可以运用可替换的程序,即实现程序的重用机制,并且在每一个程序的后面,都有一系列发挥服务功效的小系统,下面将重点分析这些小系统:

资料

1、用来搭建应用程序的视图(Views),这种试图是可实现丰富的可扩展的功效,试图又由一些基本的要素促成,包括表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web 浏览器。

2、可以兼容应用程序的内容提供器(Content Providers),在这个系统中可以在访问一个程序的时候,再访问另一个程序。

3、能够实现非代码的资源访问的资源管理器(Resource Manager),主要由字符、图形和布局文件( layout files )组成。

4、通知管理器 (Notification Manager),在Android系统中通过这个小系统能够实现自定义的提示信息的显示。

5、活动管理器( Activity Manager),这个小系统是能够完成导航功能的定退的,用来管理程序生命周期的。

2.3 Android SDK

SDK:(software development kit)软件开发工具包。在特定的软件开发过程中,软件开发师会用软件开发工具包进行特定的开发工作,比如在搭建软件的框架或硬件的平台的时候,都需要运用。在安卓系统中,软件开发工具包就是Android SDK。

在Android系统中,有一个SharedPreferences类的平台,这个平台能够提供软件配置参数的保存,使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下。所谓的SharedPreferences,是特指在Android系统中,用来存储信息的特定机制。最重要的是在Android系统中,开放的服务是不需要收费的,开发者提供第三方平台的更大的自由度,开发人员不需要进行较高费用的支出,就可以进行软件的开发。

资料

第3章 系统需求分析

3.1 可行性分析

系统开发不光涉及到开发过程在技术上是否可行的问题,还需要进行综合全面的可行性分析,一个系统能够被成功的开发出来,不仅需要有成熟的技术,还需要有充足的开发资金做保证,所以下面将从技术可行性、经济可行性和法律可行性进行分析。

1.技术可行性

手机地图软件的开发所需要的技术最主要的是开发设计语言,这种设计语言需要在手机等移动系统上安装应用,从现阶段的开发语言的技术来看,主要有Java语言、C语言等等,这些开发语言都是长时间打磨所得的,已经较为成熟了。还需要的就是高速的网络做保障,从我国的现状来看,网速已经在不断的加快,足以满足手机地图软件的需求。

(1)硬件

操作系统:Windows XP 或者Windows 7 Web 服务器:tomcat7.0及以上

开发工具:Eclipse 4.4,Macromedia Dreamweaver 8.0 数据库:MySQL数据库

JDK开发包:jdk 7 Update5 以上版本 (2)系统软件

在百度地图软件的设计过程中,需要能够满足在手机系统中运行的要求,所以需要采用特定的开发语言,其中Java语言因高稳定性、通用性等优点,被开发人员运用到地图软件的开发中,作为最主要的设计语言。

2.经济可行性

所有开发地图软件的工程师,最终的目的都是为了获得经济上的收益,在实际的开发过程中,也需要充分考虑是否有足够的经济支持,从百度地图的开发成本来看,所需要的系统开发人员不用很多,会涉及到的开发费用不高,投资者、开发人员都不用投入大量的前期资本,所以从以上两方面来看经济上是可行的。

3.法律可行性

资料

基于Android的百度地图应用系统是毕业设计,仅仅只是作为毕业时,进行的设计,该软件并不作商业用途,因此在法律上是没有问题的,在法律上是可行的。

4.结论

全文在可行性分析的过程中,进行了经济、技术和法律层面的深度研究,通过研究得出之所以百度地图能够在所有的手机地图软件中占有第一名的市场份额,被大多数用户选择,就是百度地图优化的信息化方式,百度地图的人性化服务方式。

3.2 需求分析

软件工程建设的第一阶段就是需求分析,它是十分重要的阶段,因为,科学并且合理的需求分析能在成本上得到节约,还能够将项目建设做到事半功倍的效果,反之,如果需求分析不合理,不实用,只会给项目建设带来负担,不但会使建设成本大幅度上升,还会直接影响开发建设的成功与否,因此在软件工程的建设中,必须充分的考虑到用户的需求,所有的在Android系统手机上开发的地图软件,都要体现用户的最根本需求,对于百度地图开发来所更是如此。

用户能够公交路线,周边。

用户能够查看实时路况以及使用不同模式查看地图,包括,3D俯瞰图,2D平面图以及卫星图。 用户可以搜索附近地点,比如公交站,银行等。 用户能够搜索路线,包括:驾车,公交车,走路。 用户可通过百度地图在驾车过程中完成导航。

3.3 业务流程图

工作过程。业务流程图能够反应出工作运行的具体的过程,按照规定要用指定的符合来表示,业务流程图的绘制过程,是帮助分析员分析整理结果的重要过程,能够帮助分析出其中可能存在的不合理的地方或问题,也方便交流,如3-1所示:

资料

业务处理单位业务处理功能描述数据表格制作数据/文件存档收集/统计数据信息传递过程

图3-1 业务流程图的基本符号

搜索公交路线实时路况不同视角地图用户进入系统附近基本信息使用百度地图应用搜索路线导航图3-2 业务流程图

3.2 非功能性需求

(1)系统的安全性

安全性对于一个任意一个系统来说是极为重要的,本系统设计时考虑了加密权限和必要的保密措施,以此保证系统安全可靠。

要满足数据保存的完整,在手机地图软件中,必须要有备份的功能,才能确保系统的整体性,

资料

同时要考虑到数据在遭受意外破坏时也能及时恢复,系统必须满足用户运营方面的需求,能够长期运行,需要额外的网络安全防火墙,传输数据是加密的。当然,设计者还应当对开发系统中的硬件配置给予充分的注意和考虑。

(2)系统的响应时间

本系统在线测试速度性能不超过10毫秒,根据用户的需要可以进一步提高,响应时间是一个系统非功能部分中的一个重要性能,能够保证系统的运行,添加餐品,搜索信息,操作完成立刻能够返回信息,不能产生有等待的感觉,这是用户正常需要的性能。

(3)系统的可扩展性

作为一个百度地图应用系统来说,系统应充分考虑未来的可扩展性,例如查询的条件会不断的增加和变化,这要求系统由足够的条件进行功能的完善和扩展。,实现此应通过系统的扩展配置来完成,系统在设计时要符合一定的配置标准,可以方便未来加入和减少系统的模块,通过软件的升级、 改善系统错误和增加功能。

资料

第4章 百度key申请

4.1 注册百度账号

根据提示,填写注册信息。如图4-1

图4-1 注册百度账号

4.2 申请百度key

登陆百度账号,百度“百度地图API”,点开百度地图API的官网。进官网,选择Android开发可以进行了解下百度地图,点击申请密钥的按钮进去。如图4-2

资料

图4-2 百度API

在这里因为是展示Android百度API的应用,所以点击创建应用,如图4-3

图4-3 创建应用

在应用类型窗口中选择Android SDK,应用名称可以随便设置。

关键安全码设置:要求Android签名证书的sha1值+“;”+packagename(即:数字签名+分号+包名) Android签名证书的sha1值:可以在eclipse中直接查看:windows->preferences->Android->build. 如图4-5

包名:Android应用程序本身在AndroidManifest.xml上定义的,如图4-6

在填写安全码后,点击“确定”完成应用的配置工作,得到一个创建的key,如图4-7

图4-4 创建应用填表

资料

图4-5 sha1值查找

图4-6 包名的查找

图4-7 百度key

4.3 百度密钥应用到程序

将创建的的key应用到开发,在AndroidManifest.xml和MainActivity.java添加key如图4-8,图4-9

图4-8 AndroidManifest.xml上

图4-9 MainActivity.java上

资料

第5章 系统设计

5.1 系统功能结构

百度地图应用系统主要由前台使用组成。前台是用户能够进行查询路线操作,以及一些导航操作,由于该界面是针对用户,也考虑了用户想要操作的简洁和方便性,与此同时开发者在应用外观设计上也进行了精心的设计,让用户看着赏心悦目。

应用从前台方面进功能设计,主要功能包括搜索公交路线,周边;查看实时路况以及使用不同模式查看地图;查看附近的基本信息,包括:公交站,银行等;搜索路线,包括:驾车,公交车,走路;使用该系统进行导航等核心功能。

基于Android的百度地图应用系统查询公交路线实时路线不同视觉地图附近信息搜索路线导航5.2 权限设计

资料

图4-1 系统功能结构图

资料

5.3 基本配置设计

android:id=\"@+id/action_settings\" android:orderInCategory=\"100\" android:showAsAction=\"never\"

android:title=\"@string/action_settings\"/>

资料

第6章 系统实现

6.1 系统运行环境和开发平台

表6-1 系统运行环境和开发平台需求表

需求名称 CPU 内存 硬盘 显示器 详细要求 Core I5、6GHz 6G 500G 分辨率1024×768像素以上 20M以上 Windows xp或Windows 7或者Linux MySQL5.5以上 Eclipse4.4 ADT 23.0.2,Andriod SDK 和ADT版本一致 Tomcat 网络 操作系统 数据库 开发工具 软件 Web服务器

6.2 系统实现

6.2.1 系统主界面

该界面是用户登录系统的界面,设计主界面简洁,用户在该界面中能够进行搜索,路线查看,附近,以及导航。

资料

protected void onCreate(Bundle savedInstanceState) {

//调用父类的on Create构造函数,保存当前Activity的状态信息 super.onCreate(savedInstanceState); MyApplication app = (MyApplication) this.getApplication(); //初始化bMapManager bMapManager = app.bMapManager; if (bMapManager == null) { bMapManager = new BMapManager(getApplicationContext()); /** * 如果BMapManager没有初始化则初始化BMapManager */ bMapManager.init(new MyApplication.MyGeneralListener()); }

//记住BMapManager的初始化要在setContentView之前完成,否则是会报错的 setContentView(R.layout.activity_main); getBMapView(); data = new LocationData(); // 定位功能 mLocationClient = new LocationClient(getApplicationContext());

//声明LocationClient类

资料

资料

myOverlay = new LocationOverlay(getApplicationContext(), mMapView, data);

initPopupOverLay(); // 创建 弹出泡泡图层 myOverlay.createPaopao(); myOverlay.enableCompass(); setLocationOption(); // 注册位置监听

mLocationClient.registerLocationListener(locationListener); // 发起定位请求

if (mLocationClient != null && !mLocationClient.isStarted()) { mLocationClient.requestLocation(); mLocationClient.start();//位置服务,没有则初始化 } else { Log.e(\"LocSDK3\}

popup = new PopupOverlay(mMapView, new PopupClickListener() {

private Object address_msg;

@Override

public void onClickedPopup(int index) { switch (index) { case 0:// 单击周边搜索图标 Intent intent = new Intent(MainActivity.this, PoiSearchActivity.class); intent.putExtra(\"MyLocation\ startActivity(intent);Activity之间传递的消息 break; case 1:// 单击我的位置图标 if (address_msg == null) { Toast.makeText(MainActivity.this, \"定位服务进行中...\ Toast.LENGTH_SHORT).show(); } else { Toast.makeText(MainActivity.this, \"我的位置:\" + address_msg, Toast.LENGTH_SHORT) .show(); } break; case 2:// 单击线路查询图标 intent = new Intent(MainActivity.this,//生成Intent对象 RoutePlanActivity.class); intent.putExtra(\"MyLocation\将地址信息发给线

路查询界面 startActivity(intent); // popup.hidePop(); break; } } }); // 初始化导航引擎 BaiduNaviManager.getInstance().initEngine(this, getSdcardDir(), mNaviEngineInitListener, ACCESS_KEY, mKeyVerifyListener); } private void setLocationOption() {//设置相关参数,设置条件 LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); option.setLocationMode(LocationMode.Device_Sensors);// 定位模式 option.setAddrType(\"all\"); option.setCoorType(\"bd09ll\"); option.setScanSpan(1000); option.disableCache(true); option.setPoiNumber(5); option.setPoiDistance(1000); // poi查询距离 option.setPoiExtraInfo(true); mLocationClient.setLocOption(option); } private void getBMapView() { mMapView = (MapView) findViewById(R.id.bmapsView); mMapView.setBuiltInZoomControls(true); MapController mMapController = mMapView.getController();// 设置启用内置的缩放控件 mMapController.setZoom(15);// 设置地图zoom级别 findViewById(R.id.search).setOnClickListener(btnListener); findViewById(R.id.route).setOnClickListener(btnListener); findViewById(R.id.nearby).setOnClickListener(btnListener); findViewById(R.id.navigation).setOnClickListener(btnListener); layer = (ImageButton) findViewById(R.id.maplayers); layer.setOnClickListener(btnListener); roadCondition = (ImageButton) findViewById(R.id.roadcondition); roadCondition.setOnClickListener(btnListener); }

资料

6.2.2 实时路况界面

这是百度地图应用系统的实时路况界面,能够看到目前为止道路的状况,绿色的线代表畅通。

6.2.3 视角界面

这是视图模式界面,用户可以使用三种方式查看地图,卫星图,2D平面图以及3D俯瞰图。

资料

6.2.4 搜索界面

这是百度地图应用系统的搜索界面,用户能够进行搜索,包括:公交路线,KFC以及KTV,这样的娱乐以及快餐的地方。

资料

这是KTV的界面,用户能够在地图上表红标的地方进行放大缩小。

这是公交路线的界面,通过填写目的地城市以及公交车的路线,就能在地图上进行显示,

资料

还能看到公交车的具体路线,公交车的首班车以及末班车时间。

protected void startSearch() { city = cityEt.getText().toString().trim(); busno = busnoEt.getText().toString().trim(); if (TextUtils.isEmpty(city)) {

资料

}

}

city = address; }

if (TextUtils.isEmpty(busno)) { Toast.makeText(BusLineSearchActivity.this, \"搜索内容不能为空\ Toast.LENGTH_SHORT).show(); return; }

intent = new Intent(BusLineSearchActivity.this,ShowBusLineResult.class); bundle.putString(ConstantUtil.KEY_CITY, city);

bundle.putString(ConstantUtil.KEY_BUSNO, busno); intent.putExtras(bundle); startActivity(intent);

private void parseBundle() { intent = this.getIntent(); bundle = intent.getExtras(); address = bundle.getString(ConstantUtil.KEY_LOCATION); Log.d(TAG, \"地址:\" + address); address = address.substring(0, address.indexOf(\"市\")); Log.d(TAG, \"城市:\" + address); }

6.2.5 路线界面

这是路线的界面,用户能够选择三种方式对路线进行选择,包括:驾车,公家以及步行。

资料

以下是搜索的驾车路线。

以下是搜索步行路线图

资料

private RouteOverlay routeOverlay; private MKRoute route = null;// 保存驾车/步行路线数据的变量,供浏览节点时使用 private String startAddr = null; private LocationClient client; private LocationOverlay myOverlay; // 我的位置覆盖物 private LocationData data;// 定位信息 private boolean bmyLocal = true; // 是否定位到我的位置 private int myOverlayIndex = 0; // 位置在图层中的索引 @Override protected void onCreate(Bundle savedInstanceState) { getMapView(); parseBundle(); locateMyPosition(); mkSearch = new MKSearch(); mkSearch.init(bMapManager, MySearchListener);

//我们要先判断它的起点和终点是否为空,不为空则执行步行检索功能 mkSearch.walkingSearch(\"上海\startNode, \"上海\endNode); }

资料

private MKSearchListener MySearchListener = new MKSearchListener() {

@Override

public void onGetWalkingRouteResult(MKWalkingRouteResult result, int error) { // 起点或终点有歧义,需要选择具体的城市列表或地址列表 if (error == MKEvent.ERROR_ROUTE_ADDR) { return; } if (result == null || error != 0) { Toast.makeText(ShowWalkResultActivity.this, \"抱歉,未找到相关信息\ Toast.LENGTH_SHORT).show(); return; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < result.getNumPlan(); i++) { routeOverlay = new RouteOverlay(ShowWalkResultActivity.this, mapView); route = result.getPlan(i).getRoute(i); routeOverlay.setData(route); // 添加路线图层 mapView.getOverlays().add(routeOverlay); // 执行刷新使生效 mapView.refresh(); // 使用zoomToSpan()绽放地图,使路线能完全显示在地图上 mapView.getController().zoomToSpan(routeOverlay.getLatSpanE6(), routeOverlay.getLonSpanE6()); // 移动地图到起点 mapView.getController().animateTo(result.getStart().pt); sb.append(route.getTip() + \"\\n时间:\" + String.format(\"%.2f\route.getTime() * 1.0 / 3600) + \"小时/路程:\" + String.format(\"%.2f\ route.getDistance() * 1.0 / 1000) + \"公里\"); } }

show.setText(sb.toString());

6.2.6 导航界面

这是导航界面,用户进入该界面,输入终点城市以及目的地后,就可以一键导航,下面

资料

的字是在获取所在位置的经纬度以及进行定位。

以下是导航的界面,用户设置GPS后,就能够进行导航。同时导航还带有语音功能。

资料

/** * 启动GPS导航. 前置条件:导航引擎初始化成功 */ private void launchNavigator() { Toast.makeText(NaviInfoActivity.this, \"起点:\" + startaddr + \"\\n终点:\" + endpos, Toast.LENGTH_LONG).show(); BaiduNaviManager.getInstance().launchNavigator(this, latitude, longitude, startaddr, lat, lon, endpos, NE_RoutePlan_Mode.ROUTE_PLAN_MOD_MIN_TIME, true, BaiduNaviManager.STRATEGY_FORCE_ONLINE_PRIORITY, new OnStartNavigationListener() { @Override public void onJumpToNavigator(Bundle configParams) { Intent intent = new Intent(NaviInfoActivity.this,

//左边申明叫intent的对象,右边通过关键字创建了一个intent实体

对象

NaviActivity.class); intent.putExtras(configParams);//启动Activity进行跳转,

Intent传送

startActivity(intent);

6.2.7 数据的缓存

在导航界面启动的时候,输入城市和地点框中将加载上次输入过的相对应的数据,如果没有则不显示。当界面停止或结束的时候,会保存本次输入的数据。

public static final String PREFERENCE_NAME = \"NavCity\"; public static int MODE = Context.MODE_WORLD_READABLE Context.MODE_WORLD_WRITEABLE; protected void onStart() {//Activity启动 // TODO Auto-generated method stub super.onStart(); loadSharedPreferences(); }

protected void onStop() {//Activity停止时 // TODO Auto-generated method stub super.onStop(); saveSharedPreferences();

资料

+

} private void loadSharedPreferences(){ //加载数据缓存 SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE); String endcity = sharedPreferences.getString(\"endcity\ String endcitypos = sharedPreferences.getString(\"endcitypos\ endcityET.setText(endcity); endposET.setText(endcitypos); } private void saveSharedPreferences(){ SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(\"endcity\ editor.putString(\"endcitypos\ editor.commit(); }

资料

第7章 系统测试

我们对系统的测试是管理信息系统开发周期中一个必不可少而漫长的阶段,是开发者保证系统质量与可靠性的最后的一道关,是对整个系统开发的过程包括系统分析、系统设计和系统实行的最后的审查,这需要一段有些漫长的过程。源代码不仅仅是我们进行系统测试仅有的对象,而是整个软件,这其中包括需求规格说明、概要设计说明、详细设计说明及源程序,进行测试的目的是让开发者能够发现软件中存在的错误并进行修改纠正。

7.1 测试内容

1.文档资料的审查验收:严格按照文档资料的撰写规范以及要求进行审查验收; 2.余量要求:基于Android的百度地图应用系统承载的数据量的测试,余量必须达到系统实施的要求;

3.功能测试:基于Android的百度地图应用系统实现的前后台各个功能进行逐一的全面测试;

4.性能测试:基于Android的百度地图应用系统关于性能方面的测试,包括系统突变性、整体性、目的性;

5. 强化测试:基于Android的百度地图应用系统的运行也必须在强度上保证,强化测试十分必要;

7.2 测试预期结果

在基于Android的百度地图应用系统中,我的预期测试结果应该是: 该系统类似于百度地图,所以甚多功能都会实现。 用户搜索公交路线,周边。

用户能够查看实时路况以及使用不同模式查看地图。 用户能够搜索路线,包括:驾车,公交车,走路。 用户能够使用这个系统进行路线的导航。

资料

7.3 测试用例

在基于Android的百度地图应用系统的测试过程中,我主要使用了黑箱测试的方法,测试检查程序出现的错误和不足,在出现错误时以白箱测试进行错误的反复检测和修改。

根据测试用例测试如下: 1.用户进入系统测试

表7-1 用户进入系统测试表

测试描述 用户进入系统 输入数据 下载该系统后,用户选择直接进入 预期结果 进入系统成功 实际输出数据 进入系统成功 测试结果评价 与预期结果一致

2.用户搜索公交路线

表7-2 用户搜索公交路线测试表

测试描述 用户搜索公交路线 用户搜索公交路线 用户搜索公交路线 输入数据 不输入任何数据 预期结果 搜索内容不能为空 未找到相关消息 搜索结果得出 地图上显示公交路线 实际输出数据 搜索内容不能为空 未找到相关消息 搜索结果得出 地图上显示公交路线 测试结果评价 与预期结果一致 与预期结果一致 与预期结果一致 请输入查找城市: 公交线路编号:803 请输入查找城市:成都 公交线路编号:803

3.导航

表7-3 导航测试表

测试描述 用户进行导航 用户进行导航 用户进行导航 输入数据 不输入任何数据 输入终点城市:南京 输入目的地: 输入终点城市:南京 输入目的地:新街口 预期结果 终点城市不能为空 目的地不能为空 成功进行导航 实际输出数据 终点城市不能为空 目的地不能为空 成功进行导航 测试结果评价 与预期结果一致 与预期结果一致 与预期结果一致

7.4 测试结果

在系统进行最后的调试测试之前显示系统的功能错误缺陷达到210个,经过多次的修改将这些缺陷修正了。发现的缺陷以及不足,都在导师的指导帮助中修复完成。系统进行使用了二十几天的用户测试,期间对功能出现的缺陷进行调整修复,通过了测试。现在系统通过了一段时间的测试,系统功能在调整测试后基本覆盖了设计需求。

资料

图7-4 并发数与响应时间关系图

从7-4图中可以看出,在百度地图系统访问人数较少时,系统的响应时间非常短只要 1 秒以内,但是随着访问用户数逐渐的增加,响应时间也会随之增加,但仍在 3 秒以内。性能测试结果能够很好的满足系统需要的部署要求。

测试结果表明,该系统的功能包括预期目标中的所有功能,与预期的目标是一样的。

资料

结 论

本文分析了基于Andriod的百度地图应用系统的实现,并且分析了百度地图应用的过程。基于Android的百度地图应用系统设计实现了地点的搜索、定位、路线规划等功能,还有百度地图应用的基本的功能的实现。在百度地图应用的开发过程中,所有功能的具体实现流程,各个功能的实现细节,其中尤其对GPS导航功能的实现。

本文根据百度地图应用的具体需要,使用了互联网,将软件工程方法多方结合,设计了Android SDK以及百度API上实现基于Andriod的百度地图应用系统。

基于Andriod的百度地图应用系统基本功能开发完毕。其功能基本上达到需求,能够完成定位,路线规划以及公交线路查询,还具有GPS导航的功能。

本系统具有以下优点:

手机端易于操作,比较方便,只需要在手机上下载该软件,就可以在手机上进行操作。 用户定位地点更加的方便,查找线路更加迅速。

用户能够使用GPS进行定位,使得用户对地图的使用变得更加简单。

目前基于Andriod的百度地图应用系统,相对来说是专一的,只是针对百度地图,在应用市场一搜,就有能够搜出百度地图的APP,使用该系统使得用户的查找路线变得方便,只需在系统中输入目的地,地图就会查找目的地,该软件任何人都能使用,能够进行定位,从而进行路线的准确查找,能够成为一个完整的系统,能够更准确对用户搜索的地点进行查询。

系统还有不足和需要改进的地方,比如app图标没有独特的创意,界面布局不够精巧,希望在以后能更好的完善我做的应用。接触更多的图片处理软件Photoshop将界面改进。随着时代的发展,技术也逐渐的提高,Android开发从幼稚走向成熟,开发者花了大量的时间在开发。在设计的过程中注意到很多地方,需要我们的细心与耐心,通过一段时间,反复的调试修改,来完成一个满意的应用系统。

毕业设计的制作,让我们知道了自己的不足。就例如,对很多软件应用还不熟悉,对部分的代码并不熟悉和掌握,对书本上的理论知识不能较好的运用到实例,在今后的工作中,要培养自己接受新事物的能力,从而更好地提高自己的能力。

资料

参考文献

[1] 郭宏志.《Android应用开发详解》[M].北京:电子工业出版社,2010. [2] 杨文志.《Android程序设计指南》[M].北京:电子工业出版社,2009. [3] 吴亚峰.《Android核心技术与实例详解》[M].北京:电子工业出版社,2010. [4] 思志学.《J2EE整合详解与典型案例》[M].北京:电子工业出版社,2008. [5] 靳岩,姚尚朗.《Android开发入门与实战》[M].北京:人民邮电出版社,2009. [6] 张利国.《Android移动开发入门与进阶》[M].北京:人民邮电出版社,2009. [7] 埃克尔.《Java编程思想》[M].北京:机械工业出版社,2007. [8] 梁超著.《J2me应用程序开发》[M].北京:清华大学出版社,2004.

[9] 池瑞楠,仵博,张立涓.《J2ME无线开发实训教程》[M].北京:清华大学出版社,2007. [10] 林闯单,志广任.《计算机网络的服务质量》[M].北京:清华大学出版社,2004. [11] 马国生.《oracle初级教程》[M].北京:北京电子工业出版社,2011. [12] 方爱华.《oracle的优化》[M].南京:东南大学出版社,2008. [13] 李飞.《Java的线程》[M].重庆:重庆大学出版社,2008. [14] 张孝祥.《struts》[M].北京:电子工业出版社,2011. [15] Merlin.《spring的起点》[M].北京:机械工业出版社,2004.

[16] 刘胜前,陈立定,任志刚. 《基于Android移动平台和GPS应用服务研究》[J]. 信息技术. 2012(01) [17] 王小科,寇长梅.《Android从入门到精通》[M].北京:机械工业出版社,2007 [18] (美)迈耶.《Android 4高级编程》[M].北京:清华大学出版社,2013

[19] 明日科技.《SQL Server 2003 应用与开发范例宝典》[M].北京:人民邮电出版社,200 [20] 西尔伯沙茨等.《数据库系统概念(原书第5版)》[M].北京:机械工业出版社,2006 [21] 张利国,龚海平.《Android移动开发案例详解》[M].北京:机械工业出版社,2010 [22] 李钟尉,陈丹丹.《Java项目开发案例全称》[M].北京:清华大学出版社,2012 [23] 李娜.《Java语言程序设计》[M].北京:机械工业出版社,2011 [24]张德富.《算法设计与分析》[M].北京:国防工业出版社,2009

[25]余志龙.《Android SDK 开发范例全》[M].成都:电子科技大学出版社,2009 [26]盖索林.《Android 开发入门指南(第二版)》[M].北京:电子工业出版社,2010 [27]王向辉.《Android 应用程序开发》[M].北京:电子工业出版社2010 [28]张德富.《算法设计与分析》[M].北京:国防工业出版社,2009

[29]吴亚峰.《Android核心技术与实例详解》[M].北京:电子工业出版社,2010 [30]罗杰.《Android应用开发》[M].北京:人民邮电出版社,2010

[31]陈会安.《Android SDK程序设计与开发》[M].北京:清华大学出版社,2013 [32]李刚.《疯狂Android讲义》[M].北京:电子工业出版社,2012 [33]郭宏志.《Android应用开发详解》[M].北京:电子工业出版社,2010

资料

致 谢

本论文是在导师包依勤教授认真悉心指导下完成的,基于Android的百度地图应用系统从论文研究选题、内容、资料收集、结构及至论文的完成,都给予了我许多富有关键性的建议和指导。包依勤导师渊博的知识、务实的工作作风和具有中国传统老师美德的无私的奉献精神将使我终身受益。谨此向我的论文指导老师包依勤老师表示由衷的感谢并致以崇高的敬意!

于此同时我也要感谢那些在我学校学习的过程期间,给予我教诲和知识的老师们,在各个方面给予我帮助的单位的上级同事们和同学,你们的帮助将会给我带来的是很多的好的习惯使我终身受益,也感谢我的家人和朋友对我学习的大力支持,鼓励和理解!

转眼间,四年大学生活即将结束,回顾过去几年的校园生活,是有苦也有乐,然而更多是对知识的收获,感谢各位老师无私的传授知识,更加教会了我们人生的道理。基于Android的百度地图应用系统研究的设计开发虽然繁重,但是在该课题开发中,我感觉到了充实,以及自己对知识的升华,我相信该课题的设计能够为我四年大学生活画上句号。

资料

精品文档,可编辑

资料

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务