经过网上前辈的种种经验整理汇聚此帖,对手机等GPS设备的定位原理进行一下讲解
第一、首先是GPS定位原理:那GPS是用什么来确定你和卫星的距离的呢?
公式:距离=速度*时间
无线电波的速度是恒定的,那计算时间就可以得到距离了。GPS卫星上载有原子钟,并不停地发送含有时间信息的代码。GPS接收器(芯片)就是接收这些代码,并转译出时间信息。然后用本地的时间减去接收到的时间数据,根据无线电波的速度来确定你和卫星的距离。由于电波信号的传播速度很快,所以GPS的时间信号是精准到纳秒级的。这就对接收器的时间精度提出了很高的要求。专业级的系统往往要附带有原子钟,至少也需要单独的时间服务器。一般的导航仪也都带有连续运行的计时芯片。手机受到体积和使用上的限制,所以不可能拥有独立的计时系统。所以谷歌就采取了一个取巧的办法。当系统请求GPS定位时,从网上的时间服务器(NTP)上获取时间。用这个时间来计算你和卫星的距离。你可以试验一下,当你的手机连接无线网络(或者是用USB连接网络)的时候,GPS定位是非常迅速的。这是因为,有快速的网络可以迅速更新NTP的数据。这样我们就可以来考虑如何改善GPS定位的工作情况了。
一、确保你可用的通信网络。当你在使用GPS的时候,需要进行同步时间的工作。初次同步后,每1个小时会更新一次数据,如果更新失败,5分钟后会再次更新。所以,为了确保你定位精确,请在使用GPS的时候,确保手机有可用的通信网络(当然,如果你对精度要求不是很高的话,只要保证初次同步时可用就可以了)。gdfsagdsgery
hdfg
很多朋友可能会问,如果没有移动或者wifi信号还能定位吗?
答案是肯定的,我自己测试过,也问过一些工程师,个人推测原因如下:
一方面手机的GPS芯片能同时接受卫星信号和差时服务器的信号,然后通过内部计算时间,计算位置信息,但是差时服务器NTP貌似应该不能发射无线信号啊,那是网络服务器,所以很可能就是GPS芯片能直接接受由NTP服务器通过移动网络或其他什么介质传送出来的时钟信号。
再有就是GPS不通过差时服务器,直接通过卫星信息能自动校时,不过时间慢点而已。以上为个人推测还请高手指正。
二、加快NTP的更新速度。小米系统的默认NTP地址是cn.pool.ntp.org计划(一个全球性的利用空置服务器提供免费时间服务的项目,目前在全球拥有1400多台服务器。且根据地域提供服务器池功能。)的北美服务器。这就意味着,所用的手机,不论所处的地域和服务器实际的情况,用GPS的时候都会去连接那个地址。这种不合理的情况,造成很多非北美的用户GPS定位缓慢。知道了以上原理以后我们就可以着手修改自己的gps参数来提高定位效率了。
第二、修改的原理
7基于上面的介绍分析,可以通过如下的方面来提高定位的精度和速度。1.手机所在地点的卫星信号(是指手机裸露在空旷室外,卫星信号强度可以用搜星软件来测试,我在天津,坐车在室外基本能稳定在11颗卫星,10颗能导航的水平,更改gps.conf之后的数据,之前是9颗左右,稳定定位8颗)2.手机信号3.手机的定位软件,本人使用的是gmap5.0,破解版可导航的。4.gps参数,含在gps.conf文件内由于前3条都是自然条件是不能改变的,所以我们只能通过设置gps.conf参数来提高了`
第三、修改gps.conf的前提条件
1.你必须ROO
2.装个ROOT管理器例如rootexplorer,小U如自带root,请把它打开。
3.先备份gps.conf文件,将文件复制到smcard(不要备份在system文件夹下,否则重启的时候有可能被自动删除的)
因为有ROOT权限,找到System/etc/gps.conf 这个文件,先更改权限为可写,然后长按gps.conf这个文件,选择文本编辑器打开,就可以编辑了,这个时候会提示自动备份,已经有备份可以不用管了。
第四、修改gps.conf
小U的Gps.conf文件的原文如下:
NTP_SERVER=cn.pool.ntp.org 差时同步服务器
XTRA_SERVER_1=http://xtra1.gpsonextra.net/xtra.bin 这三项不变,推测是卫星的相关信息
XTRA_SERVER_2=http://xtra2.gpsonextra.net/xtra.bin
XTRA_SERVER_3=http://xtra3.gpsonextra.net/xtra.bin
SUPL_HOST=supl.google.com 定位服务器4
SUPL_PORT=7276
端口 我们重点能修改红色粗体的三项信息,最关键的差时服务器,看**亚洲北美的活动的服务器,中国的肯定要选,亚洲的和北美的可以选几个,选择多少有什么效果还没进一步验证,初步验证中国的三个貌似很有效果。可以多填几个,
服务器是实时变动的哦!!