移动通讯设备的GPS定位设计

更新时间:2024-03-11 作者:用户投稿原创标记本站原创 点赞:10513 浏览:44255

摘 要:本文通过对Android 平台的移动通讯设备的GPS 导航系统的研究,利用开放的Android 平台Google Map定位技术实现更加精准的基于卫星定位智能手机的定位系统;并通过对GPS定位数据的分析就如何提高GPS定位的精确度上给出了相应的阐述.

关 键 词 :Android;GPS;Google Map

中图分类号:TN244.8 文献标识码:A

1.Android 介绍

Android系统是依托Linux系统平台开发的一种开放源代码的操作系统,是由美国Google公司在2007年11月5日公布的移动通讯设备的系统平台.被Google收购后则由Google公司和开放手机联盟 (Open Handset Alliance)领导及开发,是一种主要支持移动通讯设备与平板的操作系统.

Android 系统(如图1)内部架构如表1所示,Android系统架构主要分为:操作系统(Operation System) 、应用程序(Application)、中间部件(Middleware)三层.第一层操作系统(Operation System)的核心主要是Linux为基础为Android系统提供基本的架构;第二层应用程序主要是由应用程序框架构成,它为 Android 所需的怎么写作提供管理的平台,是Android系统的重要部分;第三层运行层主要是由函数库和Android运行时构成,图像、媒体、开源浏览器引擎(SSL & webkit )等函数的组成部分与Android 运行时共同怎么写作于运行层;第四层为Android应用层,主要是为Android应用提供所需要的怎么写作.

Dalvik是Google公司设计的一款用于Android平台的ja虚拟机.Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一.它可以支持已转换为 .dex格式的Ja应用程序的运行.每一个Dalvik 应用作为一个独立的Linux 进程执行,这使得进程在运行的时候就具有更大的稳定性.

Android 系统通过使用 Ja 语言来实现软件的开发, dalvik 虚拟机器为了实现在手机这种比较小型的平台上使用,做了很多的改进和优化,例如通过处理器降低内存的占用率,提高处理器的使用效率,实现同时高效执行多个程序.

Android 为软件额使用环境提供了大部分的标准ja函式库,这些函数库在一定的程度上来说是加密的,需要通过 DalvikVM虚拟机才能辨识出程序的源码.此外Android系统还提供了很多独有的Android函式,便于使用者直接使用通话、定位等组件.

在Android系统中,Android 函数库和dalvik虚拟机共同构成Android 运行时,也就是Android系统的中间件,它具有的特点是:

(1) Ja程序需要通过DalvikVM虚拟机转化成dex格式后才能被执行.

(2) 函式必须是在主函数中得到定义声明的才能被执行.

(3) 当Android 应用程序无法在 Ja Runtime运行时,原因就是函数的格式不正确或者就是没有Android 提供的独有函式来执行函数.

2.Android GPS定位技术

2.1 GPS系统

对于android平台的移动通讯设备的GPS定位,主要使由GPS系统完成定位的.GPS系统主要由人造卫星、地面控制系统、接收端三个部分构成.人造卫星总共24颗,其中有三颗卫星是作为备用的,这些卫星都均匀的分布在6个以地球为中心的轨道上,每一个卫星都可以发送两种不同频率的无线电返回地球为地球上的接收端提供定位的信息;地面控制系统主要是由一个主控制站和四个监控追踪站构成,地面控制系统主要就是监控卫星的运行健康状况,把监测的数据发生的变化通过数据分析求出误差并把矫正数据返回到发射至卫星上;接收端主要通过接受器定位天线的位置.

2.2 GPS定位技术

通过GPS实现定位首先需要解决的就是建立网络连接,移动通讯设备首先通过连接网络GPRS或是Wi-fi(一种个人电脑、手持设备等终端的无线方式互相连接的技术)之后通过SOCKET模块(通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄)与系统后台怎么写作器建立连接,通过手机移动通讯设备内置的GPS导航模块搜寻来自卫星的定位信息,再通过GPS导航模块解析分析在经度、纬度、方向等方面的定位数据和状态信息等,然后把分析得到的信息数据上传至后台监控怎么写作器进行处理,实现对用户手机的定位与监控.

2.3 Android智能手机GPS导航原理

Android系统手机GPS定位主要是由GPS定位模块完成,只要包括导航软件、G通信模块,GPS芯片只要的作用就是接受来自微星的定位坐标信号,通过不断的接受新的数据,GPS模块就能从中分析得到关于定位目标的方向、速度等信息.

要实现Android系统智能手机的GPS导航,以下的三个条件必不可少,下面来说一下三个模块可以实现的功能.

(1)GPS模块,只要就是通过GPS来完成对GPS卫星的搜索跟踪和定位等信息数据采集工作,是定位的关键部分.

(2)地图导航软件:GPS模块采集到的数据信息需要通过软件才能实现可视化,这就需要地图导航软件来实现这部分工作.通过GPS模块不断的收集数据不断的刷新电子地图,所以所得到的的定位信息才能保证实时定位.

(3)G通信模块,手机GPS定位模块采集到GPS定位数据进行处理,并把分析得到的结果上传到制定的网站.

2.4 GPS定位导航关键技术代码

通过软件可以实现对GPS定位导航关键技术代码的访问,下面是通过Create View语句方法列出的简单的文本格式看到的内容. Public void on Create View ()

{GpsView 等于 new Gps View (this);}

这个方法简单地调用了GPS view对象的构造方法.与GPS view较为类似的表示:

Public class Gps View extends View

{My Locate ovedord;

Public Gps View (Loeate Me pCtx)

{super (pCtx);

Ovedolord 等于pCtx;}

public void on Draw(Canvas canvs)

{Paintp 等于 new Paint();

String Strlat等于”Latitude:”+ over lord. Get Lat ();

String StrLon等于”longitude:”+ over lord. getL On ();

Canvs. Draw Text (StrLat,32,32,p);

Canvs. Draw Text (StrLon,32,44,p);}}

通过上面的程序代码GPS View就可以分析得到经纬度相关的测试数据,并把测试得到的数据通过on Draw()才能在屏幕上显示出来.on Draw方法是Activity类的一方面,同时Activity类也是GPS定位导航应用程序的核心,on Draw方法通过调用了超类的构造方法以达到Activity指针的中断命令实现对函数库的调用,从中分析相关的数据达到定位的目的.

3.移动通讯设备的GPS定位数据分析

Android智能手机的GPS定位系统的硬体与软体之间的关系如图2所示,在启动软体程序时便开始向GPS定位卫星发送定位信号,卫星也会将相关的定位数据返回到手机从而得到目前的位置信息.

3.1 异常数据判断

GPS定位系统所得到的定位数据并不能保证他的准确性,可能在数据的传输过程中受到天气等因素的影响使得数据的准确性降低,产生部分数据与正常情况下得到的数据不经相同,存在一定的偏差,即出现异常数据.对于异常数据需要不断的分析,多点诊断才能降低误差达到精确定位的目的.通常对于异常数据的分析主要使用的方法有统计方法、偏差方法和密度方法等.


Android智能手机的GPS定位通过时间序列法来实现误差的分析是一种较为常用的方法,是一种根据时间排序的数据预测的方法.

文中采用序列方差是否超过3 (GPS定位分析数据允许变动的范围)来判断,测量值应该分布于实际值 附近,均值是实际值 的无偏估计,超过3 ± 范围的测量值划为异常值.可以用迭代公式计算均值和方差:

表示的是平均值, 表示的是方差,每次接收得到一个测量值 ,从 中得到新的均值和方差,检测如出现的 的志不在正常的范围之内那么就应该删除再通过3 方法对数据进行在此的分析判断,等把异常数据删除之后就需要通过数据之间的关系分析以确保数据的完整,减小误差.

3.2 定位数据分析

对于GPS定位的精确度而言,很大的程度取决于在GPS定位方式上的组合单点定位的GPS 卫星的数量和位置的分布,即反映卫星空间几何分布对定位信号接收位置综合影响的精度GDOP 值(即几何精度因子,衡量一个定位系统精度的重要标准之一),如表2所示.所以,对GPS卫星数目的多少对于定位的影响就下面两种情况进行性能评估.

从表2中可以看出,随着地球的运动在一天中的大部分时间内高度角都是低于 20°,GPS 卫星大部分情况只有4颗或是少于4颗,在这种情况下GPS就无法正常工作,或者在这种情况下所得到的的GPS定位数据就会存在较大的误差,不便于数据分析.

3.2.1 当观测 GPS 卫星数较多时

如图3接收机坐标值和观测时间变化关系所示,在图3中,观测数据的定位时间间隔为 100 秒,定位分析如图所示给出了相应的定位结果分析.

图3-a,b,c 三图反应的是GPS定位系统通过定位解算算法得到的接收机位置相关的信息在坐标系中的三维坐标分别在 X、Y、Z 方向上关于时间的变化关系.从图中可以看出,无论从哪个方向看来接收机在测量时间上都相对集中.这说明当观测 GPS 卫星数量较多时,接收机坐标值和观测时间变化之间存在必然的联系,说明GPS卫星的分布对于GPS定位的精度有重要的影响,在GPS卫星的可视角度能接受的GSP卫星信号较多时,GPS的定位精度相对来说就要高.接收机所能接受到的GPS卫星定位信号越多定位的精度也较高.

3.2.2在观测GPS 卫星数量较少时

如图4所示GPS接收机坐标位置差值,通过统计图表可以看出,GPS定位信号接收机水平定位精度在 5m 左右,也就是在5m左右才能显示较为准确的动态信息.

由计算结果可知,GPS 卫星的数目较多且 GDOP 较好时,GPS定位卫星就能够较为准确的实现目标定位;当在GPS 卫星数目较少时,也就是说GPS信号被遮挡或是在传输的过程中被削弱,GPS卫星的定位就有可能出现较大的误差,在这种情况下误差数据就需要通过GPS卫星数据综合分析才能减小误差实现定位的精确性.

3.2.3 GPS定位数据缺失处理

如图5、6所示,分别表示的是GPS经度、纬度数据出现缺失情况下的数据预测分析.途中的曲线表示的是测量的值,圆圈所标注的是在GPS定位系统无法预测的情况下通过分析得到预测值.从图中的曲线可以看出,随着时间的变化不同经度上的GPS定位数据也不同,当时间位于400单位时间段时,经度上的GPS数值最小.也就是在这个时间段内,GPS的定位误差数据处于最小阶段,这主要是受一天中的气候影响,在上午时间段内空气在阳光的照射下相对来说透明度比其他的时间段要高,空气中的杂质也相对较少;但是到了晚上随着地面气温的变化,大地是空气的主要热源,晚上地面的气温相对要高于空气气温,这就易于产生逆温现象,空气中的水分等物质增加在一定程度上削弱了卫星发射的GPS定位信号,所以在1400时间段时,经度上的GPS定位信号处于最弱状态.在纬度上大致的趋势是随着时间的变化,GPS数据的缺失值也在不断的上升,如图七所示.由于GPS定位数据信号在传输的过程中经过障碍物的削弱造成信号误差的扩大不能实现准确的定位,通过网络预测对定位数据的误差值数据进行修正以减小误差达到精确定位的目的. 图7所示的为静止情况下的GPS经纬度数据示意图.从图表中反映的数据可以看出,随着时间的变化纬度数据也会渐渐的趋于稳定.在GPS工作的过程中,由于受到外界环境的影响使得数据具有不稳定性,为了能够得到更加稳定的数据,建立网络分析向导已解决数据误差的分析问题.

GPS数据变动处理结果如图8、9所示.要缩小GPS数据的不稳定性,经纬度数据经过处理后如图中虚线所示.

目前能达到数据缺失弥补的方式有很多,但是GPS卫星定位需要的是实时动态信息,需要数据的处理分析在较短时间内完成,在现有的方法中,多半是根据历史数据分析中得到实时数据,所以在GPS定位中常用的就是通过这种方式以实现较为准确的定位.

Android系统智能手机定位系统的开发要实现高精度的定位必须要有干净无污染的观测数据作为前提保障.通过GPS定位的处理分析,只要模型参数符合基本模型时,定位误差显著减小,精度得到了明显提高.总的来说,仿真结果表明了GPS定位解算应用中的可行性,并且可以显著地提高GPS定位的精度,缩小定位误差.要实现高精度的智能手机GPS定位,就必须解决数据缺失处理这个难题,通过GPS定位卫星的数据分析实现数据的误差弥补可以有效的解决这一难题,大大的提高GPS定位的精确度.

4.结论与展望

目前 Android 系统Android智能手机GPS定位技术在 Google 公司及其联盟成员的共同努力下也日益成熟,GPS定位技术定位软件也多样化,自从GPS正式投入运行以来,其应用就随着给人们带来的便利在军事和民用领域中得到广泛推广.但是我国的GPS定位技术就目前阶段和国外的技术水平还有着较大的差距.研究和开发符合大众需求的GPS智能手机的定位技术对于我国的科技的发展来说也具有重要的意义.

正是基于目前GPS定位技术在手机上的智能平台Android系统上的广泛使用,我们开始了对Android平台的移动通讯设备上的GPS的研究,希望能为智能手机用户提供一个更好的GPS定位怎么写作.

文章通过在Android操作系统的智能手机上的研究实现了GPS的应用开发,利用GPS定位卫星实现定位的目的. GPS系统具有全天候、全球覆盖、高精度多功能等特点,因此 可广泛应用于各种环境下定位.定位信息通过Google Map地图实现动态的定位效果,更能直观地将地理位置信息通过手机显示出来,这是以后Android 平台移动通讯设备GPS定位技术应用开发的重要发展方向.