ANDROID毕业论文.doc_第1页
ANDROID毕业论文.doc_第2页
ANDROID毕业论文.doc_第3页
ANDROID毕业论文.doc_第4页
ANDROID毕业论文.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

基于android 平台的google map的手机导航设计摘 要 google 公司于 2007 年 11 月发布 android 系统以来,短短四年时间,android 已经占据了智能手机市场的半壁江山,是目前最为炙手可热的智能手机操作系统。android 走进了越来越多人的生活,成为他们获取信息主要设备。随着拥有私家车的家庭越来越多,大部分司机朋友都希望能接收到导航服务,为自己的旅程提供准确便利的信息。除了购买导航仪以外,导航软件的出现为司机朋友增加了一个选择,通过手机就能实现导航功能,不但节省了一笔导航仪的费用,还能为获得除了导航服务以外的更多信息。目前市面上大部分导航软件都存在如占用空间大,地图数据不全面等弊端,一部分用户体验可能就不是很好。google map 作为最先推出的网上地图,各种数据信息最为全面和准确,本系统通过google map api 设计一个能够实现定位、导航和交通信息发布等等功能的在线导航软件。在android 设备上具有良好的用户界面、响应速度和用户体验。 关键词 智能手机 android google map 导航应用abstract since google released android system in november 2007, just four years time, android already accounts for half of the smartphone market, is by far the hottest smartphone operating system. android went more and more peoples lives, as the main equipment they get information. with the large sum of families have private car, most drivers want navigation services, to provide accurate information to facilitate their journey. in addition to buying navigator, navigation software is another choice for drivers, phone can make navigation, saves a navigation instrument fee, but also to obtain in addition to navigation services for more information. there most of the navigation software on the market has some drawbacks such as occupy a large space; map data is not comprehensive. part of the user experience may not be very good.google map as the first online map, all kinds of data information is the most comprehensive and accurate, this system through the google map api design one to achieve a positioning, navigation and traffic information and more features for online navigation software. in the android device is a good user interface, speed of response, and user experience.keywords smartphone android google map navigation1 引言 在当今社会,手机已经成为人们日常生活中不可或缺的工具,以用户体验为核心诉求的智能手机,使手机由单一的通信终端发展成为互联网终端。越来越多的互联网应用被移植到智能手机中来,导航软件在智能手机中的应用成为了研究热点之一。在目前大部分智能手机都提供 gps 定位服务以及 3g 无线网络越来越普及的双重驱动下,在 google 地图中实现导航服务,是具有可行性的。 本文提出并实现了一种基于google map api 的 android 导航应用,能够给用户提供人性化和智能化的地图导航服务。2 绪论2.1面向智能手机的导航地图系统的发展现状 随着无线传输技术的更新换代和无线互联技术的不断发展,在需求和技术的双重驱动下,将互联网上的海量信息和强大的应用服务功能扩展到移动终端上,为用户提供随时、随地的信息服务成为信息服务业的重要发展方向。面向智能手机的空间信息服务系统已经成为当前移动空间信息系统的研究热点。研究移动空间信息系统的单位主要是通信厂商、第三方服务开发商以及学校和科研单位。当前面向智能手机的地图导航系统所提供的服务主要集中在地图的浏览、查询、定位、导航、地址匹配、交通信息查询、地理数据传输以及其它服务。 国外开展此类研究的大型公司和机构有很多,如uwnierdplnaet、nokia、ericsson、motorola、nttdocom。、at&twieresls、es刃、nitegrraph等公司。国内相对开展得要晚一些,从事这方面研究与开发的机构有北京四维图新导航技术有限公司,北京灵图软件技术有限公司,上海杰狮信息技术有限公司,上海比技公司,成都华好公司,图行天下信息咨询有限公司,中科华建公司,武汉大学地图制图与地理信息系统重点实验室,测绘遥感信息国家重点实验室,北京大学遥感研究所,解放军信息工程学院等。 在开发模式上,不同的研究机构所采用的模式有所不同,目前最主流也是最成熟的模式有场叭p和i一mode。认人pi.0是nokia、ericsson、motoorla和unwiredplnaet这四家公司合作建立的一个开放的标准。这些认叭p规范并非仅为一种标记语言,它们还包括了一个非常类似tcp八p和http的协议集,但经过修改后它们可以更有效地在高噪声、低品质、易掉线的环境中使用,而这些都是移动通信的特点。另外,规范中包括一个网络安全层,以及许多用于传输可编程电话应用程序的特性。这些应用程序是使用智能电话的核心功能。最后,认诚p规范还包括主要基于unweridplnaethdn压(hnahddeldeviecmkarpulnagugae,手持设备标记语言)的wml,以及与jvaascript相似的称为wn压seript的脚本语言。最新发布的认叭p2.0版本用与x州压兼容的ht侧比的变体模块xhi,n几替代了wml。或许认叭p最显著的特点是,它用全球所有主要的底层数据通信协议进行工作。认叭p将自己描述成移动intemet服务的实际标准,但日本的nttdocom。对此持有异议,因为从用户数量上来说该公司提供的i一mdee服务取得了巨大的成功,其用户数量明显超过认认p。但做为一种解决方案来说在技术上i一mdoe并没有超过认叭p。i一mdoe服务使用的是一种压缩ht州比ocmpactht侧压,chtml)的标记语言,它是万维网协会(worid铂d。webcnoosrtiunl,w3c)在1998年发布的规范。ch侧ml语言重又使用了htmli.0版的原则并类似html3.2版,它是ht州l的有效子集,因此,可以在任何html浏览器中显示。哪种移动inetmet技术是最好的,这还没有定论。面对不断竞争的移动inetmet接入市场,任何一种技术都不可能占据统治地位。各种市场研究组织似乎达成了共识:无论这些智能移动终端设备使用何种技术,智能手机不久就会取代有线个人电脑。2.2面向智能手机导航地图系统的基本概念2.2.1智能手机 什么样的手机才可以称为智能手机?除了最早期的“手机加上pda”外,还有什么衡量标准?本人认为可以被称为智能手机至少有四个标准:可以语音和数据通信,这是手机的基本功能;基本的pda功能;通信功能与pda功能无缝融合,而非简单的“1+l”;开放式操作系统,第三方可根据操作系统提供的api为智能手机开发各种扩展应用和提供各种扩展硬件,这是智能手机的根本特性。 现在跟智能手机有关的名词特别多也很容易混淆,下面就有几个概念需要明确: pocketpc:掌上型计算机,以pda为应用方向,具有触控屏幕。虽然可以外加gprs卡来接打电话和使用gprs,但是一旦使用者将power键按下后,gprs和手机功能就暂停了。换句话说,任何打来的电话都不会接通的。ppc的操作系统是wince3.0和windowsmboeli2003,对使用windows操作系统的用户来说没有任何使用上的困难。这个平台是开放的,如果你觉得它内置的应用程序不能满足你的需要,那么你可以安装自己各种各样的第三方软件。 pokcetpcphnoe:在pocketpc的架构中加入手机功能,因此与pocketpc最大的差别在于poeketpcphone可以插入sim卡后当作手机使用(cdma系统无须插入sim卡),按下power键,手机功能依然持续在运作。此外pocketpc应用程序原则上兼容于pocketpcphnoe。 smartphnoe:定位为纯手机操作的系统,没有触控屏幕的设计,中英文输入法以操作数字键输入为基本设计,在显示上也以数字键操作为考量,在程序集中即以1,9来设定对应的选择。而smartphnoe的程序必须与pocketpc(phnoe)分开设计,也就是说是不兼容的。 简单的界定,pocketpcphone就是以数据功能为主,话音功能为副的产品;相反smartphnoe就是以话音功能为主,辅助其他数据及上网功能。不过世事无绝对,市面上也有很多手机已经是在这个界定两者之间。本人认为,不论是pocketpcphone还是smartphone,只要符合智能手机的四条标准,就属于智能手机的范畴。2.2.2面向智能手机的导航地图 导航地图属于电子地图的范畴,是以导航应用为基础,着重表现路网的电子地图,在此基础上可以进行导航功能的开发。移动地图是指通过基于位置的服务为顾客提供的显示在移动设备上的地图可视化产品。面向智能手机的导航地图,由于其地图表现载体的特殊性,即移动性,因此也属于移动地图的范畴。这类特殊电子地图的特点是:能够随时随地按用户的需求以用户的当前位置为基点显示空间信息,具有设备可移动性、用户自适应性、信息获取灵活性、信息显示动态性等特点。 利用面向智能手机的移动空间信息技术,人们一般将空间信息数据的显示、数据查询,甚至是数据的更新等操作集中到移动终端,是对网络终端的扩展:在服务器端主要完成空间数据的编辑、空间数据的组织、空间数据的分析、空间信息的分发等。在移动终端(即智能智能手机),开发人员采用java、brew、.net等软件开发平台和嵌入式开发,可以实现终端的服务功能。在服务器端,开发人员可采用各种面向对象的开发语言开发空间信息服务,实现空间信息组织、分析、分发等功能。3 android开发平台的搭建及开发环境特点3.1 android开发平台的搭建搭建android开发平台1.1安装java jdk,最新版本为6,下载地址/javase/downloads/widget/jdk6.jsp。下载成功后,安装。1.2安装eclipseeclipse是一款开源的集成开发环境,他能够极大的提高开发应用效率。最重要的是,它提供了丰富的android应用。开发人员可以访问网址/downloads/下载eclipse软件,如图1-2所示。图1-2eclipse有多个版本,开发android应用只需要下载“eclipse ide for javadevelopers”版本即可。下载得到一个压缩文件,只需解压到指定目录(c:/eclipse)。进入解压目录,双击可执行文件eclipse.exe,得到如图1-2-1启动界面。图1-2-11.3安装adt插件在图1-2-1所示的eclipse界面中选择菜单【help】-【install new software】来打开【install】对话框,如图1-3所示。图1-3单击右上角【add】按钮,弹出如图1-3-1【add repository】。图1-3-1在【name】中输入adt,在【location】文本框中输入adt插件下载地址。如图1-3-1。过几秒钟后,在【install】对话框的中间列表部分,将得到与eclipse相匹配的adt插件。如图1-3-2图1-3-2单击单击【select all】按钮选择上述插件,单击【next】进入下一步安装步骤,如下图1-3-3 图1-3-3单击【next】按钮进入下一步,如图1-3-4 图1-3-4单击按钮【i accept the trems of the license agreements】接受协议。单击【finish】,eclipse开始从指定的网站下载adt插件,如图1-3-5 图1-3-5插件下载过程中会弹出如图1-3-6所示的窗口,提醒插件包含没有有效签名的类容,完全可以忽落这一提示,单击【ok】继续。 图1-3-6得到如图所示的运行的界面,提示需要重启eclipse。单击,至此android开发环境已经搭建成功。3.2 android开发环境特点 android作为一个开放式的平台,理论上可以在其上开发基于多种语言的应用程序(例如c+-t-、java等等),但是android平台将java语言作为它的官方语言,这无不是考虑到java语言的强大功能和极佳的平台适应性,也是基于如此考虑android平台上绝大部分的程序都是基于java的程序。 eclipse作为时下最流行的java开发工具之一,其良好的开放性、开发效率高、便于使用的特点非常符合 oha(openhandsetallianee开放手机联盟)的主旨,非常适合作为andrnid的开发工具来使用。另外,为便于andrnid应用程序的开发,oha专门为eclipse开发了android插件,使得开发者可以方便的使用eclipse开发android应用程序。基于以上两点本文选择eclipse作为其开发工具。4 软件设计的主题内容4.1 ui 界面设计android 应用程序的基本功能单元就是activity 类中的一个对象,activity 主要功能为界面显示和事件处理。在activity 中使用view和viewgroup 控件配xml 样式来进行界面设计,使用事件处理进行人机交互,主要的事件处理为按钮事件、触屏事件以及一些高级控件的事件监听。通过设置控件与事件处理就形成了ui 界面。1、gps 定位信息的显示通过textview控件显示定位信息。在程序打开时就显示目前用户的具体位置和邮编,门牌号等相关信息,若gps 定位不成功或者出错,则显示“无法获取目前地址”。2、用户输入导航起始地点通过设置editview控件,用户能在改控件中输入自己需要导航的起始地点,通过设置名为“导航”的button 控件对输入信息进行提交,当监听到button 按钮onclick 时则分析起始地址,若起始地址都能被解析,则载入导航地图,若又一个地址解析失败,则通过对话框控件dialog 提示用户“输入地址错误,请重新输入”。3、导航界面设计在导航界面中设置webview 控件,webview 控件通过与javascript 互相调用,把起始地址等信息传递给服务器中的html 导航网页。网页获得地址等信息后进行导航并通过webview控件显示在应用程序导航界面中。4.2 gps 定位功能实现 全球卫星定位系统(global positioning system,gps)是一个中距离圆型轨道卫星导航系统,它可以为地球表面超98%的地区提供准确的定位、测速和高精度的时间标准服务,在各个领域都有广泛的应用。android 支持gps 服务的api.该服务可以用来获取当前设备的地理位置,应用程序通过该api 获得地理位置,并可以定时请求更新当前设备的地理定位信息。该系统将用到gps api 中包几个重要的功能类:locationmanager,用于管理android 用户定位服务;locationprovider,提供多种定位方式供开发者选择;criteria,是应用通过locationprovider 中设置的属性来选择合适的定位提供者。获取用户当前位置的步骤如下:1、在androidmanifest.xml 中声明相应的权限:2、获取locationmanager 对象:locationmanager locationmanager =(locationmanager)getsystemservice (context.location_service);3、设置criteria 对象:criteria criteria = newcriteria();criteria.setaccuracy(criteria.accuracy_fine);criteria.setaltituderequired(false);criteria.setbearingrequired(false);criteria.setcostallowed(false);criteria.setpowerrequirement(criteria.power_low);4、设置provider:string provider = locationmanager.getbestprovider(criteria,true);location location= locationmanager.getlastknownlocation(provider);4.3 导航功能实现在正式版本的android sdk 中,移除了原有m5 版本里面的drivingdirection package,所以无法透过程序来规划导航线路。因此导航功能的实现我们是通过载入web 导航网页的方式实现的。android 提供了一个名为webview的控件来专门浏览网页。webview控件是基于webkit 浏览器网页排版引擎的一个java接口,它能够完美支持html、javascript、css.有时我们可以把整个ui 甚至数据处理都交给webview,配合php 等服务器端程序,这样的android 应用开发更为简单ui 更为丰富。因此本系统的导航功能的主要工作就集中在编写google map api javascript 版本的导航网页以及webview与javascript 的数据交互中。1、webview 的定义及设置:首先要在xml 布局文件中定义webview控件;然后在程序中装载这个控件,设置属性;最后通过loadurl 方法实现网页的载入。webview 常用的类有:websettings、webviewclient、webchromeclient.websettings 用来设置webview的一些属性状态,如:/ 设置可以访问文件websettings.setallowfileaccess(true);/ 设置支持缩放websettings.setbuiltinzoomcontrols(true);webviewclient 专门辅助webview处理各种通知、请求等事件类,通过webview 的setwebviewclient 方法来指定一个webviewclient 对象,如下:webview.setwebviewclient(newwebviewclient()public boolean shouldoverrideurlloading(webviewview,string url)view.loadurl(url);return true;)webchromeclient 类专门用来辅助webview对话框、网站图标、网站title、加载进度等。使用方法如下:webview.setwebchromeclient(newwebchromeclient()override/ 该方法为处理javascript 中的alert 事件public boolean onjsalert (webview view,string url,stringmessage,jsresult result)/ todo auto- generated method stubreturn super.onjsalert(view,url,message,result););设置完webview后主要工作就是html 网页的编写。2、编写html 网页实现线路规划:线路规划的前提是必须要指定起始地址以及出行方式,本系统用户是通过在activity 中输入地址和选择出行方式来向系统提交信息。webview 必须从应用中获取信息,然后发送给html,供javascript 调用并实现导航。在android 应用端,定义一个类保存用户输入的起始地址的经纬度信息:/ 在javascript 脚本中调用得到latlngdata 对象public latlngdata getlatlngdata() return latlngdata;/* 定义一个latlngdata 类,保存经纬度信息,经纬度由geocoder.getfromlocationname()方法按照用户输入地址解析而得到。*/class latlngdata string startlatlng;string endlatlng;public latlngdata()this.startlatlng=“”;this.endlatlng =“”;public string getstartlatlng()return startlatlng;public string getendlatlng()return endlatlng;/ 通过latlngdatainterface () 方法将数据类绑定给javascript,这样javascript 就能够获/ 得了用户的数据了。public class datajavascriptinterfacepublic latlngdata latlngdatainterface()latlngdata = getlatlngdata();return latlngdata;在html 网页中编写以下代码获得数据,并通过格式转换使数据能够为线路规划所接受,代码如下:var latlngdata = window.demo.latlngdatainterface();/ 获取起点和终点位置的经纬度信息为string 格式startlatlng = latlngdata.getstartlatlng();endlatlng = latlngdata.getendlatlng();/ 把string 格式经纬度转换为float 格式startlat = parsefloat(startlatlng.substring(0,8);startlng = parsefloat(startlatlng.substring(10,18);endlat = parsefloat(endlatlng.substring(0,8);endlng = parsefloat(endlatlng.substring(10,18);通过directionsservice 对象计算路线(使用各种交通方式)。此对象与google maps api directions service 进行通信,该服务将接收路线请求并传回计算结果。可以自行处理这些路线结果,也可以使用directionsrenderer 对象渲染这些结果:function calcroute()start = beginlatlng;end = endlatlng;var request = origin:start,destination:end,travelmode: google.maps.directionstravelmode.driving;directionsservice.route(request,function(response,status)if(status = google.maps.directionsstatus.ok)var warnings = document.getelementbyid(“warnings

温馨提示

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

评论

0/150

提交评论