首发于鲜枣课堂
老司机揭秘手机定位技术,这下彻底明白啦!

老司机揭秘手机定位技术,这下彻底明白啦!

今天我们所处的移动互联网时代,手机成了每个人的生活标配。


这些手机里,安装了形形色色的APP,提供了各种服务,彻底改变了我们的生活。





这些服务里面,就包括我们今天的主角——定位





每一个人,每一件物品,在这个地球上都有一个空间位置信息,这就是定位。它非常重要,我们靠它来找到这个人或这件物。


自从有人类文明开始,地图就被发明出来,用于标示位置信息。但是,因为技术手段的落后,人们只能通过参照物来“佛系”定位。



佛系定位,跟着感觉走


后来,有了罗盘、指南针,人类的定位能力不断进步,定位的精度也不断提升。



郑和下西洋,采用“牵星术”进行定位


进入现代之后,随着社会的进步和科技的发展,定位技术更是突飞猛进。我们几乎可以丈量和定位世界的每一个角落。



世界地图


用于定位的设备和技术,也逐步从航海航空、测绘救灾、军事国防等「高大上」的领域,渗透到普通老百姓的生活,成为不可或缺的组成部分。例如车辆导航、物流跟踪、交通管理等。



车辆定位导航


那么,大家平时使用手机定位服务的时候,有没有想过这些问题:


手机到底如何实现定位的?工作原理是什么?

大家都知道卫星定位,那么,是不是只有卫星这一种定位方式?为什么有时候我们没有打开手机的卫星定位开关,仍然能够进行定位?

如果我们在室内,没有卫星信号覆盖,是不是就彻底不能定位了?


今天这篇文章,小枣君就将揭晓这些问题的答案。







卫星定位


定位,我们通常按使用场景,分为室内定位室外定位


我们先来说说用得最多的室外定位。


目前最主流的室外定位方式,刚才我们已经提到了,就是卫星定位





卫星定位,是利用人造地球卫星进行点位测量的技术,也是目前使用最为广泛、最受用户欢迎的定位技术。它的特点非常突出,就是精度高、速度快、使用成本低。





但是,目前世界上只有少数国家,具备建设和维护卫星定位系统的能力。


大家所熟知的,包括:美国的GPS,中国的北斗(BDS)、欧洲的伽利略(Galileo)、俄罗斯的格洛纳斯(GLONASS)。此外,还有日本的准天顶系统(QZSS)和印度的IRNSS。


我们就拿使用最为广泛的美国GPS系统来说吧。


GPS,英文全名是Global Positioning System,全球定位系统。





它起始于1958年美国军方的一个项目,1964年投入使用,1994年彻底布设完成。


GPS系统的主要建设目的,是为陆海空三大领域提供实时、全天候和全球性的导航服务,并用于情报搜集、核爆监测和应急通讯等一些军事目的。


该系统由24颗卫星构成,其中21颗为工作卫星,还有3颗是在轨备用卫星。它们共同组成了GPS卫星星座。





24颗卫星距地高度为20200km,运行周期为11小时58分(恒星时12小时),均匀分布在6个轨道平面内。


正常情况下,在地球表面上任何地点任何时刻,平均可同时观测到6颗GPS卫星,最多可达10颗卫星。





除了天上的卫星之外,当然还需要地面的相关设备进行配合和监测,也就是地面监控系统。



GPS工作卫星的地面监控系统包括一个主控站、三个注入站和五个监控站。


GPS导航系统的基本原理,是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。





我们的手机,内置了GPS模块和天线,相当于接收机,负责GPS数据的接收和处理。





这些数据被手机操作系统或APP应用软件(例如百度地图)调用,起到精确定位的目的。





小提示:大家如果有兴趣的话,可以安装类似“GPS雷达”这样的APP,随时查看自己的手机现在能搜到哪几颗定位卫星:



我随便扫了一下,头上的卫星还真不少啊


卫星定位这个东西,涉及到国家安全,当然不能完全依赖于国外。所以,尽管GPS系统非常成熟,我们国家还是开发了北斗系统



弹道导弹,总不能用人家老美的卫星来定位吧?


截至目前,我们的北斗系统已经具备商用能力,配合基准站,能给客户提供精确到10米的定位服务,和GPS不相上下。


同时,北斗也弥补了GPS的不足,具备短报文能力(GPS卫星是单向广播的,不具备双向通信能力,功能略显单一)。限于篇幅,今天对北斗不多做介绍,下次专门开专题来讲。





对于GPS这样的卫星定位系统来说,影响定位精度的因素主要来自两个方面,一个是大气层中的电离层(电离层在太阳光的照射下充满了离子和电子,对GPS信号这种电磁波的影响严重),还有一个是多径效应(以前介绍通信基础的时候讲过,因为建筑等影响,直射信号和反射信号抵达的时间不同,造成信号干扰)。





不过总的来说,如果天气OK,GPS的定位精度都不会太差。




基站定位


好了,说完了卫星定位,再来看看地面定位


说到地面定位,大家首先想到了什么?哈哈,是不是雷达?





确实,雷达作为一项搜索定位技术,广泛应用于军事和民用领域。但是,毕竟普通手机数量非常庞大,加之生活场所障碍物非常复杂,不管从技术角度,还是成本角度,都不适合采用雷达进行定位。



龙珠雷达,其实是个不错的东东



那我们采用什么方式呢?


其实可以用的方法很多,最常用的,是基站定位,也就是常说的LBS,Location Based Service(基于位置服务)。





基站定位的原理和雷达有相似之处。雷达定位大家都知道,就是发射雷达波,根据目标的反射,进行空间位置测算。





基站定位的话,基站就相当于是一个“雷达”。


通常,在城市中,一部手机会在多个基站的信号覆盖之下。手机会对不同基站的下行导频信号进行“测量”,得到各个基站的信号TOA(到达时刻)或TDOA(到达时间差)。根据这个测量结果,结合基站的坐标,就能够计算出手机的坐标值。


画个图,一看就明白了:





清楚了吧,三点一位。


基站定位的精度并不高,误差大概从100米到上千米。主要误差原因,是来自基站的位置和密度。简而言之,基站数量越多,密度越高,定位精度也就越高。基站和手机之间的障碍物越少,定位精度也会有所提升。


通常农村地区的基站定位精度低,是因为农村基站少,盲区多,有时候只有一个站的信号,当然无法精确定位了。



一个站可以定位一个圈,无法定位一个点



除了上面所说的基站定位之外,如果你对定位精度要求不高的话,也可以直接查看手机当前所在的小区信息,来确认目标位置。


我们所有的手机,只要连接到运营商的网络,就相当于“登记”在网络里。当前连接的基站信息,在手机中都可以查到。



在拨打电话界面输入 *#*#4636#*#* 查看对应的基站信息苹果的话,输入*3001#12345#*


在运营商那边,也非常容易查到这个信息。即使你关机了,运营商HSS(负责管理用户数据的设备)都能查到之前你所在的基站小区。


这种方式查看位置比较快,但是精度就很低,一个基站覆盖的范围,从几百米到几公里不等。



Wi-Fi定位


除了基站定位之外,还有一个大家可能比较陌生的地面定位方式,就是Wi-Fi定位


没错,Wi-Fi也可以定位哟!





也许你会认为,我所说的Wi-Fi定位,就是IP地位定位。其实并不是哦!


大家都知道,每个人上网,都会有一个公网IP地址。这些IP地位,在网络系统中都是有注册的,例如属于南京电信或上海联通,之类的。





IP地址确实可以大致追踪到你的位置(运营商可以查得更准确),但是,这种定位也有局限性。一方面,现在很多运营商都采用NAT技术,不一定会给每个用户分配公网地址,另一方面, IP地址很容易欺骗,我如果搞一个代理地址,你看到的IP,可能是美国的。


我所说的Wi-Fi定位,和上面的IP地址定位完全不同,是根据Wi-Fi路由器MAC地址进行定位。





每一个无线AP(Wi-Fi路由器)都有一个全球唯一的MAC地址,并且一般来说,无线AP在一段时间内不会移动。


在开启Wi-Fi的情况下,采集设备(例如手机)可以搜到这个无线AP的信号,并且获取它的MAC地址和信号强度信息。


采集装置将这些信息上传到服务器,经过服务器的计算,保存为“MAC-经纬度”的映射。当采集的信息足够多,就在服务器上建立了一张巨大的Wi-Fi信息数据库。


当一个设备处在这样的网络中时,可以将收集到的这些能够标示AP的数据发送到位置服务器,服务器检索出每一个AP的地理位置,并结合每个信号的强弱程度,计算出设备的地理位置并返回到用户设备,其计算方式和基站定位位置计算方式相似,也是利用三点定位或多点定位技术。





位置服务商要不断更新、补充自己的数据库,以保证数据的准确性。


那么,问题来了,这些AP位置映射数据怎么采集的呢?


大致可以分为两种——主动采集和用户提交。


  • 主动采集:


谷歌的街景拍摄车,没想到吧?它就是一个采集设备。它采集沿途的无线信号并打上通过GPS定位出的坐标回传至服务器。



Google街景拍摄车



  • 用户提交


Android手机用户在开启“使用无线网络定位”时,会提示是否允许使用Google的定位服务,如果允许,用户的位置信息就被谷歌收集到。iPhone则会自动收集Wi-Fi的MAC地址、GPS位置信息、运营商基站编码等,并发送给苹果公司的服务器。


和基站定位一样,Wi-Fi定位在AP密集的地方有很好的效果。如果AP很少,那也很难定位准确。


总的来说,Wi-Fi这种定位方式的执行难度比较大,可用性和准确性也不高。所以,主要还是一种辅助性质的定位手段。



A-GPS定位


说到辅助,我们就要说到A-GPS了。


A-GPS,Assisted GPS,辅助全球卫星定位系统。从名字就可以看出来,这是GPS的一个增强功能。



A-GPS网络架构


这个技术,就是将GPS定位和基站定位两种技术相结合。


手机通过基站大致定位自己的位置,然后把位置告诉AGPS服务器,服务器根据这个位置信息,将此时经过你头顶的卫星参数(哪几颗、频率、位置、仰角等信息)反馈给你的手机,你手机的GPS就可以快速搜索卫星。


采用A-GPS的话,手机搜星速度大大提高,几秒钟就可以定位。





以上,就是常用的室外定位技术。


其实,说实话,最靠谱的方式,还是卫星定位。大家经常会发现自己被定位到河里去,多半都是因为卫星没信号,然后被基站定位和Wi-Fi定位给坑了。。。






室内定位


事实上,像GPS这样的定位技术,虽然精度高,但是有一个明显的缺点,就是无法穿透建筑物,不能实现室内定位


但是,人们对室内定位是有强烈需求的。例如地下车库,人们经常会忘记自己的车停在哪里。此外,在大型商场人流较多,找人会存在困难,小孩走失的话,也会需要定位。



地下车库,非常考验一个人的方向感


在工业方面,也有定位需求,例如厂房内的生产线跟踪,资产管理等。


现在我们都在说“万物互联”,那么,物在哪里,你总要知道的吧?



IoT,物联网



对于这种室内定位需求,我们应该采用什么样的定位手段呢?


其实,任何一种通信技术,本身都会带有定位功能。就像我们刚才说的基站定位和Wi-Fi定位,本身都是通信技术,但是通过测量时间差,都能够进行位置测量。


所以,短距离通信技术有哪些,室内定位技术,就有哪些。


例如,蓝牙定位红外定位RFID射频定位超声波定位Zigbee定位UMB定位,全部都属于室内定位技术。Wi-Fi定位,其实也一样适用于室内。



Wi-Fi室内定位


我们简单介绍几个比较典型的吧。


首先,说说蓝牙定位





蓝牙,大家都很熟悉,是一种短距离低功耗的无线传输技术。


蓝牙定位,就是通过在指定区域安装信标(可以发出蓝牙信号),实现精确定位。这些比手机要小的信标,每隔几米放置一个,能够与所有装有蓝牙模块的移动设备进行通信。



蓝牙定位组网


蓝牙定位的优点,是设备体积小、短距离、低功耗,容易集成在手机等移动设备中。只要设备的蓝牙功能开启,就能够对其进行定位。


说到蓝牙定位,就要提一下iBeacon,这是苹果公司2013年推出的一种低功耗精准微定位服务。它比以往普通蓝牙技术传输距离更远,精度更高。





另外一个比较受欢迎的室内定位技术,是UWB超宽带


超宽带(UWB)定位技术利用事先布置好的已知位置的锚节点和桥节点,与新加入的盲节点进行通讯,并利用三角定位或者“指纹”定位方式来确定位置。



UMB室内定位技术


超宽带通信不需要使用传统通信体制中的载波,而是通过发送和接收具有纳秒或纳秒级以下的极窄脉冲来传输数据,因此具有GHz量级的带宽。


由于UWB技术具有穿透力强、抗多径效果好、安全性高、系统复杂度低、能提供精确定位精度等优点,前景也是相当广阔。


限于篇幅,其它几种室内定位技术,小枣君就不一一介绍啦。


需要提一句的是,像GPS定位、基站定位这样的方式,搭建系统有很高的门槛,不管是技术,还是资金,都不是一般企业能够承受的。但是,室内定位技术完全不同,它并不需要很大的投资,而且技术难度也小得多,所以,现在很多公司都在研究,也做出了不少成熟产品。这一块的市场前景,还是非常广阔的。



好啦,以上,就是小枣君对常用定位技术的介绍。


最后,我要提醒一下大家:定位数据属于重要的个人隐私信息,不得非法获取,也不能用于违法目的。


大家一定要保护自己的位置数据,千万不要随意授权不靠谱的APP获得你的位置信息,以免带来生命危险。





嗯,今天就到这里啦,感谢大家的耐心观看,我们下期再见!


另外,也欢迎大家关注枣君的公众号,

鲜枣课堂:跟随枣君的脚步,一同踏遍整个通信世界。


【本文版权归“鲜枣课堂”和小枣君所有,未经授权,请勿转载】

发布于 2018-10-10

文章被以下专栏收录