2、定位原理基础:GPS/北斗定位原理、AGPS辅助定位、基站与WiFi定位原理

各位同学好,我是老张。做定位这行十几年了,今天咱们聊聊定位原理。说实话,很多人用了好几年定位功能,却连最基本的原理都说不清楚。这不行。你想想看,排查漂移问题,连原理都不懂,那不是瞎蒙吗?

我个人习惯,讲原理之前先画一张图。这张图能帮你把整个知识体系串起来。我当年刚入行时,师傅就让我先画这张图,画明白了再碰代码。

定位原理体系 卫星定位(GPS/北斗) 三边测量法 伪距测量 至少4颗卫星 AGPS辅助定位 网络下载星历/年历 缩短首次定位时间(TTFF) 基站定位 Cell ID + TA 精度100m~1km WiFi定位 BSSID + RSSI 指纹匹配法 卫星定位 AGPS 基站 WiFi

2.1 GPS/北斗卫星定位原理

卫星定位,说白了就是「看天上的钟」。GPS和北斗的原理几乎一样,都是通过测量卫星信号到接收机的传播时间,算出距离,然后解方程。

我记得刚入行那会儿,带我的老工程师说了一句话,我一直记着:「定位就是解一个四元二次方程组。」你想想看,接收机的位置是(x,y,z),再加上一个时钟偏差Δt,一共四个未知数。所以至少需要四颗卫星。

核心公式:

伪距 ρ = c × (t_r - t_s) = √[(x - x_s)² + (y - y_s)² + (z - z_s)²] + c × Δt

其中:c为光速,t_r为接收时间,t_s为卫星发射时间,Δt为接收机钟差

我在项目中遇到过一个问题:明明能看到七八颗卫星,定位却还是飘。后来发现是某颗卫星的信噪比太低,混进了定位解算。所以我现在做定位调试,第一件事就是看卫星的信噪比列表。

我的调试习惯:

  • 信噪比低于30 dBHz的卫星,直接排除
  • 仰角低于10度的卫星,信号受大气影响大,慎用
  • 优先使用GPS+北斗双系统,卫星数量多,几何分布好

2.2 AGPS辅助定位

AGPS,全称是Assisted GPS。说白了就是「给GPS开外挂」。为什么需要它?因为纯GPS冷启动,搜星要花30秒到几分钟。你想想看,用户打开地图,等了一分钟还没定位,早就骂娘了。

AGPS的原理很简单:通过网络下载卫星的星历和年历数据。这样接收机就知道「天上哪颗卫星在什么位置」,不用自己慢慢搜了。

AGPS的两种模式:

  • MS-Based(移动台辅助):手机下载星历,自己算位置。我推荐这种,省流量,定位快。
  • MS-Assisted(移动台辅助):手机把伪距数据发给服务器,服务器算好位置再传回来。这种依赖网络,延迟高。

我曾经踩过一个坑:某款手机在弱网环境下,AGPS数据下载超时,导致定位一直卡在「正在定位」状态。后来我建议加了一个降级策略:如果AGPS超时,自动切到纯GPS模式。问题就解决了。

注意:AGPS依赖网络。如果用户在地下室或电梯里,网络信号差,AGPS反而会拖慢定位速度。建议设置超时阈值,比如5秒内没拿到辅助数据,就放弃AGPS。

2.3 基站定位原理

基站定位,也叫Cell ID定位。原理很简单:手机连上哪个基站,就知道大概在基站覆盖范围内。精度嘛,说实话,城区大概100-300米,郊区可能到1公里以上。

为什么精度这么差?因为基站覆盖范围大。你想想看,一个宏基站覆盖半径可能达到几公里。光靠Cell ID,只能知道你在哪个「圈」里。

稍微好一点的是TA(Timing Advance)技术。基站通过测量手机信号的往返时间,估算距离。嗯,这里要注意,TA的精度是550米一个步长。所以别指望它能精确到门牌号。

我的经验:基站定位最适合做「粗定位」和「冷启动辅助」。比如用户第一次打开地图,先用基站定位给个大概位置,等GPS定位成功后,再切换到高精度模式。这样用户体验会好很多。

2.4 WiFi定位原理

WiFi定位,是目前室内定位的主力。原理和基站定位有点像,但精度高得多。为什么?因为WiFi热点密集啊。你想想看,一个商场里可能有上百个WiFi热点,每个热点的覆盖范围只有几十米。

WiFi定位有两种主流方法:

  • 指纹匹配法:提前采集每个位置的WiFi信号指纹(BSSID + RSSI),建一个数据库。定位时,手机扫描周围的WiFi,和数据库比对,找到最匹配的位置。精度可以到3-5米。
  • 三角定位法:根据多个WiFi热点的信号强度,估算距离,然后解算位置。但说实话,信号强度受环境影响太大,实际效果不如指纹法。

WiFi定位的关键参数:

参数 说明 我的建议
BSSID WiFi热点的MAC地址 唯一标识,必须准确
RSSI 信号强度(dBm) -70dBm以上算强信号
频段 2.4GHz / 5GHz 5GHz衰减快,但精度高
扫描间隔 WiFi扫描频率 建议1-3秒一次,太频繁耗电

我在项目中遇到过WiFi定位漂移的典型案例:某商场里,用户明明在A区,定位却显示在B区。排查后发现,是商场的WiFi热点做了调整,但指纹数据库没更新。所以,WiFi定位的维护成本其实很高。

避坑指南:我曾经因为WiFi MAC地址随机化吃了大亏。Android 10以后,WiFi扫描返回的MAC地址可能是随机化的。如果你用MAC地址做指纹匹配,一定要关掉随机化,或者改用其他标识。

2.5 四种定位方式的对比

最后,我整理了一张对比表。这张表我用了好多年,每次做方案选型都拿出来看看。

定位方式 精度 首次定位时间 适用场景 缺点
GPS/北斗 3-10米 30秒-2分钟(冷启动) 室外开阔地带 室内、高楼遮挡失效
AGPS 3-10米 5-15秒 室外+有网络 依赖网络,弱网失效
基站定位 100米-1公里 1-3秒 任何有信号的地方 精度差,无法室内精确定位
WiFi定位 3-15米 1-3秒 室内、WiFi密集区 需要指纹数据库,维护成本高

好了,这一章的内容就到这里。定位原理是排查漂移问题的基础。你只有知道每种定位方式怎么工作的,才能判断「这个漂移是哪个环节出了问题」。下一章,我们会深入分析漂移的根因,到时候这些原理都会用上。

可可精品资料库