手机里的定位芯片和地图是什么关系?同时支持GPS和北斗gps定位器的话,定位时是怎么运行的?

我们从明年起可使用北斗卫星定位服务了
已经习惯了GPS的私家车主有了新的选择,那就是使用由提供的定位服务,且导航芯片价格要低于现在市场上使用的GPS系统,也就是说我们的导航仪以后价格会比较便宜,但是不知道那时候定位效果如何。按照系统建设总体规划,2012年左右,系统将首先具备覆盖亚太地区的定位、导航以及通信服务能力。你对现在的定位系统有什么不满?
还能发短信 不知精度如何? 以后会出现gfw升级版,屏蔽gps信号,让你只能用北斗。还双向收费,收漫游费,彩铃费。。。 极有可能!我朝特色,不高收费就不是我朝。 到时别搞垄断经营就好。 中国做什么都是以赚钱为目的,这个肯定要收费的,而且价格不会便宜,稳定性更不要奢望。 你需要脑补 毛泽东说:让那些内外反动派在我们面前发抖吧!让 他们指责我们这也不行,那也不行吧,中国人民的不 屈不挠的努力,必将稳步的达到自己的目的! 不是照规定,天朝的火星地图要加偏吗?这个也加了个偏了吧?不知道会不会开到花坛里去。 导航芯片本来就不贵……贵是贵在导航设备的其它硬件,触摸屏、蓝牙、DVD等,高级点还装了个WINCE或者ANDROID系统,又离不开大CPU、大RAM、大FLASH……发现最后原来是在买电脑 支持一下,反正GPS民用的分辨率也不高。用自己的还避免人家不爽给断了。 还是地图和软件更重要。其它的还好了。反正我不会单纯为了用北斗而把现有的GPS扔掉的。 我就是做GPS类产品生产研发的,GPS现在精度还不错,成本低廉,产品线完善,可是毕竟技术在人家手里,而且人家还握着个开关,总用人家的不合适。如果北斗起来了能达到SIRF3代芯片的水平,并且精度能和GPS差不多,费用再低一点,还算合适,否则很难推广开,做企业的毕竟生存是第一步的,如果价格太高了,没有客户买单,企业没法生存,就没有完善的产品线,建议初期国家给点政策,能顺利起步,发展还是不错的,现在军方在用,但是一套系统动辄上百万甚至千万,太夸张了。 听说要收费。。。 放着免费的GPS不用,要用收费的北斗,给老百姓个理由先! 北斗星出来了,我朝肯定会屏蔽GPS,让北斗一家独大,好收取高额的费用,等着看吧,我们老百姓没得选择 我不知道为什么要用这个北斗导航。 北斗导航需要终端向 它发送信息,而GPS则是不用的,也就是说北斗的拥有者是可以定位 你使用者的位置,而GPS就不能了,大家知道这意味着什么了??而且根据现在理论精度 比GPS要差,而且 由于终端需要做许多工作 发送信号 所以耗电量更多。 天朝的gps偏移那么多不就是为了北斗做的铺垫嘛,希望到时候能不偏移300米以上我就用吧,至少比gps偏移1公里要好些 这个是按照精度收费的,精度越高收费越高,误差50米的好像是不收费滴 会不会便宜了手机上(不用GPS定位)的GE?您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
GPS北斗系统与车辆定位管理原理及实现.pdf8页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:100 &&
GPS北斗系统与车辆定位管理原理及实现.pdf
你可能关注的文档:
··········
··········
一、 GGPPSS//北斗系统及其定位原理
GPS/全球定位系统(英语:Global Positioning System,通常简称GPS),又称全球卫星定位系统,
是一个中距离圆型轨道卫星导航系统。它可以为地球表面绝大部分地区(98%)提供准确的定位、测速和
高精度的时间标准。系统由美国国防部研制和维护,可满足位于全球任何地方或近地空间的军事用户连续
精确的确定三维位置、三维运动和时间的需要。该系统包括太空中的24颗GPS卫星;地面上1个主控站、
3个数据注入站和5个监测站及作为用户端的GPS接收机。最少只需其中3颗卫星,就能迅速确定用户端
在地球上所处的位置及海拔高度;所能收联接到的卫星数越多,解码出来的位置就越精确。
该系统由美国政府于1970年代开始进行研制并于1994年全面建成。使用者只需拥有GPS接收机即可使用
该服务,无需另外付费。GPS信号分为民用的标准定位服务(SPS,StandardPositioningService)和军
规的精确定位服务(PPS,Precise Positioning Service)两类。由于SPS无须任何授权即可任意使用,
原本美国因为担心敌对国家或组织会利用SPS对美国发动攻击,故在民用讯号中人为地加入选择性误差(即
SA政策,SelectiveAvailability)以降低其精确度,使其最终定位精确度大概在100米左右;军规的精
度在十米以下。2000年以后,克林顿政府决定取消对民用讯号的干扰。因此,现在民用GPS也可以达到十
米左右的定位精度。
GPS系统拥有如下多种优点:使用低频讯号,纵使天候不佳仍能保持相当的讯号穿透性;全球覆盖(高达
98%);三维定速定时高精度;快速、省时、高效率;应用广泛、多功能;可移动定位;不同于双星定位
系统,使用过程中接
正在加载中,请稍后...我们是怎样被定位的?GPS工作原理解析<span itemprop="datePublished" content="T05:12:00+-08-14 05:12&&&&【 原创】 作者:&&&&&
&&& 最近一段时间,关于全球定位系统的话题又火热起来,特别是关于带有定位模块的与专业之间的讨论让持币待购的消费者难以选择。那么,我们在进行选择之前可以进行一下基础知识的学习,究竟是通过怎样的技术才能实现精确定位?下面,本编就和大家一起来探讨GPS的历史、发展、工作原理和今后可能的发展方向。
全球定位系统的种类和发展历史
&&& 首先,在世界上可以提供精确定位的全球定位系统有四种,分别为:美国GPS全球定位系统、中国的北斗定位系统、俄罗斯的Glonass定位系统和欧盟正在建设的伽利略定位系统。但是,目前后三种定位系统还没有建设完善,距离实际应用还有很长的一段路要走。现在只有美国的GPS全球定位系统已经有了成熟的应用,我们可以使用的设备都是基于此系统的。因此,下面将着重介绍该系统。
&&& 其次,GPS全球定位系统是美国政府与20世纪70年代就开始研制建设的,并与1994年全面建成,投入使用。其采取了广播的方式来散发信号,因此终端用户只需要拥有一台终端设备就可以使用该系统,无需付费。该系统具备了很多优点:例如全天候使用、高达98%的全球覆盖率等等。
&&& 最后,美国在实际设计该GPS系统的时候,采用了将21+3颗卫星的分布方式,每7颗卫星加一颗备用卫星处于互成30度的6条轨道上。在此之前曾经一再修改方案,从24颗卫星放置到互成120度的三条轨道的方案,转为18颗卫星分布在互成60度的6条轨道上,最后在1988年才最终确定21+3的分布方式。
GPS定位系统的工作原理
&&& 到底卫星信号中包含什么样的信息才能帮助我们准确的定位呢?并且要经过怎样的处理才能完成最终的运算呢?其实非常的简单,卫星信号中所包含的信息大致包括卫星的星图轨道信息和精确无比的时间信号,通过速度时间与距离的公式,再辅助上四点定位的原理就可以确定用户的位置了。
&&& 因此,我们只需要知道两个信息就足够了:&&& 1、卫星的精确位置;&&& 2、卫星与我们之间的距离。
&&& 首先,怎样才能准确的知道卫星的准确位置呢?我们要有非常完美的轨道设计,并且在地面设立监测站,不断的检测卫星的运行状态,并且适时发送指令来保证卫星运行在预定的轨道上面。最后将正确的轨道转换为星图轨道的精确信息,注入卫星,再转发至我们的定位设备中。
&&& 然后,解决卫星与我们之间的距离需要一个非常简单的公式,距离=速度×时间。在这里,速度不是卫星的速度,也不是我们的速度,而是使用了一个绝对速度,光速。将所有的问题归结到了对时间信号的校准和测量上。因此,在每一个GPS卫星上都装载了十分准确的原子钟。(原子钟:利用原子的自震动频率来测量时间,是目前最为精确的测量方法。)并且在地面还有3个数据注入站,将卫星时钟与地面测控站的时间精确校对。
&&& 最后,将所有的信息传递到我们的定位终端中,测算出相对距离来运算我们的位置,在理论上只需要搜寻到4颗卫星就可以准确定位。在实际使用中会由于误差等因素,而需要更多的卫星或者更长的运算时间,但在实际使用的时候至少可以保证6颗至9颗卫星的连接没有问题。
GPS与A-GPS的差别
&&& 为什么我的手机支持GPS,在实际使用中还要花流量费呢?原因在于目前在手机上所搭载的不一定是,而是一种改进的技术,A-GPS(Asist-GPS辅助定位系统)。这种技术的产生是为了可以更快更方便的为用户提供定位服务,同时在成本上也要节省一些,因为可以省一部分运算性能。
&&& A-GPS主要使用了随处可用的网络,首先通过将手机的IP地址或者信号塔的基站地址定位来先大致确定范围,这个范围的确定只需要瞬间的速度,再通过数据连接将手机接收到的信号交由连接至的网络来运算,最后在传回来结果,整个过程的时间可以控制在40秒之内。
&&& 但是,这样的解决方案也随之而来会有一些问题出现,例如一些过于廉价的A-GPS模块将原生的GPS运算部分削减,无法联网也就意味着无法定位;还有用户在联网时需要额外的向手机的运营商来交数据流量费用;最后,用户的隐私得不到保证,需要交由第三方来处理敏感的位置信息。
全球定位系统未来的发展方向
&&& 首先,在GPS终端进行大量普及之后,我们会更加深刻的体验到全球定位系统带来的便捷。但是由于美国GPS所提供的免费民用卫星信号都加入了干扰码,在最终定位精度上达不到用户的要求,因此我们对于正在建设中的其他3种定位系统更抱有希望,尤其是欧盟的伽利略计划。(我国的北斗卫星定位系统与俄罗斯的Glonass系统在基本原理和运算方式上有较大的出入,因此在民用上有一定的障碍。)
&&& 其次,因为欧盟的伽利略计划是一个开放的工程,在其中已经有很多的国家加入。我们国家也积极的参与到了其中,并且做出了重要贡献。欧盟的伽利略系统在基本原理与运算方式上与美国的GPS系统完全兼容,虽然其自身的精度还达不到GPS的高度,但我们在未来可以将使用上将两者融合的设备,这样可以达到更高的精度。
&&& 最后,手机与专业的导航仪之间的竞争依然十分的激烈,但是对于个人用户来说,手机的便捷性是毋庸置疑的,在未来我们可以真正的使用上All-in-one的,不但是GPS全球定位系统,还有智能娱乐影音都会加入其中。因此,手机才是最值得期待的产品,也是最值得拥有的。&&&
:&&&&&&&&&&
频道热词:&&&&&&
文章评分 满分为5分
精彩内容推荐
手机Android频道热点
排行 文章标题
vivo智能手机推荐
商家报价:¥2998
网友点评(1020)
手机网友精品
TOP10周热门手机排行榜
商家报价:
174用户点评
商家报价:
167用户点评
商家报价:
414用户点评
商家报价:
144用户点评
商家报价:
914用户点评
商家报价:
128用户点评
商家报价:
40用户点评
商家报价:
1335用户点评
商家报价:
340用户点评
商家报价:
210用户点评
手机软件软件游戏手机定位折腾记(1):安卓手机的网络定位与NetworkLocation.apk - 推酷
手机定位折腾记(1):安卓手机的网络定位与NetworkLocation.apk
从苹果、安卓等智能手机快速普及的那一天起,由于国内各种特别的行情,有关手机定位的问题一直困扰着普通用户和开发者。比如,安卓手机为什么总不能使用网络定位?NetworkLocation.apk是什么?为什么外国app的地图显示出来的总是偏移的?本文试图以回答这些问题,给普通用户和开发者(尤其是移动开发者)一些指引,并且提出一些自己的思考。由于本人并非GIS从业者,所以也许会有错漏,敬请指正。
本文阅读人群:
智能手机普通用户、移动应用从业者(开发者)
================================================
如果是安卓手机/平板的深度使用用户,必定会对许多手机定位(尤其是冷启动定位)的速度不敢恭维、甚至说基本是废的(除了某些专用于导航的安卓设备);雪上加霜的是,由于各种行情,手机中的网络定位许多也不能正常工作的。论坛上各种标榜“秒定”(秒速定位)的rom随处可见,究竟是如何做到的?
这系列的第一篇,主要讲的是安卓系统中,网络定位的那些事情。在此之前,先对全系列的一些要点提前解读。
GPS、GLONASS、北斗和GNSS
说起定位,大家第一时间联想到的是美国的GPS。但实质上,俄罗斯的GLONASS、中国的北斗、欧盟的Galileo等也在做一样的事情。其实,他们都同属GNSS(Global Navigation Satellite System、全球导航卫星系统)的领域下。
一些GNSS的简要介绍如下:
(1)GPS(Global Positioning System)是美国的全球定位系统,其坐标系是WGS-84。
(2)GLONASS是俄罗斯的格洛纳斯系统,其坐标系是PZ-90。[1]
(3)中国的北斗,其坐标系是CGS2000。
现在集成GPS + GLONASS的双GNSS定位芯片和设备已经成为了某些设备的新卖点,比如小米手机2[2]、Garmin eTrex 30[3]等。展望未来,混搭GNSS会是主流方向(甚至已经出现了MT3332/MT3333五合一方案[4]),有GIS从业者也提出应该让“GNSS”取代“GPS”成为新的定位名词[5]。
但是…….鉴于当前许多设备还是基于GPS芯片和系统运行,许多用户还是更熟悉“GPS”而不是“GNSS”这个名词,故而下面,也就只讲述GPS和与之相关的定位技术了。
网络定位、A-GPS和GPS的关系
要讨论安卓智能手机的定位,一定离不开三个词:网络定位、A-GPS和GPS。他们之间的关系如下:
网络定位(此处特指安卓“设置”中给出的概念)
(包括非卫星参与的移动基站定位、WiFi
(Assisted GPS
设备是否需要联网(WIFI/2G/3G等)
定位源/数据源
移动基站、wifi等无线基站信息
移动基站、wifi等无线基站信息
系统独立性
可单独使用
目标是为了令GPS定位更快更精准,不可单独使用
可单独使用
快(需视乎网络速度、与位置服务器连接的情况)
目标是为了令GPS定位更快更精准,不能比较(辅助GPS的速度:需视乎网络速度、与位置服务器连接和通讯的质量)
相对其它两个较慢(如果A-GPS工作良好,也比较快)
低(需要视乎数据源提供商)
目标是为了令GPS定位更快更精准,不能比较(辅助GPS的精度:需要视乎数据源提供商)
高(需视乎定位芯片和天线接收质量)
(安卓)所属开发层
应用程序框架层(&=4.0.x / 4.1.x / 4.2.x三大开发方式接入LocationProviderProxy) + platform级签名
Linux内核层(驱动级开发)(需搭配GPS驱动一并开发)
Linux内核层 + 应用程序框架层(需继承LocationProvider派生出GpsLocationProvider等)(驱动级开发)
以上的关系,后面再展开阐述。现在进入本文的主题:网络定位。
网络定位简介
在安卓的设置中,“网络定位”是指利用手机基站信息、wifi信息等发送到指定的位置服务器;位置服务器接收后,直接返回粗略的经纬度和精度信息。整个过程中其实就是“根据IP地址获取地址”的高级版,而且手机端无需定位卫星的信号,做到低耗电定位(所以说,网络定位的本质,其实和GPS乃至AGPS都没什么关系)。
(网络定位在HTML5的例子,
,可测试网络定位是否正常)
从上面可以看到,要实现网络定位,位置服务器是必须的,但这部分一般都在地图资源商的手中,手机/平板制造商不可能有这种资源。他们只能通过和地图资源商进行商务合作或者取得授权,才能够合法地放入网络定位的相关底层应用和分发使用权,否则会被视为侵权使用。国内常见的网络定位目前有两种:
(1)Google GMS(Google Mobile Service)中的网络定位服务(许多人可能更加熟悉NetworkLocation.apk)。但国内行货由于众多原因,目前没有一家通过GMS认证,所以一定不会有这个服务(换句话讲,也不会有这个文件)。即使有,其实也是在灰色使用状态,不能太声张——之前曾有一次,小米放入这个文件,结果引发同行批评[7]。也有rom制作者与刷机发烧友等尝试自行刷入这个GMS的网络定位,这部分遇到的技术问题下文再表。
(2)百度地图的网络定位服务(一般为NetworkLocation_Baidu.apk或者BaiduNetworkLocation.apk)。目前有部分国行和部分rom采用。这满足了国行不能使用GMS、但又希望使用网络定位的需求。至于有没有坐标偏移,手头没有机器,没有测试。
网络定位的开发与故障
在应用开发上,要使用网络定位,必须要在AndroidManifest.xml申明“android.permission.ACCESS_COARSE_LOCATION”的uses-permission;同时也要求手机联网完成获取。
但是如果网络定位服务不存在或者异常,则不会返回任何信息。典型的情况是,使用HTML5的navigator.geolocation.getCurrentPosition,总会返回PositionError.code为3的Timeout expired(即超时)。
(注意:网络定位服务不可用并不影响HTML5对GPS设备的数据读取;如果GPS成功获取当前高精度坐标并正常运行、且html5代码申请了enableHighAccuracy: true,则HTML5也能正常读取GPS的数据并显示)
在底层开发上,要实现网络定位,不同的安卓版本、甚至不同的机型都有不同的实现方式。但
归根到底都要最终实现“以Provider+Service方式接入LocationProviderProxy”的目标,而且相关接入应用必须以platform级别证书签名,否则不能运行。
从大版本来看,有三大实现模式,有兴趣的开发者可照附录一的简表自行查看源代码。
“秒定秘籍”之一:恢复网络定位
恢复网络定位功能,的确可以有秒定的良好感觉,只不过问题是这种秒定的精度并不高,而且设备还必须联网才行。但是怎么恢复确实不易,尤其是
处理platform签名
的问题。以在rom中恢复Google Mobile Service的网络定位为例(这里不考虑侵权问题,仅作技术交流),要万无一失,理论上整体的过程如下:
(1)确定安卓版本号,和要恢复的网络定位包(com.google.android.maps.jar/com.google.android.maps.xml/features.xml/GoogleServicesFramework.apk/NetworkLocation.apk等;有些安卓版本还需要SetupWizard.apk等)。
(2)准备platform级别的证书(platform.x509.pem,platform.pk8)。如果仅是测试自用,可以从这里下载:
/android/platform_build/tree/master/target/product/security
(3)确定/system/framework/framework_res.apk是否和公钥platform.x509.pem一致。方法是:
(A)用解压缩软件拿出META-INF\CERT.RSA,然后改名为CERT_framwwork.p7b;
(B)双击打开,然后导出里面的证书,选择“Base64编码 X.509(.CER)”,导出为CERT_framwwork_public.cer。
(C)对比platform.x509.pem和CERT_framwwork_public.cer文字是否一致。一致的话,恭喜你,后面的工作省心多了。但一般来讲,国行是用了自己的platform证书签名的,因此,后面的改动就比较大了。
(4)反编译/system/framework/framework_res.apk,根据附录一的“网络定位配置表”,找到相关配置。如果是GMS默认的值(这里没法收集到,可参见其他rom),恭喜你,这里不用改了;如果不是,就得改,然后重编译并用(2)中的证书签名。
(5)如果(3)中的对比结果为不一致,就必须用(2)中的证书重新签名/system/framework/framework_res.apk。
(6)按照(3)的步骤分别对GoogleServicesFramework.apk、NetworkLocation.apk的公钥和platform.x509.pem进行对比,如果不一致,需要重新签名。
注意:如果需要恢复其他GMS应用,则必须找出和GoogleServicesFramework.apk使用了相同签名的GMS应用,然后重新用(2)的证书签名。
(7)如果(3)中的对比结果为不一致,就必须在/system/app/下进行如下操作:
(A)以Settings.apk为中心,找出和Settings.apk一样的、所有使用platform签名的应用(参见(3)的过程);
(B)将这些应用全部重新用(2)的证书签名一遍
(8)将(1)中网络定位包的相关文件放置到相关位置
(9)重新打包rom,测试
从以上可以看到,想要简单恢复网络定位,对于普通用户来讲并不容易,也因此有了各种自制rom。但有些rom作者图省事,直接将所有apk全部给platform签名,其结果会造成一个隐患:任何应用都有权读写系统敏感区域了。
另一种方法则是利用国内行货和海外版行货使用同一个platform证书签名的特性,将海外版行货的GMS给移植回国内行货。这种情况,需要一定的运气,以及祈求厂商在国内外的版本上核心改动不大。
网络定位初始化可用性检查小工具
为了让各位自查网络定位的签名是否正常,我做了一个
。当前只能检查Android 4.0.x及以下版本的网络定位是否初始化正常(没其他机器啊亲)。不能正常初始化的话,则表明网络定位设置不对或者签名有异常,则一定不能工作,如果可以正常初始化,那么表明网络定位的签名没问题,可以用的概率还是很大的。
(初始化异常,网络定位不可用)
(初始化正常,网络定位可用性比较大)
在Google的网络定位中,恢复Google Service Framework是否就一定可以正常工作呢?现在这个问题变得复杂了,由于Google Play的出现,Play服务也横空出世并成为必装服务。如果Google Service Framework、Play服务和GMS其他应用之间应用不畅,一样造成无法使用。遇到这种情况,Android_Location_Provider_Test应用就无能为力测试了。至于解决方法,暂时没找到……
(可以见到,此时网络定位已经由google地图的GoogleLocationService接管了网络定位的核心功能;如果Google Service Framework、Play服务和GMS其他应用之间应用不畅,这个对话框也无法出现,导致网络定位也实质无法使用)
(本文完,下文预告:《手机定位折腾记(2):AGPS和GPS》)
附录一:网络定位的底层开发简表
LocationManagerService类重要关注方法:
android版本
LocationManagerService类重要关注方法
源代码位置(相对于/platform/frameworks/base/+/ &或者 /android/platform_frameworks_base/tree/ )
反编译的文件和位置
LocationManagerService(Context context);_loadProvidersLocked();
/{&=4.0.x的分支}/services/java/com/android/server/LocationManagerService.java
(暂未找寻)
LocationManagerService(Context context);findBestPackage(String serviceIntentName, String sigPackageName);_loadProvidersLocked();
/{4.1.x的分支}/services/java/com/android/server/LocationManagerService.java
(暂未找寻)
LocationManagerService(Context context);loadProvidersLocked();ensureFallbackFusedProviderPresentLocked(ArrayList&String& pkgs);
/{4.2.x的分支}/services/java/com/android/server/LocationManagerService.java
(暂未找寻)
网络定位配置:
android版本
配置字符串
源代码位置(相对于/platform/frameworks/base/+/ &或者 /android/platform_frameworks_base/tree/ )
反编译/system/framework/framework_res.apk位置
config_networkLocationProvider
/{&=4.0.x的分支}/core/res/res/values/config.xml
/res/values/strings.xml
config_networkLocationProviderPackageName
/{4.1.x的分支}/core/res/res/values/config.xml
/res/values/strings.xml
config_locationProviderPackageNames
/{4.2.x的分支}/core/res/res/values/config.xml
/res/values/arrays.xml
从4.1.x开始,网络定位还必须实现统一指定的Intent Action,否则不予运行:
android版本
统一指定的Intent Action
源代码位置(相对于/platform/frameworks/base/+/ &或者 /android/platform_frameworks_base/tree/ )
反编译的文件和位置
public static final String SERVICE_ACTION = “com.android.location.service.NetworkLocationProvider”;
/{4.1.x的分支}/services/java/com/android/server/location/LocationProviderProxy.java
(暂未找寻)
private static final String NETWORK_LOCATION_SERVICE_ACTION = &”com.android.location.service.v2.NetworkLocationProvider”;private static final String FUSED_LOCATION_SERVICE_ACTION = &”com.android.location.service.FusedLocationProvider”;
/{4.2.x的分支}/services/java/com/android/server/LocationManagerService.java
(暂未找寻)
============
[1]GPS、GLONASS卫星坐标计算和导航应用研究:
[2]小米手机2:
[3]Garmin eTrex 30:
[4]联发科技发布全球首颗支持中国北斗卫星的五合一全球导航卫星系统接收器SoC解决方案():
[5]“应该用GNSS全面代替GPS名词”:
[6]利用Google接口实现网络定位NetworkLocation(基站定位、WiFi定位):
[7]全过程见:
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致iOS定位原理和使用建议
看到很多网友讨论iOS设备定位的问题,这里将我们所了解的关于iPhone、iPad、iPod等的定位原理做详细的介绍,希望能为大家增加知识,减少误区,更好地使用iOS设备。
介绍之前,先声明一下关于地图加加的“偏移修正”功能,地图加加可以对齐中国地区(地点、线路和照片的)坐标和中国地图之间的偏移,这个是我国测绘法规要求的一个数学意义的偏移,每个地方的偏移是固定的,法定的,和当前定位的方式、定位的精度与准确度没有任何关系。即地图加加只对齐偏移,并不能提升、降低或者改变iOS定位的速度、精度和规则,也没有任何App可以做到或者说允许去做。
下文所有的定位误差、定位偏移、定位精度等描述都是针对iOS定位硬件而言,和地图加加或者任何一个app无关, 也适合iOS上所有的地图App的定位逻辑,包括苹果自带的地图app。
内容很长, 但是鉴于打字比看贴更辛苦, 大家就体谅一下, 鼓起勇气, 慢慢看噢. (转载请注明出处及秒酷-地图加加 官方和网址.)
---------------------------------------------------------------------------------------
iOS设备都可以使用哪些方式进行定位?
最早期的iPhone只支持 手机基站定位, 之后通过iOS软件升级引入了
WIFI定位, 而从iPhone 3G开始, iPhone手机就通过内置GPS处理芯片, 支持
GPS卫星定位 (准确地说, 应该是AGPS, 即:辅助GPS). 从iPhone 4开始,GPS换用了精确度更高,耗电更少的,灵敏度更高的芯片,而从iPhone4s和new iPad 3G版开始,增加了支持俄罗斯GLONASS卫星定位系统的支持。
下面详细列举了所有的设备和支持定位的情况:
定位模式有3种:
1、卫星定位
(1)GPS卫星定位:iPhone 3G/3GS/4/5,3G/4G版的iPad 支持
(2)GLONASS卫星定位:iPhone 4/5,3G/4G版的iPad 3/4/Mini 支持
2、手机基站定位
同1.1GPS卫星定位,即iPhone 3G/3GS/4/5,3G/4G版的iPad 支持
3、WIFI定位
所有iOS设备,包括Mac电脑也支持。
下面分别介绍下三种定位方式以及苹果在iOS系统中对其的优化:
手机基站定位:
每个手机基站都有一个标识符,iPhone或3G iPad可以搜集周围所有收到信号的基站和它们的标识符,通过联网发送到苹果云端服务器,再由服务器根据这些基站的的位置信息查询并计算出当前位置,然后返回给手机。因为基站信号辐射范围大,所以误差也大,在500米 ~ 几公里.
特点:定位速度最快, 耗电最少,误差几百上千米.
无网基站定位:
传统的基站定位需要连接云端服务器,产生网络流量,iOS 4对其进行了优化,可以在没有网络连接时支持无网定位,因为苹果预先已经将一些重要基站(几十公里选一个)提前存储在iOS系统中,在无网情况下,不用上网也能通过这些本地基站信息定位到用户位置,但这个误差范围更大,在10公里到50公里。
无网基站定位的前提是:您的手机能接受到内置在手机中的那些“重要基站”的信号,不一定是您手机所属运营商,只要能收到信号就可以了。
下图为iOS 4支持的全球无网络连接基站定位的基站:
和基站定位原理差不多, iOS设备(或者Mac电脑)通过无线网卡手机周围所有的WIFI热点(不需要连接上,只需要有信号就行),获得它们的MAC地址,然后到苹果云端服务器查询这个热点是否已经登记,登记的话它的位置是多少,最后通过计算(多个热点折中)得到当前位置并返回给用户。只要收到手机信号的地方都可以基站定位,所以室内室外一样。
特点:WIFI定位速度、耗电和精度都介于基站和GPS之间,精度大概在几十米。(注意,WIFI定位的支持范围没有基站定位广,但是苹果的云端服务器一直在不断增加新的热点信息,使得热点定位支持的地区越来越多)
下图是iOS 4所有支持WIFI定位的地区:
无网WIFI定位:
传统的WIFI定位需要网络,但是iOS对其进行了优化,可以实现无网WIFI定位。原理时iOS设备在您有网络连接时,会大致定位出您的位置,并自动您所在地区周围(几个街区宽度或者更多)所有的WIFI热点的信息到本地。之后,当您在周围行走并WIFI定位的时候,即使没有网络,iOS照样可以利用之前下载的WIFI热点信息定位出您的位置。
这也是为什么有人号称WIFI无网可定位的原因,但注意:无网WIFI定位的前提是您在这个区域附近曾经成功上过网,如果初次到一个陌生的地方,是无法定位的哦。
关于自动下载的热点个数和范围,这个是苹果根据当地热点的密度动态决定的,当地热点很多时(如市中心),可能只下载几条街道范围的所有热点,当地热点密度很小时(例如海滨城市),可能会下载整个城市的所有热点。
下图是iOS自动在高密度地区下载周围热点信息的一个大概范围说明:
(GLONASS原理与此类&#20284;,不做额外介绍)
这个是美国军方搞的, 军民两用, 但仍然完全受军方控制(比如可以随时随地设置某个地区收到的信号与否及其精度), 其原理就是:利用天上的卫星(共24颗)不断地广播信号, 地面的GPS接收设备收到信号后, 通过分析多个卫星信号,就可以计算出地球坐标, GPS保证全球任何一个地方(98%)都可以同时收到至少4个卫星的信号, 从而可以准确确定您的经纬度以及海拔位置. GPS定位精度可达10米以内, 不过这是美国军方控制的, 战争时期可能变的不稳定或者误报. (不过我国也有自己的系统, 北斗系统,
目前已经亚洲的覆盖, 还在中)
卫星定位必须要能收到卫星信号,因为卫星信号都是很微弱的,虽然iPhone 4开始提升了GPS硬件的灵敏度,但仍然需要在窗户旁,或者户外使用,才能确保卫星信号的强度和稳定性。
与基站定位和WIFI定位相比,GPS耗电最大,速度最慢,但是精度最高。
而iPhone的GPS与纯粹的GPS定位不同, 称为A-GPS, 即辅助GPS.(比GPS更优,不过GPS也分芯片和性能的,不是说所有的AGPS比所有的GPS都好)
因为GPS定位中最耗时、最耗电的就是获取当前天上的卫星信息,哪些卫星可见、在什么位置、时钟是多少等等,这个过程可能花费数十秒甚至几分钟,而AGPS就是利用网络,首先将基站定位或者WIFI定位获得的大概位置发到远程服务器,有服务器进行查询和计算,得出这个位置下当前卫星信息,反馈给iOS设备,iOS设备就可以直接用这些信息来接受卫星信号,不用自己去扫描分析了。这样可以极大提高定位速度,将初次定位时间缩短到1~2秒完成。
A-GPS优点是定位快,缺点是需要网络,但也只是在初次定位时需要网络,因为一旦卫星信息返回,在有限时间和范围内,这些信息无须改变,之后的GPS定位就不再需要联网,都是直接用这些卫星参数接受信息了。
-------------------------------------------------------------------------------------------------------
在iOS设备上,上述定位方式会综合应用,一般地,可能先按照最快的“无网基站定位”返回一个位置,当有网络连接时,在用有网基站定位更新位置,然后,利用AGPS上网查询卫星星图,最后,在能收到GPS信号的情况下,转为使用GPS定位。
根据当前信号情况和网络环境,iOS可能在上述方式之间反复迭代,不一定一致特定步骤或者方式,而且随着iOS升级,定位顺序和规则可能改变。
----------------------------------------------------------------------------------------------------
常见问题:
1. 为什么我iPhone当前定位误差有几百或者上千米?
iPhone初始定位都是用基站或者无网基站定位,误差几百或几公里。之后,如果无法搜索到WIFI信号,或者无法搜索到卫星信号,就会一直是这个精度。
您可以打开WIFI功能(不用连上,只需要打开即可),或者到窗户边,或者户外以便收到卫星信号;
解决方法: 多等一会儿,开启数据流量(定位之后即可关闭),或者到户外去。
2. 为什么我的位置总是变来变去?
iOS根据当前网络环境,会不断调整和修正定位方式,可能您所处地区基站和WIFI信号太复杂或者太微弱,比如一会儿连上这个基站,一会儿连上另一个基站,导致iOS计算位置的时候不稳定。
解决方法: 打开WIFI功能,开启数据流量(定位之后即可关闭),或者到户外去。
3. 无手机信号可以定位吗?无数据流量可以定位吗?
对于iPhone或者3G/4G版iPad
情况1:【没有手机信号,没有WIFI信号,没有上网】则定位只能在户外利用GPS进行,初次定位时间可能很长,可能需要数分钟,之后定位正常。
情况2:【没有手机信号, 有WIFI信号,没有上网】如果之前在周围上过网,下载了附近的热点,则利用无网WIFI定位可以找到位置,否则,和情况1一样。
情况3:【没有手机信号, 有WIFI信号,可以上网】利用WIFI定位找到位置,并且在定位时还会下载大量的周围很大一个区域的所有WIFI热点信息,用于今后无网WIFI定位。
情况4:【有手机信号, 没有WIFI信号,没有上网】如果能收到iOS内置的“重要基站”的信号,则使用这些基站进行无望基站定位,否则,无法定位。
情况5:【有手机信号, 没有WIFI信号,可以上网】使用基站定位联网查询进行定位,同时可能会更新本地“重要基站”信息。
对于iPad WIFI版:
情况1:【没有WIFI信号,没有上网】无法定位
情况2:【有WIFI信号,没有上网】如果之前在周围上过网,则利用无网WIFI定位可以找到位置,否则,无法定位
情况3:【有WIFI信号,可以上网】利用WIFI定位,并且在定位时还会下载周围很大一个区域的所有WIFI热点信息,用于今后无网WIFI定位
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'

我要回帖

更多关于 北斗gps定位系统 的文章

 

随机推荐