基于J2ME的手机GPS导航系统的设计与实现.docx
- 文档编号:29632413
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:85
- 大小:725.38KB
基于J2ME的手机GPS导航系统的设计与实现.docx
《基于J2ME的手机GPS导航系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于J2ME的手机GPS导航系统的设计与实现.docx(85页珍藏版)》请在冰豆网上搜索。
基于J2ME的手机GPS导航系统的设计与实现
基于J2ME的手机GPS导航系统的设计与实现
中文摘要
随着移动通信技术的发展,手机已成为集通信、掌上电脑于一体的移动计算工具,人们对手机所赋予的功能也已经扩展到分布式计算、空间定位等更高端的领域。
GPS(GlobalPositionSystem)与GIS(GeographicInformationSystem)技术的融合,可为手机用户提供定位和导航等诸多功能,应用前景十分广阔。
MobileSVG是为适应屏幕小、性能较低的移动设备上显示二维矢量图形而制定的开发标准,它用文本格式的描述性语言来描述图形内容,可以用来进行地图数据的组织和存储。
本文参照MobileSVG规范标准,建立了利用SVG文档进行地图数据组织和存储的应用模型;在此基础上,利用J2ME软件开发技术,在J2ME的相关开发包,主要是在JSR-226对SVG文档解析、操作的支持下,对手机上实现移动GIS服务的各项功能的关键技术进行了理论探讨和开发实践。
基于目前用户使用手机中有60%以上是具有蓝牙功能的Java手机的现状,提出了一种基于J2ME平台的移动GIS解决方案。
该方案通过增加一个外置蓝牙GPS信号接收器获取手机的经纬度,并将该数据发送到服务器端,服务器依据该经纬度将相应的地图数据发送给客户端,从而解决手机的定位和导航问题。
关键词:
J2ME;移动GIS技术;GPS;MobileSVG;蓝牙
TheDesignandImplementationofMobileGPSNavigationSystem
BasedonJ2ME
ABSTRACT
Withthedevelopmentofmobilecommunicationtechnology,mobilephonehasbecomeasetofcommunications,handheldmobilecomputingtoolsinone,itisconferredonthecellphonefunctionalityhasbeenextendedtodistributedcomputing,spatialorientationandothermoreadvancedareas.GPS(GlobalPositionSystem)andGIS(GeographicInformationSystem)technologyintegration,mobileuserscanlocateandnavigate,andmanyotherfeatures,theapplicationprospectisverybroad.
MobileSVGistofitthescreenissmall,lesspowerfulmobiledevicesandthesystemshowstwo-dimensionalvectorgraphicssetofdevelopmentstandards,itusesdescriptivelanguagetextformattodescribethegraphicalcontent,canbeusedformapdataorganizationandstorage.InreferencetotheMobileSVGnormativestandards,theestablishmentofadocumentusingSVGformapdataorganizationandstorageoftheapplicationmodel;Onthisbasis,theuseofJ2MEsoftwaredevelopmenttechnology,J2MErelateddevelopmentpackages,mainlyintheJSR-226SVGdocumentparsing,operationssupport,onthephonetoachievethevariousfunctionsofmobileGISservices,thekeytechnologyofthetheoryanddevelopmentpractice.
Basedonthecurrentmobilephoneusersinmorethan60%ofBluetooth-enabledJavaphonesstatusquo,tomentionoutofthemobileplatformbasedonJ2MEGISsolution.TheprogrambyaddinganexternalBluetoothGPSgetthephonesignalreceiverlatitudeandlongitude,andthedatasenttotheserver,theserverbasedonthelatitudeandlongitudedegreeofthemapdataissenttotheclient,soastosolvethepositioningofmobilephonesandnavigationproblems.
KEYWORD:
J2ME;MobileGISTechnology;GPS;MobileSVG;Bluetooth
第一章引言
1.1课题背景及研究意义
当前,随着计算机技术、移动通信技术等的发展,移动GIS已成为GIS发展的重要方向之一。
而手机作为当今社会普遍应用的通讯设备,普及率高,以手机作为载体提供GIS信息服务,可大大提高人们获取地理信息的便捷性。
目前移动GIS应用模式主要有WAP模式、C/S模式和单机模式3种:
WAP模式采用B/S结构,服务器端基于WAP协议开发地图服务器,用户通过手机内置的WAP浏览器访问并显示地图服务器提供的栅格地图,以这种方式呈现在用户手机上的电子地图为静态的栅格图像,不具备无级缩放等矢量地图所具备的特性,也不能与GPS定位或其它的定位技术结合实现定位功能,用途十分有限;单机模式是将地图数据和软件完整预装到移动终端,所有操作都在移动终端完成,无需联网。
缺点是对移动终端有很高内存和计算性能要求,数据更新不及时;C/S模式通常由客户端和服务端两部分组成,客户端软件运行于移动终端,通过HTTP协议或其它网络协议向服务端发送请求,服务器端生成相应的栅格图像后,以字节流的形式将该图像数据发回客户端,客户端接收到该字节流后对其进行解析和图像重构并最终呈现给用户。
如果手机是带有GPS功能的高端手机,后两种模式可以方便的将GPS和GIS功能融合实现定位、导航等功能。
但目前市场上只有少数新型号的高端手机内嵌GPS功能,且价格昂贵,而用户正在使用中的手机大多数不具有GPS功能,因此无法实现精确的定位导航功能。
本文针对目前使用的手机中60%以上是具有蓝牙功能的Java手机,提出了一种基于蓝牙GPS的、具有GPS定位功能的移动GIS解决方案。
1.2课题主要内容
本论文通过对地理信息系统、J2ME平台、无线通信技术等技术的研究与分析,针对具有蓝牙功能的普通Java手机,给出了一种跨平台的、具有定位功能的移动GIS解决方案。
该方案通过移动终端与蓝牙GPS信号接收器进行通讯获取卫星导航数据,并对导航数据进行解析转换从而获得当前位置经纬度,然后将该经纬度数据传至服务端,经计算后返回明确标识当前位置的栅格图像,从而实现定位功能。
该方案解决了地图数据获取受时间、空间限制以及不具备GPS的Java手机无法实现定位的问题。
本论文根据该方案设计实现了一个实用性强、可靠性高且使用方便的移动GIS系统,其主要功能包括地图服务、定位服务及查询服务。
系统经过严格测试结果表明该系统有较好的可靠性和稳定性。
手机等移动终端设备由于受CPU、内存和存储空间等的局限性,其资源的使用受到严格的限制,如何解决大资源消耗运算同移动终端计算能力差的矛盾是一个关键问题,论文中通过使用将大数据量图形计算等资源消耗高的处理由部署在服务器端的组件完成的方式来解决上述问题。
客户端软件只负责发送处理请求并解析服务器处理结果,避免了移动终端软件在处理大数据量运算时出现死机或者内存不足等资源耗尽的情况,降低了对移动终端资源的要求,使系统有更强的兼容性。
系统设计过程中客户端设计包括用户界面设计、多线程设计、GPS数据接收设计、XML包生成接收及解析功能设计、蓝牙设备发现连接及数据传送功能设计、文件系统访问设计、客户端与服务端HTTP连接设计,服务器端设计包括服务端XML包生成接收及解析功能设计、Web路由设计、地图文件及属性信息数据发送功能设计。
1.3论文结构安排
论文首先对系统设计过程中所使用到的关键技术作简要介绍,然后按照软件工程的思想,详细介绍完成手机GPS导航系统的流程,包括需求分析、概要设计、详细设计、编码实现及测试,最后对论文作简要的总结。
第二章关键技术介绍
2.1J2ME技术
论文中客户端软件是基于J2ME平台开发的,在此对J2ME平台作简要介绍。
2.1.1简介
J2ME(Java2MicroEdition)是Java2的一个组成部分,它与J2SE、J2EE并称。
根据Sun的定义:
JavaME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。
JAVAME技术在1999年的JavaOneDeveloperConference大会上正式推出,它将Java语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。
2.1.2J2ME平台体系结构
J2ME平台是由配置(Configuration)和简表(Profile)构成的。
配置是提供给最大范围设备使用的最小类库集合,在配置中同时包含Java虚拟机。
简表是针对一系列设备提供的开发包集合。
在J2ME中还有一个重要的概念是可选包(OptionalPackage),它是针对特定设备提供的类库,比如某些设备是支持蓝牙的,针对此功能J2ME中制定了JSR82(BluetoothAPI)提供了对蓝牙的支持。
目前,J2ME中有两个最主要的配置,分别是ConnectedLimitedDevicesConfiguration(CLDC)和ConnectedDevicesConfiguration(CDC)。
他们是根据设备的硬件性能进行区分的,例如处理器、内存容量等。
由于这个标准是在2001年的时候指定的,而现在移动终端的处理能力和内存容量发展很快,如果还按照这个标准来评判可能就不准确了。
因此我们只是列出标准,供读者参考。
本教程将主要讲解基于CLDC的J2ME平台的相关内容。
随着技术和硬件设备的不断发展,J2ME开发网将逐步推出基于CDC的J2ME平台介绍。
2.1.3J2ME流行原因
J2ME最吸引人的地方,就在于其针对的平台计算能力有限,这并不是受虐,运算速度、可用内存、以及最终生成字节码尺寸的限制使得J2ME应用通常比较小巧玲珑。
以早期支持J2ME的设备为例(比如Jordan手里的那部手机,zengke的就算了),可用的Heap不过200k,最终生成的代码(包含各种资源文件,如图片)不得超过64k,这就使得面向这种平台开发的J2ME应用规模基本上不会超过一个人的能力范围。
这样可以有效避免协作、过程等等令人不胜其烦的软件工程概念的引入,从而使开发人员重新回归到编写代码的乐趣中去。
2.2定位技术
目前使用到的定位技术主要有以下两种:
2.2.1基于网络的定位技术
基于网络的定位技术是指网络根据测量数据计算出移动终端所处的位置。
这种技术主要有CELL-ID-TA、UL-TOA、TDOA和AOA等几种[5]。
(1)CELL-ID-TA
CELL-ID是小区全球识’别码,每个蜂窝小区有一个惟一的小区识别码。
基于TDD的系统中可以用做定位的参数还有一个是时间提前量TA。
TA是由基站测量得到的结果,然后通知移动用户提前一段时间(TA)发送数据,使得到达数据正好落入基站的接收窗口中,TA的目的是为了扣除基站与移动用户之间的传输时间时延,因此利用TA可以估计移动台和基站之间的距离。
TA是以比特为单位的,1b相当于550m的距离。
由于无线传输存在多径效应,因此,利用TA定位的精度很低。
由于网络中已保存了这些数据,因此,把CELL-ID和TA结合在一起定位移动用户是一种简单而且经济的定位方法,可以实现一些位置查询业务,如显示移动用户所在区域内的餐馆、旅馆等信息。
所有终端都可以同时使用这种定位方式,这是其一大优点。
定位精度取决于小区的大小和周围的环境。
(2)UL-TOA和TDOA
上行到达时间TOA定位方法与E-OTD较为类似,差别在于UL-TOA由基站测量终端数据的到达时间。
该方法要求至少有三个基站参与测量,如图11-2所示,每个基站增加一个位置测量单元LMU,LMU测量终端发送的接入突发脉冲或常规突发脉冲的到达时刻,LMU可以和基站结合在一起,也可分开放置。
由于每个基站的地理位置是已知的,因此可以利用球面三角算出移动台位置,为了简化运算,一般采用平面三角算出移动台的位置。
TDOA测量的是移动用户发射信号到达不同基站之间的传输时间差,而不是传输时间。
UL-TOA定位方法需要MS和参与定位的基站相互之间精确同步,而TDOA则不需要。
UL-TOA定位方法需要精确同步,基站可以安装GPS设备,并且该定位方法还要求在所有基站上安装监测设备LMU,因此成本较高。
(3)AOA
信号到达角定位方法是由两个或更多基站通过测量接收信号的到达角来估计移动用户的位置。
AOA定位方法可惟一确定一个二维定位点。
2.2.2基于移动终端的定位技术
该定位技术的原理是:
多个已知位置的基站发射信号,所发射信号携带有与基站位置有关的特征信息,当移动终端接收到这些信号后,确定其与各基站之间的几何位置关系,并根据相关算法对其自身位置进行定位估算,从而得到自身的位置信息。
具有较高的定位精度。
但其致命的缺陷是需要手机参与定位参数的测量并进行坐标位置的计算,必须对手机和网络的软硬件加以改造或升级,目前倾向的做法是在手机内集成GPS接收机,加大了手机的能耗,而且从商用角度来看很难做到大面积的推广和使用。
目前已提出的基于移动终端的定位技术主要包括:
下行链路观测到达时间差(OTDOA)方法、基于GPS的定位技术,如差分GPS(DGPS)、辅助GPS(A-GPS)等。
根据技术发展动态,我们把重点集中于DGPS和A-GPS上:
(1)GPS定位技术经过多年的发展,由于其定位精度高、覆盖范围广的优点,在军事用途中发挥着巨大的作用,近几年开始向各个领域渗透并得到广泛的应用。
差分GPS技术可以提高GPS系统的定位精度。
原理是:
基准接收机对自己实施定位,得到的定位结果与自己的确知的地理位置相比较得到差值,该差值被用作公共误差修正值,对与基准接收处于同一区域且共用四颗卫星进行定位的移动接收机来说,它们显然具有相同的公共误差。
因此借助于公共误差修正值可以修正移动接收机的定位结果,从而提高定位精度。
(2)采用GPS对移动台直接定位时,首次定位需要较长的时间,这对于紧急救援的业务是不允许的。
A-GPS可以有效地解决这个问题。
利用辅助GPS进行定位时,GPS参考网络可将辅助的定位信息通过无线通信网络传送给移动台,可减小搜索时间,使定位时间降至几秒钟,而且辅助的定位信息也为在信号严重衰落的市区或室内应用GPS定位技术提供了可能。
另外,由于在两次定位间歇期间GPS接收机可处于休眠状态,所以可以降低手机的能耗。
综上所述,AGPS弥补传统的GPS定位技术的缺陷,使得GPS突破定位界限实现室内GPS定位。
2.3移动GIS技术
2.3.1移动GIS的概念
现在,移动智能终端与无线互联网相结合的技术已经成功地应用到人们生活和社会经济发展的各个方面。
移动智能终端、GPS、无线互联网等新技术与GIS的结合将极大地丰富GIS理论和技术,拓展GIS应用领域。
国际GIS界将GIS、GPS和无线互联网一体化的技术称为“移动GIS”(MobileGIS,MGIS)。
2.3.2移动GIS的组成结构
与传统GIS相比,移动GIS的组成略微复杂些,因为它要求实时地将空间信息传输给服务器。
移动GIS的主要由移动终端、无线通信网络、地理应用服务器和空间数据库组成。
2.3.3移动GIS的特点
(1)移动性:
运行于各种移动终端上,与服务端可通过无线通信进行交互实时获取空间数据,可以随时随地进行空间信息服务,也可以脱离服务器与传输介质的约束独立运行,具有移动性。
(2)客户端多样性:
移动GIS的客户端指的是在户外使用的可移动终端设备,其选择范围较广,可以是拥有强大计算能力的主流微型电脑,也可以是屏幕较小、功能受限的各类移动计算终端,比如PDA、移动电话等等,甚至可以是专用的GIS嵌入设备,这决定了移动GIS应该是一个开放的可伸缩的平台。
(3)动态(实时)性:
作为一种应用服务系统,应能及时地响应用户的请求,能处理用户环境中随时间变化的因素的实时影响,在移动的过程中,不受限制地把采集到的相关信息及时处理并发布给用户。
这也是移动GIS最大的特点。
(4)数据资源分散、多样性:
移动GIS运行平台向无线网络的延伸进一步拓宽了其应用领域。
由于移动用户的位置是不断变化的,移动用户需要的信息也是多种多样的,这就需要系统支持不同的传输方式,任何单一的数据源都无法满足所有的移动数据请求。
2.3.4移动GIS的关键技术
(1)嵌入式技术
移动GIS的无线终端是一种嵌入式系统,具有代表性的嵌入式无线终端设备包括:
掌上电脑、PDA(个人数字助理)和手机等。
嵌入式系统是以应用为中心的专用计算机系统,其软硬件可以根据应用需要进行“裁剪”。
嵌入式java技术是移动终端中比较常用的一种开发技术。
(2)无线网络技术
在移动通信领域,无线接入技术可以分为两类:
一是基于数字蜂窝移动电话网络的接入技术,目前已有CDMA、GPRS、GSM、TDMA、CDPD、EPGE等多种无线承载网络;二是基于局域网的接入技术,如蓝牙、无线局域网等技术。
(3)分布式空间数据管理技术
分布式空间数据库系统是移动GIS体系结构中的关键技术之一,它是指在物理上分布、逻辑上集中的分布式结构。
由于移动用户的位置是不断变化的,需要的信息多种多样,因此任何单一的数据源都无法满足要求,必须有地理上分布的各种数据源,借助于现有的分布式处理技术,为多用户并发访问提供支持。
(4)移动数据库技术
移动数据库是指移动环境的分布式数据库,是分布式数据库的延伸和发展。
移动数据库要求支持用户在多种网络条件下都能够有效地访问,完成移动查询和事务处理。
利用数据库复制/缓存技术或数据广播技术,移动用户即使在断接的情况下也可以访问所需的数据,从而继续自己的工作。
其中的时态空间数据库技术是移动GIS的关键。
移动数据库技术的研究主要涉及五个方面:
移动数据库复制/缓存技术、移动查询技术、数据广播技术、移动事务处理技术、移动数据库安全技术。
(5)GPS定位技术
GPS英文全名是“NavigationSatelliteTimingAndRanging/GlobalPositionSystem”,其意为“卫星测时测距导航/全球定位系统”,简称GPS系统。
该系统是以卫星为基础的无线电导航定位系统。
GPS全球卫星定位导航系统,开始时只用于军事目的,后转为民用被广泛应用于商业和科学研究上。
GPS空间部分使用了二十四颗卫星组成的星座,卫星高度约20200公里,分布在六条升交点互隔60度的轨道面上,每条轨道上均匀分布四颗卫星,相邻两轨道上的卫星相隔40度,使得地球任何地方至少同时可看到四颗卫星。
2.4蓝牙通信技术
导航系统中移动终端自身所处位置的经纬度数据是通过移动终端与蓝牙GPS信号接收器进行通讯获得的,二者之间的通讯协议是蓝牙协议,在此对蓝牙技术做简单介绍[1]。
2.4.1蓝牙通信概述
蓝牙技术与时下流行的Wi-Fi技术一样,都是基于无线技术,只是它使用了号称ISM(Industrial、Scientific、Medical,工业的、科学的、医学的)频率的波段(2.45GHz),在无线设备的电气特性支持下,通过特定的通信协议栈进行通信。
蓝牙技术使用的是手机与手机之间的局域无线网络,其私有化和个性化特征表现得尤为突出。
2.4.2J2ME平台对蓝牙技术的支持
对于移动设备,蓝牙功能基本上是当前所有手机的必备功能,有些机型甚至还配备了蓝牙GPS等专用蓝牙设备。
正是因为手机厂商对蓝牙功能的追捧,所以J2ME平台也很早就提供了完备的对蓝牙技术的支持。
JSR82规范中就定义了与蓝牙通信相关的API。
在JSR82规范中定义了javax.bluetooth和javax.obex两个包,其中javax.bluetooth定义了基于串口通信的API,而javax.obex(ObjectExchangeProtocol)是建立在串口通信之上,实现了以对象为单位的通信。
在Android2.0平台,已提供了完整的对蓝牙开发的支持。
2.4.3J2ME平台下蓝牙通信的实现
和无线通信一样,蓝牙通信也是基于通用连接框架,与常见的C/S架构似乎没有多大区别,只不过客户端事先不知道服务端的存在,而是需要通过无线搜索去实现。
搜索到远程设备之后也不知道服务端可以提供哪些服务,又需要服务搜索来完成。
以下5点是蓝牙通信的一些特性说明:
(1)蓝牙通信需要蓝牙设备硬件支持,蓝牙网络可以视为无线局域网。
(2)蓝牙通信也是基于通用连接框架,但不同的是对于客户端而言,需要通过搜索来获得与服务端的连接信息。
(3)蓝牙服务端使用了连接通知者对象,用于等待远程设备的连接。
该连接通知者对象类似于阻塞式socket服务端,它将一直等待直到接收到客户端的连接请求。
(4)对于客户端而言,搜索服务端分为两个层次:
第一层为设备搜索;第二层为服务搜索。
服务搜索需要基于指定的远程设备才能进行。
(5)客户端和服务端在获得蓝牙协议连接后,就可以通过连接创建输入/输出流来进行通信。
该应用框架为典型的GCF框架。
下图2-1是蓝牙通信客户端和服务端发起通信的示意图
图2-1蓝牙通信示意图
注意:
这里提到的服务端和客户端有别于企业应用中的称谓,手机的角色地位都是等同的,只是在某一次通信过程中存在主从关系。
2.5网络通信技术
鉴于系统中客户端与服务器之间之间采用超文本传输协议(HTTP),属于J2ME网络通信范畴,在此对网络通信作简要说明。
2.5.1J2ME网络通信概述
不同于桌面应用,J2ME平台的网络通信都是指基于无线网络的通信。
如图2-2所示,J2ME平台的网络应用最常见的是通过GPRS方式与服务器构成C/S架构。
图2-2J2ME网络应用框架
2.5.2网络通信的要点
GCF(GenericConnectionFramework,通用连接框架)用于定义连接模式。
J2ME平台专门定义了基于GCF的包javax.microedition.io,支持HTTP、套接字、数据报等众多连接模式。
2.5.3HTTP通信
HTTP通信比较具有特征的地方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 J2ME 手机 GPS 导航系统 设计 实现