基于android的导航系统的设计与实现

上传人:枕*** 文档编号:132488060 上传时间:2022-08-08 格式:DOC 页数:58 大小:3.22MB
收藏 版权申诉 举报 下载
基于android的导航系统的设计与实现_第1页
第1页 / 共58页
基于android的导航系统的设计与实现_第2页
第2页 / 共58页
基于android的导航系统的设计与实现_第3页
第3页 / 共58页
资源描述:

《基于android的导航系统的设计与实现》由会员分享,可在线阅读,更多相关《基于android的导航系统的设计与实现(58页珍藏版)》请在装配图网上搜索。

1、石家庄铁道大学毕业设计基于android的导航系统的设计与实现Design and implementation of the navigation system based on Android 2013届 经济管理 学院专 业 学 号 _ _学生姓名 _ _指导教师 _ _完成日期 2013年6月12日毕业设计成绩单学生姓名学号班级专业毕业设计题目基于android的导航系统的设计与实现指导教师姓名指导教师职称讲师、讲师评定成绩指导教师得分评阅人得分答辩小组组长得分成绩:院长(主任) 签字:年 月 日毕业设计任务书题目基于android的导航系统的设计与实现学生姓名学号班级专业承担指导任务

2、单位经济管理学院导师姓名导师职称一、主要内容本课题旨在基于android技术和百度API和科大讯飞语音API技术给用户提供地图服务,该应用能够正确地显示全国各地大中小城市的地图信息,并能进行地图定位,同时包括卫星地图、交通地图、景点概览、公交、驾车、步行三种出行选择的路线规划、城市各类场所搜索等功能,用户能从中得到对其有用的信息,从而在出行时能够选择一条适合自己的出行,节省宝贵的时间和精力。二、基本要求1.开发平台:Windows 7、Android OS、Android SDK-17、ADT-21、JDK 1.72.开发工具:Eclipse、Microsoft office viso 200

3、3、Rationalrose3.论文要求:1万字,外文翻译3千字。三、主要技术指标1.系统功能完善,操作方便,界面美观,图形、数据处理准确;2.分析设计过程合理,文档资料及模型规范、完备;3.系统发布后可维护性,通用性较好。四、应收集的资料及参考文献1 Jerome.AndroidAProgrammersGuideM. DiMarzio PRESS,2009:23-27.2 林城.Android 2.3应用开发实战J.机械工业出版社,2011:17-321.3 韩超.Android经典应用程序开发J.人力资源出版社,2011:5-18.4 张海藩.软件工程导论(第4版)J.北京:清华大学出版社

4、,2006:34-38.五、进度计划第1周第3周:毕业实习,查阅资料,熟悉开发环境第4周第9周:设计原型系统,算法研究第10周第14周:实现推荐算法,开发原型系统,确定论文框架第15周第16周:完善系统,撰写论文,准备答辩教研室主任签字时间 年 月 日毕业设计开题报告题目基于android的导航系统的设计与实现学生姓名班级专业一、研究背景及意义近年来随着android、ios和Windows Phone的发展日益完善,智能手机越来越普及,发展十分迅速,基于地图的服务应运而生并不断深入人们的生活。其中Android是当前最流行的手机智能系统。其强大、快速的处理能力吸引了很多手机厂商如HTC、三星

5、、MTORALA、华为、魅族、联想、酷派、中兴、小米、华硕等厂商的加入。此外其开源的系统框架更是为手机厂商定制具有自己特色的软件、服务提供了方便,因此赢得了一大批厂商的青睐。目前比较好的地图服务时“Google 地图”、“百度地图”, Google Map是Google公司自己开发的一个基于地图的应用服务服务,目前是几乎最完善的一个地图平台。相比之下国内做的比较好的是百度地图和高德导航等,上述两家相对比较完善。总的来说,地图服务功能是在手机用户接入网络后,能实现显示电子地图、实现自我定位、城市搜索、路线规划等综合功能。近几年随着3G网络的完善,覆盖范围和普及率也越来越高,手机接入网络的速度得到

6、了大幅提升,因而地图用户的实际体验也变得更加友好,可以预见未来几年能将地图服务有效地与位置定位技术相结合应用前景十分广阔的。二、国内外研究现状目前国内Android地图开发主要是以应用开发为主,总体上主要分为三类:开发通用应用(放到AndroidMarket等平台销售)、游戏类开发、以及为企业级开发应用。第一、二类开发者,一般是处于创业型的公司或独立开发者,它们的盈利方式主要有两种渠道:1为国外公司进行外包开发,或者通过Google的移动广告点击分成;2通过付费下载的形式来获取盈利。第三类开发者一般是规模较大的公司,这些公司主要为自己的品牌或者其它品牌设计手机和平板电脑的处理方案。除根据需求对

7、系统进行定制外,更多的工作在于为这些系统编写定制的应用等服务。 国外android地图开发者主要集中于地图服务的定义和底层服务的构建及相关数据库的集成,也就是说他们主要从事pc和移动终端的地图的研发,而具体地图应用服务则多采取外包形式。三、研究方案1研究目标本系统的主要功能包括城市搜索、出行路线规划、手机实时定位,指定地点查询及其经纬度查找、景点概览、导航等。2研究内容I、地图管理.在线地图的展示.任意界面的地图缩放.时时定位个人所在位置.显示当前位置地图经纬度II、个性化查询.提供石家庄当地的餐饮、娱乐场所、银行、酒店宾馆、 交通设施、大型超市、商场百货、公共服务设施、汽车服务站政府机构等场

8、所的快捷查询。.在地图界面通过气泡模式展示出来III、出行导航选择路径.已知经纬度查询.输入地址的反编译.提供公交、驾车、步行三种方式的出行路线规划.提供路线中各个站点的信息查询IV、景点概览.查询全国各地的景点信息.对附近出名的景点进行推荐.展示景点当地的特色小吃、住宿、娱乐设施等信息该系统应用开发过程涵盖系统需求分析,包括系统功能需求分析、性能需求分析和功能模块划分;系统设计,包括前台UI设计和功能模块的具体设计。3研究方法 运用Java编程技术,xml脚本技术等技术开发系统。 数据库存在地图提供商服务器端,无需数据进行维护,因此能保证系统数据的三大特性不被破坏。 系统采用多层开发模式,能

9、有效保证后期可维护性。 统开发模式选择C/S设计模式,通过在移动终端安装该应用只要接入网络便可以不受地域,时间的限制,随时随地享受服务。 通过引用百度地图API、科大讯飞语音API,使用百度和科大讯飞提供的数据接口,可以轻松访问百度服务和数据,并构建功能丰富、交互性强的地图应用程序,进行多种语音应用开发能支持语音合成、语音听写、语音识别等完善功能。4. 功能结构5关键技术Java编程技术Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。它能运行于不同的系统平台;它能为程序提供安全管理器,防止程序的非法访问;Java类具有封装性、 继承性等特性,使程序代码只需一次编译,便能反复利用。

10、XML技术可扩展标记语言 (Extensible Markup Language, XML) ,是一种用于标记电子文件使其具有结构性的标记语言,可用来标记数据、定义数据类型,它能允许用户对自己的标记语言进行定义。 XML是标准通用标记语言 (SGML) 的子集,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。百度API、科大讯飞API百度地图API是一套为开发者免费提供的基于百度地图的应用程序接口,它提供基本地图、位置搜索、定位、周边搜索、路线规划等功能。科大讯飞API是一套为开发者免费提供的基于科大讯飞语音的,能提供关于语音合成、语音听写、语音识别和声纹识别完善的API。四、进

11、度计划第1周第3周:毕业实习,查阅资料,熟悉开发环境第4周第9周:设计原型系统,算法研究第10周第14周:实现推荐算法,开发原型系统,确定论文框架第15周第16周:完善系统,撰写论文,准备答辩五、参考文献:1 Jerome.AndroidAProgrammersGuideM. DiMarzio PRESS,2009:23-27.2 林城.Android 2.3应用开发实战J.机械工业出版社,2011:17-321.3 韩超.Android经典应用程序开发J.人力资源出版社,2011:5-18.4 (美)CayS.Horstmann,GaryCornell.Java核心技术J.机械工业出版社,2

12、008:15-17.5 刘卫国,姚昱禹.Android与J2ME平台间即时通信的研究与实现J.中南大学信息科学与工程学院.2008年12期:118-120.6 刘平.Android手机访问服务器的一种数据交互方法J.西安财经学院网络与现在教育技术中心,2010-09:96-102.7 刘玉平.Java输入输出流及在网站开发中的应用探讨J.郴州市科技局,2009,(18):35-49.8 赵亮,张维.基于Android技术的界面设计与研究D.徐州:徐州建筑职业技术学院,2001.9 陈璟,陈平华,李文亮.Android内核分析J.广东工业大学计算机学院实践与经验,2009:112-115.10

13、刘卫国,姚昱禹.Android的架构与应用开发研究J.中南大学:信息科学与工程学院计算机系统应用2008-11:110-112.11 张海藩.软件工程导论(第4版)J.北京:清华大学出版社,2006:34-38.12 邝孔无,王晓敏.信息系统分析与设计(第三版)M.清华大学出版社,2006:23-26.13 亢勇,陈自力,李鹏,路平.面向对象的软件测试J.测试技术学报,1999,(02)15-23.14 何玉洁.数据库原理与应用教程M.机械工业出版社,2005.1215 JOHNLEWIS.JAVASOFTWARESOLUTIONSM.PUBLISHINGHOUSEOFELECTRONICSI

14、NDUSTRY,2007:134-140.16 KENARNOLD,JAMESGOSLING,DAVIDHOLMES.JAVAPROGRAMMINGLANGUAGE M. POSTS&TELECOMPRESS,2006:231-235.指导教师签字时间年 月 日摘要近年来随着Android等操作系统和智能手机的发展和普及,越来越多基于百度地图和谷歌地图的服务应运而生。人们已经开始习惯出行时使用手机地图作为方向导引,手机地图已经成为人们生活中不可或缺的一个部分,针对不同人群,制作个性化而且方便使用的手机地图是当前十分热门的话题。使用Eclipse、和Android SDK开发工具包加上Java语

15、言的支持,再通过引入百度地图API或者谷歌地图API,同时加入科大讯飞的语音支持,能够很方便地获取百度或者谷歌公司提供的基本地图,它能提供关键字搜索、用户位置定位、周边搜索、指定位置的经纬度查询、出行路线规划、景点搜索等功能。还能使用户直接通过语音方式输入文字,节省了打字的时间和精力。用户在安装该系统后,它能在今后的日常生活中为用户带来极大的便利。关键词:安卓开发工具 智能手机 百度API 定位 语音支持AbstractIn recent years, with the development and popularization like the Android operating syst

16、em and smart phones, more and more map apps which based on Baidu Maps and Google Maps service have come into being. People have got used to using a mobile phone to be a guider when traveling,mobile maps have become an indespensable part of life, thus for different groups, createinga personalized and

17、 easy to use mobile phone map app is a very popular topic at present .By using eclipse and Android SDK developing tools and with the support of Java ,then introducing Baidu Maps API or Google Maps API, together with IFLYTEK voice support, it is very easy to get access to Baidu or Google maps,it can

18、provides keyword search, locate the users location, search the thing surrounded,query specified latitude and longitude location ,plan travel route , search attractions,and other functions. It also enables users to enter text by voice directly, which saves time and effort. After users installing the

19、system, it will surly bring great conveniencein dailylife in the future.Key Words : Android SDK Smart Phones Baidu API Locate Voice Support目录第1章绪论11.1课题研究的意义11.2 研究目标11.3系统开发环境2第2章系统分析32.1 系统设计特点32.2可行性分析32.3需求分析42.3.1地图导航系统模块需求42.3.2地图导航系统功能42.4用例图及用例模型52.4.1城市搜索用例图52.4.2经纬纵横用例图62.4.3公交路线用例图72.4.4景

20、点概览用例图82.4.5路线规划用例图82.4.6 地图定位用例图92.4.7 周边查询用例图102.4.8地图导航系统用例图112.5地图导航系统顺序图12第3章系统设计与实现133.1功能结构设计133.2申请API143.2.1申请百度地图API143.2.2申请科大讯飞语音API143.3 如何把API添加到我的Android工程中163.4系统流程163.5界面布局方式173.6 地图图层183.7 主要类的设计和接口193.8 用户界面设计203.8.1地图导航系统主界面203.8.2地图导航系统分界面213.9界面的实现原理25第4章系统的重点和难点264.1 重点与难点264.

21、2重点与难点的解决方案26第5章结论295.1总结与结论295.2不足与展望29参考文献30致谢31附录32英文原文32汉语译文39第1章 绪论随着信息技术、移动通讯技术以及GPS的发展,电子地图逐步代替了传统地图,它能包含大量的地理信息数据以及能完成传统地图所无法完成的功能,因而深受广大用户的青睐。现在用户可以通过自己的手机查询自己当前所在位置、搜索商家地点、查看周边环境等信息,这大大地方便了人们的出行丰富了人们的业余生活。1.1课题研究的意义随着智能手机的深入普及和发展,基于地图的应用服务不断地完善,渗入到了社会生活的各个领域。近年来android、ios和Windows Phone的发展

22、日益完善,智能手机越来越普及,发展十分迅速,基于地图的服务应运而生并不断深入人们的生活。其中Android系统是当前最流行的手机智能系统之一。其强大、快速的处理能力吸引了很多手机厂商如HTC、三星、MTORALA、华为、魅族、联想、酷派、中兴、小米、华硕等厂商的加入。此外其开源的系统特性更是为手机厂商提供了极大的方便,因此赢得了一大批厂商的青睐 。目前比较好的地图服务是“Google 地图”、“百度地图”, Google Map是Google公司自己开发的一个基于地图的应用服务服务,目前是几乎最完善的一个地图平台。相比之下国内做的比较好的是百度地图和高德导航等,上述两家相对比较完善。总的来说,

23、地图服务功能是在手机用户接入网络后,能实现显示电子地图、实现自我定位、城市搜索、路线规划等综合功能。近几年随着3G网络的完善,覆盖范围和普及率也越来越高,手机接入网络的速度得到了大幅提升,因而地图用户的实际体验也变得更加友好,可以预见未来几年能将地图服务有效地与位置定位技术相结合应用前景十分广阔的。1.2 研究目标本系统的主要功能包括城市搜索、出行路线规划、手机实时定位,指定地点查询及其经纬度查找、景点概览、导航和个性定制化的查询服务等。具体内容如下:一、地图管理1.在线地图的展示2. 任意界面的地图缩放3.时时定位个人所在位置5.显示当前位置地图经纬度二、个性化查询1. 提供石家庄当地的餐饮

24、、娱乐场所、银行、酒店宾馆、交通设施、大型超市、商场百货、公共服务设施、汽车服务站政府机构等场所的快捷查询。2. 在地图界面通过气泡模式展示出来三、出行导航选择路径1. 已知经纬度查询2. 输入地址的反编译3. 提供公交、驾车、步行三种方式的出行路线规划4提供路线中各个站点的信息查询四、景点概览1. 查询全国各地的景点信息2. 对附近出名的景点进行推荐3展示景点当地的特色小吃、住宿、娱乐设施等信息。1.3系统开发环境(1) 软件需求操作系统:Windows 7 Android OS开发环境:Android SDK-17、ADT-21、JDK 1.7开发工具:Eclipse、Microsoft

25、office Viso 2003数据库系统:SQLite开发语言:Java 、 XML语言系统分析工具:Rational Rose(2) 硬件需求处理器:Intel i3 双核处理器内存需求:2GB RAM 硬盘需求:5G可用硬盘空间操作系统环境:Microsoft Windows 7,Android OS第2章 系统分析2.1 系统设计特点本系统是建立在Android智能手机平台上,它有以下几个特点:1 开源性:Android操作系统的底层核心是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及共同开发的,它是目前

26、非常流行的开源系统。2 可拓展性:能满足特定手机用户对地图服务的要求,与此同时其良好的拓展性为进一步拓展带来了可能。3 易用性:系统界面UI设计简单明了,普通手机用户很快就能直接操作该程序。2.2可行性分析系统的可行性分析在基于android的导航系统的设计与实现的整个建设过程中占有十分重要的地位,系统的可行性分析会决定基于android的导航系统的设计与实现是否可能实现或是否值得去实现。可行性分析的目的就是使移动公司渠道精细化管理平台能否以最小的代价在尽可能短的时间内解决可能遇到的问题。可行性分析主要包括技术、经济、运行等方面可行性分析:;现有技术能否实现本系统的设计和开发;在经济上去实现的

27、必要性的评估;是否可以在客户端正常使用和能否在普通平台上搭建服务器等问题。(1)技术可行性它指开发一个新的系统目前是否具备所需要的技术。由于本系统采用Java语言环境和Eclipse开发环境 ,Java语言本身所具有的面向对象的特点以及强大的类库支持,加上谷歌公司提供的Android SDK和ADT功能已经相对完善,开发该系统所需的技术问题已经得到解决。基于android的导航系统的设计与实现以Eclipse作为开发平台,结合Java语言进行开发,技术层面成熟可行。(2)经济可行性评判一个系统是否可行的最基本、最有效的一种方法是判断其是否能有效配置经济资源,及对信息系统解决方案成本有效性的量度

28、。“基于android的导航系统的设计与实现”采用C/S架构,开发模式相对简单,能满足用户定制需求,开发周期短,并且它使用的是手机2G、3G或者wifi网络,对资源要求不会太高 ,经济压力也不会大可行性较高。(3)系统管理可行性“基于android的导航系统的设计与实现”对硬件的要求不高,以当前的智能手机硬件水平来看,完全能够支持把该系统部署在手机上。手机使用的客户端仅要求接入Internet网络即可提供服务,实现其功能,不受时间,地点限制,数据可维护性强。总之,“基于android的导航系统的设计与实现”在技术、经济、系统管理等方面都是可行的。2.3需求分析需求分析在系统开发中扮演着十分重要

29、的角色,系统成败与否和需求分析完成的情况息息相关 。因此,在需求分析阶段一定要严谨对待,不能马虎求成。需求分析主要包括以下几方面:写出系统的任务和特点、需要实现的功能模块及其作用、系统UML图、明确采用的数据库、明确开发运行环境。2.3.1地图导航系统模块需求地图导航系统的主要功能是以地图和文字的形式向用户提供地图服务,同时它可以提供友好、方便的用户界面。其功能需求包括:(1) 地图操作:能实现地图的放大、缩小和移动查询。(2) 定位操作:用户打开GPS之后,地图导航系统能通过GPS模块和网络获取当前用户所在的经纬度。(3) POI定位查询:地图导航系统能根据用户所在位置查询出周边一些地理位置

30、信息,并在地图上展示出来。(4) 卫星地图显示:能显示卫星地图,并能够进行普通地图和卫星地图的切换操作。(5) 交通地图显示:能显示交通地图,并能够进行普通地图和交通地图的切换操作。(6) 公交查询:能够查询全国各大中小城市的联网公交路线并在地图上显示路线。(7) 景点查询:搜索全国各地的景点,在手机屏幕上展示出来。2.3.2地图导航系统功能(1)城市搜索能根据地名查询全国各大中小城市的各类场所,同时在手机屏幕上显示和标注出来。(2)经纬度查询地图导航系统能通过在手机上输入城市名称和具体地点名称,就能获取该地理位置的经纬度,并返回经纬度值到屏幕上显示出来。(3)地图定位地图导航系统在用户打开G

31、PS之后能通过GPS模块和网络获取当前用户所在的经纬度,同时还能根据相关算法,在地图上精确地标注用户当前所在的地理位置的经纬度,并显示用户当前所在位置。(4)公交查询通过在该地图应用中输入城市名称和公交路线数字就能够查询全国各大中小城市的联网公交的路线,同时还能在地图上显示该路线和各个站点的名字。(5) 路线规划该地图导航系统能提供驾车、公交、步行三种出行方式的路线选择,用户只需要在该地图应用中输入出发地点和目的地就能获取从出发点到目的地的分别的最佳路线,并在地图上显示出来,简洁明了。(6)景点查询该地图导航系统能提供全国各个景点的相关信息查询,用户在应用中输入相关关键字就能获取与之相关的景点

32、的各类信息,包括游记,旅游攻略,交通、饮食、购物、文化地理等。(7)附近搜索该地图导航系统能提供附近的一些生活信息查询,如餐饮点、娱乐场所、银行、大型超市、商场百货、交通设施、汽车服务点、政府部门机构等定制信息查询,然后在手机屏幕上罗列出来。2.4用例图及用例模型2.4.1城市搜索用例图图2-1城市搜索用例图城市搜索用例描述1.参与者:安装该地图导航系统的用户2.前置条件:用户通过手机安装该地图导航系统后,手机具有介入互联网的能力3.基本操作流程:1.进去该地图导航系统主界面2.选择城市搜索、经纬纵横、公交搜索、景点概览、路线规划、地图定位、周边搜索等功能中的一项进行操作3.进入下一级界面之后

33、选择相应的搜索功能即可在屏幕上得到想要的搜索结果2.4.2经纬纵横用例图图2-2经纬纵横用例图经纬纵横用例描述基本操作流程:1.用户进入地图导航系统2.选择经纬纵横按钮3.点击文本框输入内容或者点击语音输入按钮通过语音输入文字4.选择经纬度精确查询得到所查找的地址的经纬度5.界面返回显示查询结果2.4.3公交路线用例图图2-3公交路线用例图公交路线用例描述基本操作流程:1.用户进入地图导航系统2.选择公交路线按钮3.点击文本框输入内容或者点击语音输入按钮通过语音输入文字4.点击开始按钮5.界面返回显示路线查询结果2.4.4景点概览用例图图2-4景点概览用例图景点概览用例描述基本操作流程:1.用

34、户进入地图导航系统2.选择景点概览按钮3.进入景点搜索界面4.选择经典地图查询、热点景点查询、当地美食或者精彩游记查询5.界面返回显示选择查询信息的结果2.4.5路线规划用例图图2-5路线规划用例图路线规划用例描述基本操作流程:1.用户进入地图导航系统2.选择路线规划按钮3.点击文本框输入内容或者点击语音输入按钮通过语音输入文字4.选择驾车路线、公交路线或者步行路线中的一个开始按钮5.界面返回显示所选出行方式的路线规划结果2.4.6 地图定位用例图图2-6地图定位用例图地图定位用例描述基本操作流程:1.用户进入地图导航系统2.选择地图定位按钮3.界面显示用户当前所在位置信息4.点击satell

35、ite按钮切换到卫星和交通视图,再次点击该按钮切换到普通地图视图2.4.7 周边查询用例图图2-7周边查询用例图周边查询用例描述基本操作流程:1.用户进入地图导航系统2.选择周边查询按钮3.选择列表的其中一项4.界面返回显示所选信息的查询结果2.4.8地图导航系统用例图图2-8地图导航系统用例图地图导航系统用例描述1.参与者:安装该地图导航系统的用户2.前置条件:用户通过手机安装该地图导航系统后,手机能兼容该地图导航系统,且手机具有接入互联网的能力基本操作流程:1.用户进入地图导航系统2.选择城市搜索、经纬纵横、公交搜索、景点概览、路线规划、地图定位、周边搜索七大功能中的一项3.进入相应界面后

36、,输入关键字,点击开始按钮4.系统获得所搜索关键字的结果,并返回显示所查询信息的执行结果2.5地图导航系统顺序图图2-9地图导航系统顺序图首先用户点击系统图标进入地图导航系统主界面,用户选择其中一个功能进去之后,通过关键字搜索信息。若是通过语音方式录入信息,则系统向科大讯飞服务器发送请求,讯飞服务器获取appid值,并验证其是否合法,合法则进一步获取语音录入的值,识别成功则返回录入信息,系统获取之后传参给EditText。点击开始按钮后系统向百度服务器发送请求,百度服务器获取百度地图API key值之后判断其是否合法,合法则进一步获取请求值,执行一系列算法之后若得到计算结果则返回值,系统获取之

37、后再到地图图层显示出来。第3章 系统设计与实现3.1功能结构设计本系统为C/S架构模式,系统主要通过在系统客户端完成一系列操作。手机客户用户可以通过它实现如下功能:城市关键字搜索、用户位置定位、指定位置的经纬度查询、公交路线的查询、景点关键字搜索、三种出行方式的路线规划、用户所在地理位置定位、周边信息搜索等功能。图3-1功能结构图3.2申请API3.2.1申请百度地图API用户在正式使用API之前需要获取百度地图移动版API Key,该Key与用户的百度账户相关联,用户必须先有百度帐户,才能获得API KEY。并且,该KEY与用户引用API的程序名称有关。用户可以到百度官方网站去获取授权。以下

38、是百度地图移动版API Key官方申请界面:图3-2百度地图API申请界面3.2.2申请科大讯飞语音API用户在使用语音服务之前,需要获取科大讯飞公司的语音的授权,用户可以到“”注册成为语音云开发者,并为所开发的软件申请APPID。以下是科大讯飞语音APPID官方申请界面:图3-3讯飞语音API申请界面一图3-4讯飞语音API申请界面二3.3 如何把API添加到我的Android工程中先将百度MAP API包括的两个文件baidumapapi.jar和libBMapApiEngine_v1.so拷贝到工程根目录及libsarmeabi目录下,并在工程属性-Java Build Path-Lib

39、raries中选择“Add JARs”,选定baidumapapi.jar,确定后返回,这样您就可以在您的程序中使用API了。然后引入科大讯飞语音功能,这时需要引入SDK中包含的msc.jar和libmsc.so动态库,so动态库包含arm、arm-v7a、mips、x86四种架构,一般只需引入arm架构so动态库即可,这可以减少应用程序安装包大小。接着在AndroidManifest.xml中申明权限代码如下:3.4系统流程以下为地图导航系统的运行流程:否是开始显示地图图层用户位置有无改变?采集更新的位置信息定位用户位置侦听用户点击事件判断命令类型显示各类图层清除图层退出结束图3-5系统运行

40、流程用户界面为地图模式下的地图图层,界面最上方标明实时卫星数据,包括用户当前所在位置的经度、纬度、卫星视图等信息。界面正中央的小点则指明了用户当前所在的位置。界面下方为Menu菜单,实现本程序的主要功能,包括图层分类,图层清除和程序退出等功能。图层分类可显示用户当前所在位置周边的餐饮、娱乐、购物、超市、银行、交通等信息,使得用户对其周边有所了解,方便其出行。点击Menu菜单的相应按钮,则会调出退出系统和关于系统选项,退出系统的同时将清楚图层信息。3.5界面布局方式(1)xml配置文件采用LinearLayout线性布局、RelativeLayout相对布局两种布局方式对软件界面进行布局。(2)

41、继承View类主要是使用了MapView、Button 、EditText、TextView、ImageView等界面控件。主要界面设计图如下:Fromto确定Way to go在此区域显示地图mapview放大缩小图3-6主要界面设计3.6 地图图层地图可以包含一个或多个图层,每个图层在每个级别都是由若干张图块组成的,它们覆盖了地球的整个表面。例如您所看到包括:马路街道、建筑、公园、学校、湖泊等内容就是在一个图层上,它属于基本的地图图层。卫星地图、街景视图和交通地图则分别处在三个独立的地图图层。三种图层的实现方法分别如下:实景图: mMapView.setStreetView(true);卫

42、星图: mMapView.setSatellite(true);交通图: mMapView.setTraffic(true);地图模式切换源码:ToggleButton satellite =(ToggleButton)findViewById(R.id.SatelliteToggleBtn);satellite.setOnCheckedChangeListener(new OnCheckedChangeListener()public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) if(isChecked

43、)mMapView.setSatellite(true);mMapView.setTraffic(true);mMapView.setStreetView(true);else mMapView.setSatellite(false);mMapView.setTraffic(false); );3.7 主要类的设计和接口(1)Overlay:覆盖物的抽象基类,所有的覆盖物均继承此类的方法,实现用户自定义图层显示。(2)ItemizedOverlay:Overlay的一个基类,包含了一个OverlayItem列表,相当于一组分条的Overlay,通过继承此类,将一组搜索的兴趣点显示在地图上。(3

44、)MyLocationOverlay :能负责显示用户当前位置的Overlay。(4)PoiOverlay:本地搜索图层,提供某一特定地区的位置搜索服务,比如在北京市搜索“大学”,通过此图层将搜索的大学结果显示在地图上。(5)RouteOverlay:公交、步行、驾车导航线路图层,将公交、步行、驾车出行方案的路线及关键点显示在地图上。(6) WebView:通过继承此类可以显示所搜索景点的各类信息。(7) RecognizerDialog:调用此接口后启动录音进行识别服务,无效参数会抛出错误信息;RecognizerDialogListener:本次识别过程结束,如果识别成功,对话框自动消失。

45、如果出现错误,界面不消失,显示相应错误文字,开发者不需要对错误情况进行处理,用户根据界面提示进行下一步操作; RecognizerResult:它有三个参数,命令词和语法识别时,text表示识别结果,confidence表示置信度,取值范围0-100,同时使用semantemet中key为contact的字段和上传的原词表进行比对。3.8 用户界面设计3.8.1地图导航系统主界面图3-7地图导航系统主界面主界面设计主要要是在main.xml文件中,使用了相对布局(RelativeLayout)来进行布局,包括:城市搜索、经纬纵横、公交搜索、景点概览、路线规划、地图定位、周边搜索七个功能。页面可

46、以上下拖动,最下面Menu菜单是用绝对布局固定住的。3.8.2地图导航系统分界面城市搜索界面 经纬纵横界面图3-18城市搜索界面 图3-9经纬纵横界面在EditView中输入城市和查询地址的关键字,界面返回值并显示所搜索地址的结果和所在位置经纬度。地图通过mMapView.setBuiltInZoomControls(true);可以启用内置的缩放控件。公交路线界面 景点介绍界面图3-10公交路线界面 图3-11景点介绍界面在左图EditView中输入城市名和查询公交路线,界面即可返回值并显示所搜索公交的路线结果。在右图TextView中输入所搜索目的地景点名称关键字,界面即可返回相关的景点信

47、息,包括景区地图、景点旅游攻略、景点宾馆住宿、精彩游记等信息。路线规划界面 地图定位界面图3-12路线规划界面 图3-13地图定位界面在左图EditView中输入城市名和目的地关键字,再选择出行方式,界面即可返相应出行方式的路线结果。在右图中能显示用户的所在位置,单击satellite按钮后,界面会显示卫星视图,再次单击又会回到普通地图视图模式。周边搜索界面 卫星地图界面图3-14周边搜索界面 图3-15卫星地图界面在左图中有多个项目关键字可供选择,选择其中一个后,系统会跳转到地图界面并显示搜索结果供用户选择。3.9界面的实现原理图3-16界面实现原理界面上有一个放大缩小的控件,用户操作时通过

48、调用zoomControls.setIsZoomInEnabled(true);zoomControls.setIsZoomOutEnabled(true);或者mMapView.setBuiltInZoomControls(true);两种方式来实现放大缩小操作,每次放大或缩小后,系统都会获取新的地图数据并刷新界面。MapActivity调用mMapView,而mMapView继承自MapView,所以可以覆盖其onDraw方法实现在手机屏幕上贴图。程序获取图片,粘贴图片的大体流程为:通过监听按键,然后根据的改变从数据库中获取贴图,最后采用贴图算法进行粘贴,更新视图。系统完成到最后,为了让风

49、格统一化,以使界面能够让人舒心,因此系统界面做了一些精简,按钮和文字的显示我也适当地做了些小调整,以保持UI友好。同时POI显示也被略加修改,以适应客户对界面效果的需求。第4章 系统的重点和难点4.1 重点与难点本系统的重点与难点主要在于搭建好Android开发环境平台,申请百度地图API和科大讯飞API的使用权限,并得到上述公司地图和语音服务的使用授权,获取百度APIKey和讯飞语音APPID。该系统涉及用户的位置定位、卫星交通地图和普通地图视图之间的切换、路线规划、城市周边关键字搜索及景点信息搜索等内容,如何获取用户当前的地理位置信息及怎样去进行路线规划并获取结果返回显示,都是该系统需要攻

50、克的重点与难点问题。该系统支持语音录入文字信息的功能,这就涉及如何正确识别语音并返回结果这个过程的逻辑处理问题,这也是需要解决的难题之一。此外由于Android平台的碎片化问题日趋严重,同一时间多种版本的存在给用户以及开发者带来了不小的麻烦,不同手机的分辨率不尽相同,这也是碎片化问题存在的根本原因所在,该问题的存在可能导致应用程序无法在相关安卓设备上运行。于是如何开发一款能在多种设备上运行的应用程序就成了开发过程中的难点问题了。目前该系统能在主流的分辨率下(480800)完美运行。4.2重点与难点的解决方案刚开始接触Android开发平台时,Android对我来说还是一个比较陌生的概念。一切都

51、像是从头开始,从刚开始摸索搭建Android开发环境平台到熟悉Android系统架构,到API的引入,再到完成这个系统的开发,最后签名打包发布,这个过程设计多个领域的知识相结合:Android、Java、百度API,科大讯飞API等,我通过上网上去查资料,逛论坛,研究DEMO,向别人请教等各种方式,在不断实践中吸取经验和教训,最终终于在我的坚持不懈的努力下解决了这个难题。具体的解决方案如下:获取POI搜索值:public void onGetPoiResult(MKPoiResult res, int type, int error) if (res = null) Log.d(onGetPo

52、iResult, the onGetPoiResult res is + type+ _ + error); elseLog.d(onGetPoiResult,the onGetPoiResult res is + res.getCurrentNumPois() + _+ res.getNumPages() + _+ res.getNumPois() + _ + type + _+ error);/ 错误号可以去参考MKEvent中的定义if (error != 0 | res = null) Log.d(onGetPoiResult, the onGetPoiResult res 0 );T

53、oast.makeText(MyMapActivity.this, 抱歉,未找到结果,Toast.LENGTH_LONG).show();return;ArrayListpoiResult= res.getMultiPoiResult();if (poiResult != null)Log.d(onGetPoiResult, the onGetPoiResult res 1_+ poiResult.size();/ 将地图移动到第一个POI中心点if (res.getCurrentNumPois() 0) Log.d(onGetPoiResult, the onGetPoiResult res

54、 2);/ 将poi结果显示到地图上面PoiOverlay poiOverlay = new PoiOverlay(MyMapActivity.this,mMapView);poiOverlay.setData(res.getAllPoi();mMapView.getOverlays().clear();mMapView.getOverlays().add(poiOverlay);mMapView.invalidate();mMapView.getController().animateTo(res.getPoi(0).pt); else if (res.getCityListNum() 0)

55、 Log.d(onGetPoiResult, the onGetPoiResult res 3);String strInfo = 在;for (int i = 0; i res.getCityListNum(); i+) strInfo += res.getCityListInfo(i).city;strInfo += ,;strInfo += 找到结果;Toast.makeText(MyMapActivity.this, strInfo,Toast.LENGTH_LONG).show();Log.d(onGetPoiResult, the onGetPoiResult res 4);获取讯

56、飞语音识别结果:protected Dialog onCreateDialog(int id) RecognizerDialog recognizerDialog = new RecognizerDialog(MyRoutePlan.this, appid=51b1ad4e);/ 这里输入的是从科大讯飞申请到的appidrecognizerDialog.setEngine(sms, ptt=0, null);recognizerDialog.setListener(new RecognizerDialogListener() Overridepublic void onResults(ArrayList results,boolean arg1) StringBuffer result = new Strin

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!