手机是如何定位的?

大家都知道GPS,全球定位系统(Global Positioning System),但是现在的手机定位功能已经不仅限于GPS了,还可以通过WIFI和蜂窝网络来定位。

先说说GPS。GPS是美国军方搞出来的一个系统,一共有21颗卫星组成(最初计划是24颗,后来由于资金问题只发射了21颗),这些卫星均匀地围绕在地球周围,向地面的设备发送一些信息。地面上的接收器(即GPS设备)通接收卫星的信号,来计算自身的位置,包含经纬坐标和高度。卫星发送的数据包括卫星的经纬坐标、高度和发送的时间点,地面设备接收到之后,可以计算出时间差,然后通过三角测量法算出自身的位置。由于需要三角测量,地面设备需要至少连接四颗卫星才可以开始计算,一般连上7颗左右的卫星才可以获得稳定的数据。由于受到地面障碍物的干扰,比如墙面,GPS的连接效率比较差,通常需要几分钟的时间才能获得精确的定位。

由于GPS的信号问题,现在主流的手机都集成了其它的定位方式,比如基站定位。基站是移动网络中,无线和有线转换的中继站,手机要连接上基站,才能进行数据/语音通信。在进行数据通信的时候,手机一般会连接三个(或更多)的基站,而基站知道自己的坐标,于是手机就可以推算出自己的位置了,同样是利用三角测量。至于在计算过程中需不需要消耗流量,我也不太清楚,我猜是需要的,但不多。相比于GPS的缓慢来说,基站定位的性价比会高一点。

还有就是利用WIFI的定位了,由于家用路由器最终都会接入电信网络,电信网络中的路由器坐标可以预先统计出来,所以家用路由器的坐标也可以大致知道了。虽然手机同一时间只能连上一个WIFI路由器,不能进行三角测量,但由于WIFI的覆盖范围相当小,精度还是可以保证的。

出于效率的考虑,在进行定位的时候,手机一般都会优先选择基站定位或者WIFI定位,然后再去慢慢连接GPS,以便给用户提供良好的体验。

以下是一些提示:

  • GPS不依赖于蜂窝网络,即使手机在飞行模式下,也可以使用GPS定位。但在飞机上例外,貌似飞机的外壳会限制GPS信号,所以手机在飞机内无法接收到卫星信号。
  • 基站和WIFI定位一般可以在5秒内给出坐标,前提是手机连接上数据网络,即GPRS/EDGE/3G/4G……

PS,我不是通信行业的专业人员,以上描述若有不足,请见谅……